diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..11f1015 --- /dev/null +++ b/README.en.md @@ -0,0 +1,184 @@ +
+
+
+
+ composio.dev • + Documentation • + Quickstart +
+ + + +# 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`](ts/packages/core)**: TypeScript SDK +- **[`composio`](python)**: Python SDK +- **[`composio` CLI](ts/packages/cli)**: search, execute, and script tools from your shell +- **Provider adapters** for OpenAI Agents, Claude Agent SDK, Vercel AI SDK, LangChain, and [more](#providers) + +## 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](https://dashboard.composio.dev/settings) first. + +### TypeScript + +```bash +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`](ts/packages/slim). + +```typescript +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 + +```bash +pip install composio composio-openai-agents openai-agents +``` + +```python +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](https://docs.composio.dev/docs/how-composio-works) and [configuring sessions](https://docs.composio.dev/docs/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](https://docs.composio.dev/docs/sessions-via-mcp). + +## CLI + +The `composio` CLI runs Composio from your shell and gives coding agents like Claude Code a local tool surface. + +```bash +curl -fsSL https://composio.dev/install | bash +composio login +``` + +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](https://docs.composio.dev/docs/cli). + +## Providers + +A provider adapts Composio tools to your agent framework's native tool format: + +| Provider | TypeScript | Python | +|----------|:----------:|:------:| +| OpenAI | [`@composio/openai`](ts/packages/providers/openai) | [`composio-openai`](python/providers/openai) | +| OpenAI Agents | [`@composio/openai-agents`](ts/packages/providers/openai-agents) | [`composio-openai-agents`](python/providers/openai_agents) | +| Anthropic | [`@composio/anthropic`](ts/packages/providers/anthropic) | [`composio-anthropic`](python/providers/anthropic) | +| Claude Agent SDK | [`@composio/claude-agent-sdk`](ts/packages/providers/claude-agent-sdk) | [`composio-claude-agent-sdk`](python/providers/claude_agent_sdk) | +| Vercel AI SDK | [`@composio/vercel`](ts/packages/providers/vercel) | — | +| Google GenAI | [`@composio/google`](ts/packages/providers/google) | [`composio-gemini`](python/providers/gemini), [`composio-google`](python/providers/google) | +| Google ADK | — | [`composio-google-adk`](python/providers/google_adk) | +| LangChain | [`@composio/langchain`](ts/packages/providers/langchain) | [`composio-langchain`](python/providers/langchain) | +| LangGraph | via `@composio/langchain` | [`composio-langgraph`](python/providers/langgraph) | +| LlamaIndex | [`@composio/llamaindex`](ts/packages/providers/llamaindex) | [`composio-llamaindex`](python/providers/llamaindex) | +| Mastra | [`@composio/mastra`](ts/packages/providers/mastra) | — | +| Pi | [`@composio/experimental`](ts/packages/experimental)* | — | +| Cloudflare Workers AI | [`@composio/cloudflare`](ts/packages/providers/cloudflare) | — | +| CrewAI | — | [`composio-crewai`](python/providers/crewai) | +| AutoGen | — | [`composio-autogen`](python/providers/autogen) | + +\* *The [Pi provider](https://docs.composio.dev/docs/providers/pi) is experimental and ships from `@composio/experimental`.* + +Don't see your framework? [Build a custom provider](https://docs.composio.dev/docs/providers/custom-providers), or skip providers entirely and connect over [MCP](https://docs.composio.dev/docs/sessions-via-mcp). + +## All packages + +Everything published from this repo: + +| Package | Description | +|---------|-------------| +| [`@composio/core`](ts/packages/core) | TypeScript SDK | +| [`@composio/slim`](ts/packages/slim) | `@composio/core` without packaged source or docs; same API, smaller install | +| [`composio` CLI](ts/packages/cli) | Standalone CLI binary: `curl -fsSL https://composio.dev/install \| bash` | +| [`@composio/experimental`](ts/packages/experimental) | Experimental integrations, including the Pi provider | +| [`@composio/json-schema-to-zod`](ts/packages/json-schema-to-zod) | JSON Schema to Zod conversion | +| `@composio/*` [provider adapters](#providers) | OpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Vercel, Google, LangChain, LlamaIndex, Mastra, Cloudflare | +| [`composio`](python) | Python SDK | +| `composio-*` [provider adapters](#providers) | OpenAI, OpenAI Agents, Anthropic, Claude Agent SDK, Gemini, Google, Google ADK, LangChain, LangGraph, LlamaIndex, CrewAI, AutoGen | + +## Repository layout + +```text +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 + +```bash +mise install # pinned toolchain (Node, Python, pnpm) +pnpm install +pnpm build +pnpm test +``` + +Python commands run from `python/`; see [`python/README.md`](python/README.md). We welcome contributions to both SDKs; read the [contribution guidelines](CONTRIBUTING.md) before submitting pull requests. + +## Support + +- [Documentation](https://docs.composio.dev) +- [Discord community](https://discord.gg/composio) +- [Open an issue](https://github.com/ComposioHQ/composio/issues) +- [support@composio.dev](mailto:support@composio.dev) + +## License + +MIT. See [LICENSE](LICENSE).