Composio
Tool integration platform for AI agents. Provides 250+ pre-built tool integrations (GitHub, Gmail, Slack, Notion, etc.) with managed OAuth across frameworks including OpenAI, Anthropic, LangChain, CrewAI, and AutoGen. Has undergone a major v1→v3 SDK rewrite with significant breaking changes — the majority of tutorials and LLM-generated code targets the old v1 API.
Warnings
- breaking composio-core is deprecated. All tutorials and LLM-generated code using 'pip install composio-core' or 'from composio_core import ...' targets the old package. New package is 'composio'.
- breaking v1 used framework-specific toolset classes (ComposioToolSet from composio_openai, composio_langchain, etc.) with entity_id set at the toolset level. v3 uses a single Composio class with provider injection and user_id passed per tool call.
- breaking entity_id parameter renamed to user_id throughout the v3 SDK. Code passing entity_id= will raise TypeError.
- breaking Connected account IDs changed from UUID format to nano ID format in v3. Stored IDs from v1/v2 are invalid in v3 API calls.
- breaking Local tools (shelltool, sqltool, clipboard) were removed from the v3 SDK. They are listed as 'in development' for the new SDK.
- breaking Webhook payload format changed with v3. New organizations receive Webhook Payload V3 (Standard Webhooks spec) by default. Trigger event data is now separated into data and metadata fields. Old payload parsers will fail.
- breaking Composio-managed Twitter/X credentials removed. Twitter toolkit integrations built on managed credentials no longer authenticate.
- gotcha The v3 SDK (pip install composio) and legacy framework packages (pip install composio-openai etc.) coexist on PyPI and can both be installed. They have incompatible APIs and can conflict if imported in the same project.
- gotcha The v3 SDK requires Python 3.10+. Legacy composio-core supported Python 3.8+. Silent import failures occur on 3.8/3.9.
Install
-
pip install composio -
pip install composio-openai -
pip install composio-langchain
Imports
- Composio (new v3 SDK)
from composio import Composio composio = Composio() tools = composio.tools.get(user_id="user@acme.org", toolkits=["GITHUB"])
- composio-core (deprecated)
pip install composio
Quickstart
from composio import Composio
from composio.providers import AnthropicProvider
import anthropic
# New v3 SDK pattern
composio = Composio(provider=AnthropicProvider())
user_id = "user@acme.org"
tools = composio.tools.get(
user_id=user_id,
toolkits=["GITHUB"]
)
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-6",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "Star the composiohq/composio repo"}]
)
# ---
# Legacy v1 pattern (still works but deprecated):
from composio_openai import ComposioToolSet, App
toolset = ComposioToolSet() # entity_id was set here in v1
actions = toolset.get_tools(apps=[App.GITHUB])