← Back to all projects

composio

Hosted catalogue of ready-made actions across 1000+ apps, with the sign-in handled

OfficialMIT
Stars
29.9k
Forks
4.8k
Open issues
71
Last commit
28 Aug 2026

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

29.7k29.9k

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 SDK
  • composio: Python SDK
  • composio CLI: 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/core intentionally 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:

ProviderTypeScriptPython
OpenAI@composio/openaicomposio-openai
OpenAI Agents@composio/openai-agentscomposio-openai-agents
Anthropic@composio/anthropiccomposio-anthropic
Claude Agent SDK@composio/claude-agent-sdkcomposio-claude-agent-sdk
Vercel AI SDK@composio/vercel—
Google GenAI@composio/googlecomposio-gemini, composio-google
Google ADK—composio-google-adk
LangChain@composio/langchaincomposio-langchain
LangGraphvia @composio/langchaincomposio-langgraph
LlamaIndex@composio/llamaindexcomposio-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:

PackageDescription
@composio/coreTypeScript SDK
@composio/slim@composio/core without packaged source or docs; same API, smaller install
composio CLIStandalone CLI binary: curl -fsSL https://composio.dev/install | sh
@composio/experimentalExperimental integrations, including the Pi provider
@composio/json-schema-to-zodJSON Schema to Zod conversion
@composio/* provider adaptersOpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Vercel, Google, LangChain, LlamaIndex, Mastra, Cloudflare
composioPython SDK
composio-* provider adaptersOpenAI, 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.

Support