$git clone https://github.com/ComposioHQ/composioComposio 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.
| 1 | <p align="center"> |
| 2 | <a href="https://composio.dev"> |
| 3 | <picture> |
| 4 | <source media="(prefers-color-scheme: dark)" srcset="https://brand.composio.dev/logos/Logomark-White.svg"> |
| 5 | <img alt="Composio logo" src="https://brand.composio.dev/logos/Logomark-Black.svg" width="96"> |
| 6 | </picture> |
| 7 | </a> |
| 8 | </p> |
| 9 | |
| 10 | <p align="center"> |
| 11 | <a href="https://composio.dev"><b>composio.dev</b></a> • |
| 12 | <a href="https://docs.composio.dev">Documentation</a> • |
| 13 | <a href="https://docs.composio.dev/docs/quickstart">Quickstart</a> • |
| 14 | <a href="https://docs.composio.dev/reference/changelog">Changelog</a> |
| 15 | </p> |
| 16 | |
| 17 | <p align="center"> |
| 18 | <a href="https://github.com/ComposioHQ/composio/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/ComposioHQ/composio?style=social" /></a> |
| 19 | <a href="https://www.npmjs.com/package/@composio/core"><img alt="npm" src="https://img.shields.io/npm/v/@composio/core?label=%40composio%2Fcore" /></a> |
| 20 | <a href="https://pypi.org/project/composio/"><img alt="PyPI" src="https://img.shields.io/pypi/v/composio?label=composio" /></a> |
| 21 | <a href="https://discord.gg/composio"><img alt="Discord" src="https://img.shields.io/badge/discord-community-5865F2?logo=discord&logoColor=white" /></a> |
| 22 | <a href="https://hvtracker.net/agents/composio/"><img alt="HVTrust" src="https://hvtracker.net/badge/composio.svg" /></a> |
| 23 | </p> |
| 24 | |
| 25 | # Composio |
| 26 | |
| 27 | 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. |
| 28 | |
| 29 | This is the Composio SDK monorepo. It contains: |
| 30 | |
| 31 | - **[`@composio/core`](ts/packages/core)**: TypeScript SDK |
| 32 | - **[`composio`](python)**: Python SDK |
| 33 | - **[`composio` CLI](ts/packages/cli)**: search, execute, and script tools from your shell |
| 34 | - **Provider adapters** for OpenAI Agents, Claude Agent SDK, Vercel AI SDK, LangChain, and [more](#providers) |
| 35 | |
| 36 | ## Quickstart |
| 37 | |
| 38 | 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](https://dashboard.composio.dev/settings) first. |
| 39 | |
| 40 | ### TypeScript |
| 41 | |
| 42 | ```bash |
| 43 | npm install @composio/core @composio/openai-agents @openai/agents |
| 44 | ``` |
| 45 | |
| 46 | > `@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`](ts/packages/slim). |
| 47 | |
| 48 | ```typescript |
| 49 | import { Composio } from "@composio/core"; |
| 50 | import { OpenAIAgentsProvider } from "@composio/openai-agents"; |
| 51 | import { Agent, run } from "@openai/agents"; |
| 52 | |
| 53 | const composio = new Composio({ provider: new OpenAIAgentsProvider() }); |
| 54 | |
| 55 | // Each session is scoped to one of your users |
| 56 | const session = await composio.create("user_123"); |
| 57 | const tools = await session.tools(); |
| 58 | |
| 59 | const agent = new Agent({ |
| 60 | name: "Personal Assistant", |
| 61 | instructions: "You are a helpful assistant. Use Composio tools to take action.", |
| 62 | tools, |
| 63 | }); |
| 64 | |
| 65 | const result = await run(agent, "Summarize my emails from today"); |
| 66 | console.log(result.finalOutput); |
| 67 | ``` |
| 68 | |
| 69 | ### Python |
| 70 | |
| 71 | ```bash |
| 72 | pip install composio composio-openai-agents openai-agents |
| 73 | ``` |
| 74 | |
| 75 | ```python |
| 76 | from composio import Composio |
| 77 | from composio_openai_agents import OpenAIAgentsProvider |
| 78 | from agents import Agent, Runner |
| 79 | |
| 80 | composio = Composio(provider=OpenAIAgentsProvider()) |
| 81 | |
| 82 | # Each session is scoped to one of your users |
| 83 | session = composio.create(user_id="user_123") |
| 84 | tools = session.tools() |
| 85 | |
| 86 | agent = Agent( |
| 87 | name="Personal Assistant", |
| 88 | instructions="You are a helpful assistant. Use Composio tools to take action.", |
| 89 | tools=tools, |
| 90 | ) |
| 91 | |
| 92 | result = Runner.run_sync(starting_agent=agent, input="Summarize my emails from today") |
| 93 | print(result.final_output) |
| 94 | ``` |
| 95 | |
| 96 | 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](https://docs.composio |