Anas Khan 57574e4f7c fix(cli): point CLI install URL at the next branch (#3758)
The documented one-line CLI install command curls `install.sh` from the
`main`
branch:

```bash
curl -fsSL https://raw.githubusercontent.com/ComposioHQ/composio/main/install.sh | bash
```

But the repository's default branch is `next` and there is no `main`
branch.
`raw.githubusercontent.com` does not fall back to the default branch, so
the
documented command returns HTTP 404 and the install fails for anyone who
copies
it from `INSTALL.md`.

This replaces the `main` branch segment with `next` in the
`raw.githubusercontent.com/ComposioHQ/composio/<branch>/install.sh` URL
at every
documented occurrence, so the install one-liner resolves. It matches the
`next`
branch already used for the raw asset URL in `README.md`. `install.sh`
itself
needs no change: it downloads binaries from release assets, not from a
branch raw
URL.

Fixes #
<!-- No open issue; self-identified bug. Leave the Fixes line blank, or
remove it. -->

### Changes

- `INSTALL.md`: update the 5 `.../composio/main/install.sh` URLs to
`.../composio/next/install.sh` (One-line Install, Install specific
version, and
the Troubleshooting / manual-download / environment-variable examples).
- `.github/workflows/build-cli-binaries.yml`: same `main` -> `next`
update at the
2 URLs inside the `create-install-instructions` job's heredoc, which
regenerates
`INSTALL.md` as a GitHub Release artifact, so the released copy carries
the
  working URL too and stays consistent with the checked-in file.

### Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Refactor/Chore
- [x] Documentation
- [ ] Breaking change

<!-- It is a documentation URL fix that also updates the CI job which
regenerates
that documentation. Marked Documentation; a reviewer may also consider
it a Bug
fix. -->

### How Has This Been Tested?

No application code changed (static Markdown plus a CI heredoc), so no
unit test
applies. Verified the branch/URL facts directly:

```
# Default branch is next; no main branch exists
git ls-remote --symref origin HEAD          # -> ref: refs/heads/next
git ls-remote --heads origin main next      # only refs/heads/next (+ changeset-release/next); no main

# The broken vs working URL, live
curl -s -o /dev/null -w "%{http_code}" https://raw.githubusercontent.com/ComposioHQ/composio/main/install.sh   # 404
curl -s -o /dev/null -w "%{http_code}" https://raw.githubusercontent.com/ComposioHQ/composio/next/install.sh   # 200

# After the change: 0 remaining main URLs, 7 next URLs
grep -rn "composio/main/install.sh"  INSTALL.md .github/workflows/build-cli-binaries.yml   # no matches
grep -rn "composio/next/install.sh"  INSTALL.md .github/workflows/build-cli-binaries.yml   # 7 matches

# The workflow YAML still parses cleanly after the heredoc edit
python -c "import yaml; yaml.safe_load(open('.github/workflows/build-cli-binaries.yml'))"
```

### Screenshots (if applicable)

N/A.

### Checklist

- [x] I have read the Code of Conduct and this PR adheres to it
- [x] I ran linters/tests locally and they passed <!-- YAML re-parses;
grep + curl checks above -->
- [x] I updated documentation as needed <!-- this change is the
documentation fix -->
- [ ] I added tests or explain why not applicable <!-- N/A: static docs
URL + CI heredoc, no code path to test -->
- [ ] I added a changeset if this change affects published packages <!--
N/A: docs + CI only, no published package -->

### Additional context

The 14 `github.com/ComposioHQ/composio/tree/main/...` `homepage` fields
in
`ts/**/package.json` also point at the non-existent `main` branch, but
those are
published-package metadata (a different URL form that would require a
changeset)
and are left out to keep this PR single-purpose. They are a reasonable
follow-up.
2026-07-07 00:31:48 +04:00
2025-09-28 04:02:01 +05:30
2025-06-17 18:06:05 -07:00
2025-06-16 19:52:20 +05:30
2025-11-13 21:18:45 +05:30
2026-06-10 19:49:26 -04:00

Composio Logo

Composio SDK

Skills that evolve for your Agents

🌐 Website • 📚 Documentation

GitHub Stars PyPI Downloads NPM Downloads Discord HVTrust

This repository contains the official Software Development Kits (SDKs) for Composio, providing seamless integration capabilities for Python and Typescript Agentic Frameworks and Libraries.

Getting Started

TypeScript SDK Installation

# Using npm
npm install @composio/core

# Using yarn
yarn add @composio/core

# Using pnpm
pnpm add @composio/core

Quick start:

import { Composio } from '@composio/core';
// Initialize the SDK
const composio = new Composio({
  // apiKey: 'your-api-key',
});

Simple Agent with OpenAI Agents

npm install @composio/openai-agents @openai/agents
import { Composio } from '@composio/core';
import { OpenAIAgentsProvider } from '@composio/openai-agents';
import { Agent, run } from '@openai/agents';

const composio = new Composio({
  provider: new OpenAIAgentsProvider(),
});

const userId = 'user@acme.org';

const tools = await composio.tools.get(userId, {
  toolkits: ['HACKERNEWS'],
});

const agent = new Agent({
  name: 'Hackernews assistant',
  tools: tools,
});

const result = await run(agent, 'What is the latest hackernews post about?');

console.log(JSON.stringify(result.finalOutput, null, 2));
// will return the response from the agent with data from HACKERNEWS API.

Python SDK Installation

# Using pip
pip install composio

# Using poetry
poetry add composio

Quick start:

from composio import Composio

composio = Composio(
  # api_key="your-api-key",
)

Simple Agent with OpenAI Agents

pip install composio_openai_agents openai-agents
import asyncio
from agents import Agent, Runner
from composio import Composio
from composio_openai_agents import OpenAIAgentsProvider

# Initialize Composio client with OpenAI Agents Provider
composio = Composio(provider=OpenAIAgentsProvider())

user_id = "user@acme.org"
tools = composio.tools.get(user_id=user_id, toolkits=["HACKERNEWS"])

# Create an agent with the tools
agent = Agent(
    name="Hackernews Agent",
    instructions="You are a helpful assistant.",
    tools=tools,
)

# Run the agent
async def main():
    result = await Runner.run(
        starting_agent=agent,
        input="What's the latest Hackernews post about?",
    )
    print(result.final_output)

asyncio.run(main())
# will return the response from the agent with data from HACKERNEWS API.

For more detailed usage instructions and examples, please refer to each SDK's specific documentation.

Open API Specification

To update the OpenAPI specifications used for generating SDK documentation:

# Pull the latest API specifications from the backend
pnpm api:pull

This command pulls the OpenAPI specification from https://backend.composio.dev/api/v3/openapi.json and updates the local API documentation files.

This is pulled automatically with build step.

Available SDKs

TypeScript SDK (/ts)

The TypeScript SDK provides a modern, type-safe way to interact with Composio's services. It's designed for both Node.js and browser environments, offering full TypeScript support with comprehensive type definitions.

For detailed information about the TypeScript SDK, please refer to the TypeScript SDK Documentation.

Python SDK (/python)

The Python SDK offers a Pythonic interface to Composio's services, making it easy to integrate Composio into your Python applications. It supports Python 3.10+ and follows modern Python development practices.

For detailed information about the Python SDK, please refer to the Python SDK Documentation.

Provider Support

The following table shows which AI frameworks and platforms are supported in each SDK:

Provider TypeScript Python
OpenAI ✅ ✅
OpenAI Agents ✅ ✅
Anthropic ✅ ✅
LangChain ✅ ✅
LangGraph ✅* ✅
LlamaIndex ✅ ✅
Vercel AI SDK ✅ ❌
Google Gemini ✅ ✅
Google ADK ❌ ✅
Mastra ✅ ❌
Cloudflare Workers AI ✅ ❌
CrewAI ❌ ✅
AutoGen ❌ ✅

* LangGraph in TypeScript is supported via the @composio/langchain package.

Don't see your provider? Learn how to build a custom provider to integrate with any AI framework.

Packages

Core Packages

Package Version
TypeScript
@composio/core npm version
Python
composio PyPI version

Provider Packages

Package Version
TypeScript
@composio/openai npm version
@composio/openai-agents npm version
@composio/anthropic npm version
@composio/langchain npm version
@composio/llamaindex npm version
@composio/vercel npm version
@composio/google npm version
@composio/mastra npm version
@composio/cloudflare npm version
Python
composio-openai PyPI version
composio-openai-agents PyPI version
composio-anthropic PyPI version
composio-langchain PyPI version
composio-langgraph PyPI version
composio-llamaindex PyPI version
composio-crewai PyPI version
composio-autogen PyPI version
composio-gemini PyPI version
composio-google PyPI version
composio-google-adk PyPI version

Utility Packages

Package Version
@composio/json-schema-to-zod npm version
@composio/ts-builders npm version

if you are looking for the older sdk, you can find them here

Rube

Rube is a Model Context Protocol (MCP) server built with Composio. It connects your AI tools to 500+ apps like Gmail, Slack, GitHub, and Notion. Simply install it in your AI client, authenticate once with your apps, and start asking your AI to perform real actions like "Send an email" or "Create a task."

It integrates with major AI clients like Cursor, Claude Desktop, VS Code, Claude Code and any custom MCP‑compatible client. You can switch between these clients and your integrations follow you.

Contributing

We welcome contributions to both SDKs! Please read our contribution guidelines before submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

If you encounter any issues or have questions about the SDKs:

S
Description
Route and complete Composio work across Composio For You and Composio Platform. Use when the user mentions Composio; wants an agent to use apps such as Gmail,…
Readme 1.3 GiB
Languages
TypeScript 72.2%
Python 23.3%
Shell 2.1%
JavaScript 2%
Swift 0.4%