
composio
Hosted catalogue of ready-made actions across 1000+ apps, with the sign-in handled
What is composio?
Composio hands an agent a catalogue of ready-made actions spread across more than a thousand apps — create a GitHub issue, fetch Gmail threads — and keeps each of your users' account connections stored and refreshed, so you never write a sign-in flow yourself. A session is scoped to one user and by default gives the model only a handful of meta tools for finding, authenticating and running things at runtime, so hundreds of tool definitions never fill the context window; app events arrive as signed webhooks, and the agent gets a persistent Python sandbox to work in. The trade-off is that none of that machinery is yours: you gain a thousand integrations you did not have to build, and give up the ability to change any of them.
What can you do with composio?
- App actions already written, and named after what they do — Tools are named for the app and the action — GITHUB_CREATE_ISSUE, GMAIL_FETCH_EMAILS — and each carries an input schema for its parameters and an output schema for what comes back. Composio's docs list 1,181 toolkits; Gmail alone holds more than fifty tools.
- Sign-in is one link, and the token stays with Composio — When a task needs an account, the session issues a connect link and the user follows it to the app's own sign-in — Google's, GitHub's, Slack's. Composio stores and refreshes the resulting connection against your user id, and its docs note that credentials never pass through your app or the model.
- The agent searches for tools instead of loading them all — By default a session hands the model only meta tools that discover, authenticate and execute at runtime, so the catalogue never enters the context window. Store the session id and reopen it on the next turn; a DIRECT_TOOLS preset loads chosen tools up front instead.
- Fence a session in before you trust it — You can enable or disable whole toolkits, list the individual tools inside one, and filter on behaviour hints such as read-only or destructive. Worth doing early: with no toolkits set, the agent can find anything in the catalogue at runtime.
- App events arrive as signed webhooks — You register one webhook URL per project and Composio posts every trigger event there, signed so you can verify it. Some events a provider pushes the moment they happen; others Composio polls for, and it puts those up to about fifteen minutes behind on its own managed auth.
- Reach it over MCP, or straight from a shell — A session can expose a hosted MCP endpoint that Claude, Cursor or any MCP client connects to with no adapter package — though Composio's docs warn that before- and after-execution hooks and tools defined in your own process do not run over that route. The composio CLI covers search, execute and account linking from the terminal.
Before you choose composio
- This repository is the client side only — SDKs, adapters and CLI — while the toolkits, the stored logins and the sandbox run on Composio's servers behind an API key, and your own cloud is an Enterprise arrangement.
- Usage is metered: as listed in August 2026 the free tier covers 100,000 tool calls and 50,000 trigger events a month, after which the $29 Pro plan charges $0.0003 per tool call and $0.003 per trigger event.
- Connectors are Composio's to fix rather than yours: as of August 2026 the tracker still carried unresolved per-app defects in Google Drive folder creation, the Basecamp toolkit and YouTube video upload.Reported in#3860#3809
Star history
17 Aug to 28 Aug · +182
Frequently asked questions
Is composio free for commercial use?
composio is released under the MIT licence — OSI-approved open source, which permits commercial use.
How can composio be deployed?
composio is available as Managed cloud.
Documentation
Reproduced from the ComposioHQ/composio README, published under MIT. Read the original ↗
Composio
Composio gives your AI agents 1000+ pre-authenticated toolkits, per-user sessions, authentication, triggers, and a sandbox, so you can ship agents that turn intent into action.
This is the Composio SDK monorepo. It contains:
@composio/core: TypeScript SDKcomposio: Python SDKcomposioCLI: search, execute, and script tools from your shell- Provider adapters for OpenAI Agents, Claude Agent SDK, Vercel AI SDK, LangChain, and more
Quickstart
Create a session for a user, hand its tools to your agent, and let the agent take action across 1000+ apps. Grab a COMPOSIO_API_KEY from the dashboard first.
TypeScript
npm install @composio/core @composio/openai-agents @openai/agents
@composio/coreintentionally packages its TypeScript source and SDK docs so the installed package is inspectable to coding agents. If you want a smaller install with the same API, use@composio/slim.
import { Composio } from "@composio/core";
import { OpenAIAgentsProvider } from "@composio/openai-agents";
import { Agent, run } from "@openai/agents";
const composio = new Composio({ provider: new OpenAIAgentsProvider() });
// Each session is scoped to one of your users
const session = await composio.create("user_123");
const tools = await session.tools();
const agent = new Agent({
name: "Personal Assistant",
instructions: "You are a helpful assistant. Use Composio tools to take action.",
tools,
});
const result = await run(agent, "Summarize my emails from today");
console.log(result.finalOutput);
Python
pip install composio composio-openai-agents openai-agents
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider
from agents import Agent, Runner
composio = Composio(provider=OpenAIAgentsProvider())
# Each session is scoped to one of your users
session = composio.create(user_id="user_123")
tools = session.tools()
agent = Agent(
name="Personal Assistant",
instructions="You are a helpful assistant. Use Composio tools to take action.",
tools=tools,
)
result = Runner.run_sync(starting_agent=agent, input="Summarize my emails from today")
print(result.final_output)
By default a session gets meta tools that discover, authenticate, and execute app tools at runtime, so you don’t load hundreds of tool definitions into context. Store session.session_id and reuse it with composio.use() across turns. See what a session is and configuring sessions for restricting toolkits, auth configs, and connected accounts.
Prefer MCP? Every session also exposes a hosted MCP endpoint. Pass mcp: true to composio.create() and point Claude, Cursor, or any MCP client at session.mcp.url. See sessions via MCP.
CLI
The composio CLI runs Composio from your shell and gives coding agents like Claude Code a local tool surface.
curl -fsSL https://composio.dev/install | sh
The installer puts composio on your PATH for future terminals. Open a new terminal, then run composio login. See INSTALL.md for shell setup overrides, including COMPOSIO_INSTALL_SHELL=none for install-only runs.
Use composio search to find tools, composio execute to run them, composio link to connect accounts, and composio run to script workflows in TypeScript. See the CLI docs.
Providers
A provider adapts Composio tools to your agent framework’s native tool format:
| Provider | TypeScript | Python |
|---|---|---|
| OpenAI | @composio/openai | composio-openai |
| OpenAI Agents | @composio/openai-agents | composio-openai-agents |
| Anthropic | @composio/anthropic | composio-anthropic |
| Claude Agent SDK | @composio/claude-agent-sdk | composio-claude-agent-sdk |
| Vercel AI SDK | @composio/vercel | — |
| Google GenAI | @composio/google | composio-gemini, composio-google |
| Google ADK | — | composio-google-adk |
| LangChain | @composio/langchain | composio-langchain |
| LangGraph | via @composio/langchain | composio-langgraph |
| LlamaIndex | @composio/llamaindex | composio-llamaindex |
| Mastra | @composio/mastra | — |
| Pi | @composio/experimental* | — |
| Cloudflare Workers AI | @composio/cloudflare | — |
| CrewAI | — | composio-crewai |
| AutoGen | — | composio-autogen |
* The Pi provider is experimental and ships from @composio/experimental.
Don’t see your framework? Build a custom provider, or skip providers entirely and connect over MCP.
All packages
Everything published from this repo:
| Package | Description |
|---|---|
@composio/core | TypeScript SDK |
@composio/slim | @composio/core without packaged source or docs; same API, smaller install |
composio CLI | Standalone CLI binary: curl -fsSL https://composio.dev/install | sh |
@composio/experimental | Experimental integrations, including the Pi provider |
@composio/json-schema-to-zod | JSON Schema to Zod conversion |
@composio/* provider adapters | OpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Vercel, Google, LangChain, LlamaIndex, Mastra, Cloudflare |
composio | Python SDK |
composio-* provider adapters | OpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Gemini, Google, Google ADK, LangChain, LangGraph, LlamaIndex, CrewAI, AutoGen |
Repository layout
ts/ TypeScript SDK workspace
packages/core/ @composio/core
packages/providers/ Provider adapters
packages/cli/ Composio CLI
python/ Python SDK and provider packages
docs/ Documentation site (docs.composio.dev)
The TypeScript SDK is tested against Node 22+; the Python SDK supports Python 3.10+.
Development
mise install # pinned toolchain (Node, Python, pnpm)
pnpm install
pnpm build
pnpm test
Python commands run from python/; see python/README.md. We welcome contributions to both SDKs; read the contribution guidelines before submitting pull requests.