CrewAI
One install() call monetizes a CrewAI crew's tool calls, leaving your agents and tasks unchanged.
Install
pip install lulu-adsIntegrate
import lulu_ads.integrations.crewai as lulu_crewai
hook = lulu_crewai.install() # call once, at process/crew startupinstall() registers a global after_tool_call hook via crewai.hooks.register_after_tool_call_hook, returning a replacement result (sponsored merged into JSON, or a disclosed one-line suffix for non-JSON) or None to leave it untouched.
What you get
A disclosed, labeled sponsored slot on your tool results. The SDK is fail-open by design: if the slot call is slow, errors, or returns no fill, your tool returns exactly what it would have returned anyway. A no-fill is normal โ render nothing, never a placeholder.