Composio
3.1.0 open-sourceComposio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.
import { toStrictJsonSchema, omitNullToolArguments } from '@composio/core';
const strictSchema = toStrictJsonSchema(myToolSchema);
const cleanArgs = omitNullToolArguments(toolArguments);
{
"type": "object",
"properties": { "to": { "type": "string" } },
"additionalProperties": true
}
const schema = jsonSchemaToZod({ type: 'object' });
schema.parse({ anything: 1 }); // returns { anything: 1 }
const schema = jsonSchemaToZod({ type: 'object', additionalProperties: false });
schema.parse({ anything: 1 }); // throws
import { ComposioBlockedInternalUrlError } from '@composio/core';
try {
await composio.files.upload('http://169.254.169.254/latest/meta-data/');
} catch (err) {
if (err instanceof ComposioBlockedInternalUrlError) {
console.error('Blocked SSRF attempt:', err.message);
}
}
import { assertSafeFileUploadPath, isBlockedSensitiveFileUploadPath, BUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTS } from '@composio/core';
// Throws if path matches a blocked segment (e.g. ~/.ssh/id_rsa)
assertSafeFileUploadPath('/home/user/.ssh/id_rsa');
// Or check without throwing
if (isBlockedSensitiveFileUploadPath('/etc/passwd')) {
console.warn('Blocked sensitive file upload');
}
const session = await composio.sessions.create({ mcp: true });
console.log(session.mcp);
const session = await composio.sessions.create({ workbench: { enable: false } });
console.log(session.workbench?.enable); // false
const trigger = await composio.triggers.parse(req.body, { verify: true });
try {
const tools = await composio.tools.get(
'user_1',
{ search: 'send email', limit: 50 },
{ signal: AbortSignal.timeout(5_000) }
);
} catch (err) {
if (err instanceof ComposioRequestCancelledError) {
return;
}
throw err;
}
import { experimental_createTool } from '@composio/core';
const longRunningFetch = experimental_createTool('LONG_RUNNING_FETCH', {
name: 'Long-running fetch',
description: 'Fetches a URL with cooperative cancellation',
inputParams: z.object({ url: z.string() }),
execute: async (input, ctx) => {
const resp = await fetch(input.url, { signal: ctx.signal });
return { result: await resp.json() };
},
});
import { dereferenceJsonSchema } from '@composio/core';
const schema = await fetchRawToolSchema('GMAIL_FETCH_EMAILS');
const resolved = dereferenceJsonSchema(schema, {
onUnresolved: 'sentinel',
onReplace: (ref, reason) => console.warn(`Unresolved $ref: ${ref} — ${reason}`)
});
import { normalizeToolArguments, ComposioInvalidToolArgumentsError } from '@composio/core';
try {
const args = normalizeToolArguments(modelToolCallInput);
await composio.tools.execute('MY_TOOL', args);
} catch (e) {
if (e instanceof ComposioInvalidToolArgumentsError) {
console.error('Bad tool arguments from model:', e.message);
}
}
const shared = await composio.connectedAccounts.list({
accountType: 'SHARED',
userIds: ['user_creator'],
});
await composio.connectedAccounts.link('user_id', 'auth_config_id', {
experimental: {
accountType: 'SHARED',
aclConfigForShared: { allowAllUsers: true },
},
});
await experimental_updateAcl(composio, 'ca_abc', { allowAllUsers: true });
composio.connectedAccounts.link(userId, authConfigId, {
accountType: 'SHARED',
aclConfigForShared: {
allowAllUsers: false,
allowedUserIds: ['user_alice', 'user_bob'],
notAllowedUserIds: []
}
});
composio.connectedAccounts.updateAcl('conn_nanoid_here', {
notAllowedUserIds: ['user_eve']
});
composio local-tools doctor
composio local-tools list
const session = await composio.use(existingSessionId);
await session.update({ connectedAccounts: { gmail: 'ca_new_xxx' } });
const session = await composio.use(existingSessionId, {
customTools: myCustomTools,
customToolkits: myCustomToolkits
});
const tools = await session.tools();
import { SessionPreset } from '@composio/core';
const session = await composio.create({
preset: SessionPreset.DIRECT_TOOLS,
preload: { tools: 'all' }
});
const tools = await session.tools();
await composio.connectedAccounts.link(userId, authConfigId, { allowMultiple: true });
await composio.toolRouter.createSession({
workbench: {
sandboxSize: 'xlarge'
}
});
composio = Composio(
api_key=...,
dangerously_allow_auto_upload_download_files=True,
file_upload_dirs=["/path/to/allowed/dir"],
file_download_dir="/path/to/downloads",
)
const tools = await composio.tools.get({
sensitiveFileUploadProtection: true,
fileUploadPathDenySegments: [".secrets", "vault"],
beforeFileUpload: (filePath) => {
if (filePath.includes("/tmp/staging")) return filePath.replace("/tmp/staging", "/tmp/safe");
return filePath;
}
});
const tools = await composio.tools.get({
sensitiveFileUploadProtection: false
});
from composio import Composio
from composio.modifiers import before_file_upload
@before_file_upload
def audit_upload(path: str) -> str | bool:
if 'confidential' in path:
return False # aborts upload, raises FileUploadAbortedError
print(f'Uploading: {path}')
return path
client = Composio(
sensitive_file_upload_protection=True,
file_upload_path_deny_segments=['.ssh', '.aws', '.env'],
)
tools = client.tools.get(actions=[...], modifiers=[audit_upload])
composio execute --get-schema <tool-name>
composio login --no-skill-install
COMPOSIO_SESSION_DIR=/tmp/composio/session COMPOSIO_CACHE_DIR=/tmp/composio/cache composio execute <tool-name>
{
"workbench": {
"enable": false
}
}
composio login --no-wait --key <session-key>
composio login --no-wait
composio link --no-wait
composio login -y
const isValid = await composio.triggers.verifyWebhook(request);
const connection = await composio.connectedAccounts.initiate({ appName: 'github', redirectUrl: 'https://yourapp.com/callback' });
session = composio.create(...)
tools = Tools(client, provider, toolkit_versions={'github': '20251201_01'})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01')
tools = Tools(client, provider, toolkit_versions={'github': '20251201_01'})
tools.execute('GITHUB_CREATE_ISSUE', arguments={...})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01')
tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})
tools.execute("GITHUB_CREATE_ISSUE", arguments={...})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute("GITHUB_CREATE_ISSUE", arguments={...}, dangerously_skip_version_check=True)
tools = Tools(client, provider, toolkit_versions={'github': '20251201_01'})
tools.execute('GITHUB_CREATE_ISSUE', arguments={...})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01')
tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})
tools.execute("GITHUB_CREATE_ISSUE", arguments={...})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})
tools.execute("GITHUB_CREATE_ISSUE", arguments={"title": "Bug report", "body": "..."})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute("GITHUB_CREATE_ISSUE", arguments={"title": "Urgent", "body": "..."}, version="20251201_01")
tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})
tools.execute("GITHUB_CREATE_ISSUE", arguments={...})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute("GITHUB_CREATE_ISSUE", arguments={...}, version="20251201_01")
tools.execute('GITHUB_CREATE_ISSUE',
arguments={'title': 'Bug report', 'body': 'Details here', 'repo': 'my-repo'},
version='20251201_01'
)
tools = Tools(client, provider,
toolkit_versions={'github': '20251201_01', 'slack': '20251201_02'}
)
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})
tools.execute("GITHUB_CREATE_ISSUE", arguments={...})
export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01
tools.execute("GITHUB_CREATE_ISSUE", arguments={...}, dangerously_skip_version_check=True)
FORCE_USE_CACHE=1 composio ts generate
await toolset.createAction({
// ...other fields
inputParams: z.object({
name: z.string().optional()
}),
callback: async (params) => {
const { name } = params;
return {
successful: true,
data: { name: name || 'World' }
};
}
});
connected_accounts = toolset.get_connected_accounts()
composio triggers show Summary
Composio is an open-source SDK monorepo that provides AI agents with over 1000 pre-authenticated toolkits, per-user sessions, and sandboxing capabilities, allowing agents to turn intent into action. It is free to use and is run by integrating its SDKs, which are available as TypeScript and Python packages, and offer a CLI for shell scripting. The tool is designed for developers building AI agents that require tool integration and authentication. Its documentation positions it alongside other agent SDKs for OpenAI and Claude. The repository shows active maintenance via its listed package managers and SDK offerings.
Composio powers 1000+ toolkits, tool search, context management, authentication, and a sandboxed workbench to help you build AI agents that turn intent into action.
What Composio answers
What platforms does Composio provide adapters for?
OpenAI Agents, Claude Agent SDK, Vercel AI SDK, and LangChain
Can I control tool invocation from the command line?
The dedicated package includes a way to search, execute, and script tools from the shell
How is user context maintained during agent interactions?
It supports establishing separate per-user sessions
Does Composio limit the actions an agent can take?
It incorporates a sandboxing capability
What kind of tools are available out of the box?
It includes over 1000 pre-authenticated toolkits
Where does the process start for initial use?
The first step involves generating an API key through the associated dashboard
Examples
Command line
No option matches that search.
| option | found in | since | description |
|---|
No option matches that search.
Values are placeholders taken from each option’s declared default. Nothing is executed here — the output shown is a recording of a run that already happened.
Release history
- 3.1.0
API surface changed: +2 endpoints, 6 modified
API CHANGEAPI surface changed: +2 endpoints, 6 modified
- + GET /api/v3.1/toolkits/{toolkit_slug}/scopes/grant_context
- + POST /api/v3.1/toolkits/{toolkit_slug}/scopes/recommended
- ~ GET /api/v3.1/auth_configs: response schema changed
- ~ GET /api/v3.1/auth_configs/{nanoid}: response schema changed
- ~ GET /api/v3.1/connected_accounts: response schema changed
- ~ GET /api/v3.1/connected_accounts/{nanoid}: response schema changed
- ~ PATCH /api/v3.1/connected_accounts/{nanoId}/status: response schema changed
- ~ POST /api/v3.1/connected_accounts: request body changed; response schema changed
- ›New endpoint GET
/api/v3.1/toolkits/{toolkit_slug}/scopes/grant_context - ›New endpoint POST
/api/v3.1/toolkits/{toolkit_slug}/scopes/recommended - ›GET
/api/v3.1/auth_configs: response schema changed - ›GET
/api/v3.1/auth_configs/{nanoid}: response schema changed - ›GET
/api/v3.1/connected_accounts: response schema changed
+3 moreshow less
- ›GET
/api/v3.1/connected_accounts/{nanoid}: response schema changed - ›PATCH
/api/v3.1/connected_accounts/{nanoId}/status: response schema changed - ›POST
/api/v3.1/connected_accounts: request body changed; response schema changed
- @composio/[email protected]
OpenAI Agents provider gains working
strict: truemode for structured-output tool registration└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Enables OpenAIAgentsProvider({ strict: true }): tools are now registered with
strict: trueand schemas normalized for OpenAI structured outputs (every property required, optional ones acceptnull);nullarguments rejected by a tool's own schema are dropped before execution; tools whose schemas cannot express strict mode are registered without it and emit a warning.
└──▷ BREAKING ON UPGRADE- !Node.js 22.22.3 is now the minimum supported runtime for every published TypeScript package; older Node.js versions will be rejected by package managers before install.
- ›Enables OpenAIAgentsProvider({ strict: true }): tools are now registered with
- @composio/[email protected]
Composio core 0.18.0 exports toStrictJsonSchema() and omitNullToolArguments() for OpenAI strict-mode tool schemas.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITConvert a tool schema to OpenAI strict-mode format before registering it, to avoid 400 errors from the API on nested or optional parameters.import { toStrictJsonSchema, omitNullToolArguments } from '@composio/core'; const strictSchema = toStrictJsonSchema(myToolSchema); const cleanArgs = omitNullToolArguments(toolArguments);- ›Exports new toStrictJsonSchema() utility from
@composio/coreto normalize any tool schema to full OpenAI strict-mode compliance at every depth (nested objects,anyOfbranches, array items, inlined$ref/$defs), addingrequiredlists andadditionalProperties: falseautomatically. - ›Exports new omitNullToolArguments() utility from
@composio/coreto stripnullarguments before tool execution when the tool's own schema does not accept them. - ›Adds a
strict=Trueconstructor flag to the PythonOpenAIResponsesProviderthat emitsstrict: trueon wrapped tools, enabling OpenAI structured-output compliance from the Python SDK. - ›Tools whose schemas strict mode cannot express (objects with arbitrary keys,
allOf,prefixItems, unresolved$refs) are now forwarded without strict mode and emit a warning naming the tool and path, instead of being silently narrowed or rejected.
└──▷ BREAKING ON UPGRADE- !Node.js 22.22.3 is now declared as the minimum supported runtime for every published TypeScript package; package managers will surface incompatible runtimes before installation.
- ›Exports new toStrictJsonSchema() utility from
- 3.1.0
Composio now publishes an API — 97 endpoints across 17 areas: Tool Router, Mcp, Connected Accounts, …
- ›Tool Router (17 endpoints) — (Labs) Tool router endpoints
- ›Mcp (11 endpoints) — MCP server management
- ›Connected Accounts (10 endpoints) — Connected account management
- ›Projects (8 endpoints) — create, read, delete
- ›Toolkits (8 endpoints) — Toolkit and tool management
+4 moreshow less
- ›Tools (7 endpoints) — Tool execution endpoints
- ›Triggers (7 endpoints) — Trigger management and execution
- ›Webhook Subscriptions (7 endpoints) — Webhook delivery subscriptions.
- ›9 more areas: Auth Configs, Webhook Endpoints, Authentication, Files, Logs, Organization, Api Keys, Invite Codes, Organization Management
- @composio/[email protected]
Composio OpenAI/Anthropic tool-call helpers now route execution through a Tool Router session, with error text preserved in
{ error }results.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›OpenAI and Anthropic provider tool-call helpers can now execute through a supplied Tool Router session, with session meta-tools retaining their session context alongside existing user-ID direct execution.
- ›Anthropic helper failures now preserve error text in
{ error }results without altering successful payloads.
└──▷ BREAKING ON UPGRADE- !Custom provider subclasses overriding
executeToolCallorhandleToolCallsmay require updates because these methods now accept session targets.
- @composio/[email protected]
Composio OpenAI/Anthropic helpers can now execute tool calls through a Tool Router session, with error text preserved in
{ error }results.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›OpenAI and Anthropic provider tool-call helpers (
executeToolCall,handleToolCalls) now accept a Tool Router session target, so session meta-tools retain their session context during execution. - ›Anthropic helper failures now preserve error text in
{ error }result payloads instead of discarding it.
└──▷ BREAKING ON UPGRADE- !Custom provider subclasses overriding
executeToolCallorhandleToolCallsmay require updates because these methods now accept session targets.
- ›OpenAI and Anthropic provider tool-call helpers (
- @composio/[email protected]
Composio @composio/[email protected] adds Tool Router session support for OpenAI/Anthropic helpers and extends SSRF guards to API-response URLs.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›OpenAI and Anthropic provider tool-call helpers (
executeToolCall/handleToolCalls) can now execute through a supplied Tool Router session, with session meta-tools retaining their session context across calls. - ›Anthropic helper failures now preserve error text in
{ error }results instead of swallowing them.
└──▷ BREAKING ON UPGRADE- !Custom provider subclasses overriding
executeToolCallorhandleToolCallsmay break on upgrade because these methods now accept session targets as an additional parameter.
- ›OpenAI and Anthropic provider tool-call helpers (
- @composio/[email protected]
Tool Router sessions now flow through OpenAI/Anthropic helpers, and API-response URLs are SSRF-guarded before fetch.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Enables OpenAI and Anthropic provider tool-call helpers (
executeToolCall,handleToolCalls) to execute through a supplied Tool Router session, so session meta-tools retain their session context during provider calls. - ›Anthropic helper failures now return error text in
{ error }results instead of swallowing it, preserving failure detail without altering successful payloads.
└──▷ BREAKING ON UPGRADE- !Custom provider subclasses overriding
executeToolCallorhandleToolCallsmay require updates because these methods now accept session targets.
- ›Enables OpenAI and Anthropic provider tool-call helpers (
- @composio/[email protected]
Composio Anthropic helper routes tool calls through a Tool Router session and preserves error text in
{ error }results.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Enables the Anthropic provider tool-call helper to execute through a supplied Tool Router session, with session meta-tools retaining their session context alongside existing user-ID direct execution.
- ›Anthropic helper failures now preserve their error text in
{ error }results without altering successful payloads. - ›Custom provider subclasses overriding
executeToolCallorhandleToolCallsnow accept session targets, enabling session-aware routing in subclassed providers.
└──▷ BREAKING ON UPGRADE- !Custom provider subclasses overriding
executeToolCallorhandleToolCallsmay require updates because these methods now accept session targets.
- @composio/[email protected]
Composio @composio/anthropic 0.11.0 routes Anthropic tool-call helpers through a Tool Router session and preserves error text in results.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Anthropic provider tool-call helpers can now execute through a supplied Tool Router session, with session meta-tools retaining their session context alongside existing user-ID direct execution.
- ›Anthropic helper failures now preserve their error text in
{ error }results without altering successful payloads. - ›Custom provider subclasses overriding
executeToolCallorhandleToolCallsnow accept session targets as part of their method signatures.
└──▷ BREAKING ON UPGRADE- !Custom provider subclasses overriding
executeToolCallorhandleToolCallsmay require updates because these methods now accept session targets.
- @composio/[email protected]
Composio CLI 0.3.4-beta.350 publishes the agent skill and fixes auth-config credential nesting.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Nests custom credentials under
auth_config.credentialsin theauth-configs createCLI command, correcting how credentials are submitted. - ›Publishes the Composio agent skill, making it available for use in skill-based agent workflows.
- ›Nests custom credentials under
- @composio/[email protected]
Composio CLI 0.3.3 bakes the toolkit slug catalog locally for faster, offline toolkit resolution.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Bakes the toolkit slug catalog directly into the CLI binary, enabling toolkit resolution from local knowledge without a catalog network call — unlocking offline and low-latency workflows.
- @composio/[email protected]
Composio CLI 0.3.3 resolves toolkits locally for faster offline-capable lookups and bakes in the full toolkit slug catalog.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Bakes the complete toolkit slug catalog into the CLI binary, enabling toolkit resolution without a network call to the catalog service.
- @composio/[email protected]
Composio CLI now resolves toolkits locally from a baked-in catalog, eliminating network round-trips.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Bakes the toolkit slug catalog directly into the CLI binary so toolkit resolution works from local knowledge rather than requiring a catalog API call.
- @composio/[email protected]
Composio @composio/[email protected] extends ToolSchema to support free-form object roots, patternProperties, and schema-valued additionalProperties.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds support for free-form object roots,
patternProperties, and schema-valuedadditionalPropertiesinToolSchema.parse, so tools that declare dynamic keys now pass those constraints through to every provider'sinputParametersinstead of having them silently stripped. - ›Makes the
propertiesfield optional on the publicToolSchematype to reflect valid property-less object schemas. - ›Automatically injects
type: 'object'into nested JSON Schema nodes that carrypropertieswithout an explicit type, ensuring compatibility with strict OpenAPI 3.0 consumers such as Google Gemini. - ›Reuses fetched tool schemas when provider-wrapped tools execute, avoiding a redundant retrieval request per tool call.
└──▷ BREAKING ON UPGRADE- !Code that assumed
additionalPropertiesininputParametersis always a boolean must be widened —ToolSchema.parsenow accepts and preservesadditionalPropertiesas a schema object (e.g.{ type: 'number' }), andpatternPropertiescan also appear on a parsed schema.
- ›Adds support for free-form object roots,
- @composio/[email protected]
Composio @composio/[email protected] extends ToolSchema to support free-form object roots, patternProperties, and schema-valued additionalProperties.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds support in
ToolSchema.parsefor free-form{ "type": "object" }root schemas, rootpatternProperties, and rootadditionalPropertiesexpressed as a schema object rather than a boolean, so dynamic-key tools no longer have those rules silently stripped before reaching the model. - ›Makes
propertiesoptional in the publicToolSchematype to reflect valid property-less object schemas. - ›Automatically injects
type: 'object'into nested JSON Schema nodes that declarepropertieswithout an explicit type, enabling compatibility with strict OpenAPI 3.0 consumers such as Google Gemini. - ›Reuses fetched tool schemas during provider-wrapped tool execution to eliminate a redundant retrieval request per invocation.
└──▷ BREAKING ON UPGRADE- !Code that relied on
ToolSchema.parserejecting a schema-valued rootadditionalProperties(only a boolean was previously accepted) will no longer see that parse failure — parsing now succeeds andinputParameters.additionalPropertiescarries the schema object. - !Code that assumed
inputParametersnever carriespatternProperties, or thatadditionalPropertiesis always a boolean, must be widened: both keywords can now appear, andadditionalPropertiescan be a boolean or a schema object.
- ›Adds support in
- @composio/[email protected]
Claude Agent SDK provider now registers complete object schemas, enforcing
additionalPropertiesand rejecting undeclared arguments.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITAllow a tool to accept arbitrary extra keys from the model without rejecting the call.{ "type": "object", "properties": { "to": { "type": "string" } }, "additionalProperties": true }- ›The Claude Agent SDK provider now registers each tool with its full object schema, so root-level rules like
additionalPropertiesandpatternPropertiesare respected instead of being silently dropped.
└──▷ BREAKING ON UPGRADE- !Undeclared tool arguments no longer pass silently — a tool that previously ran after stripping unknown keys (e.g.
hallucinated: 'value') now returns an error result and does not execute. Any tool schema that relies on silent argument removal must be updated: either declare the extra keys inpropertiesor setadditionalProperties: truein the tool's JSON schema.
- ›The Claude Agent SDK provider now registers each tool with its full object schema, so root-level rules like
- @composio/[email protected]
json-schema-to-zod now accepts arbitrary content in property-less objects and correctly scopes patternProperties and additionalProperties validation.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPreserve arbitrary payload content when converting a free-form object schema, instead of having it rejected.const schema = jsonSchemaToZod({ type: 'object' }); schema.parse({ anything: 1 }); // returns { anything: 1 }Keep a property-less object schema closed (rejecting unknown keys) after the default behavior changed.const schema = jsonSchemaToZod({ type: 'object', additionalProperties: false }); schema.parse({ anything: 1 }); // throws- ›Property-less object schemas (
{ "type": "object" }or{ "properties": {} }) are now open by default, accepting and preserving arbitrary content at the root, nested inside objects, and inside array items — instead of rejecting everything as z.object({}).strict(). - ›Dynamic key routing now correctly applies each
patternPropertiespattern only to keys it actually claims, andadditionalProperties(schema-valued) applies only to keys unmatched by any declared property or pattern.
└──▷ BREAKING ON UPGRADE- !Converting a property-less object schema (
{ "type": "object" }or{ "properties": {} }) no longer produces a schema that rejects all non-empty payloads; callers that relied on that closed behavior must now explicitly setadditionalProperties: falsein their JSON Schema to restore it.
- ›Property-less object schemas (
- @composio/[email protected]
json-schema-to-zod now converts property-less objects to open schemas and correctly routes patternProperties and additionalProperties.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Objects with no named properties (
{ "type": "object" }or{ "properties": {} }) now convert to open Zod schemas that accept arbitrary content instead of strict empty objects that rejected all payloads.
└──▷ BREAKING ON UPGRADE- !Property-less object schemas such as
{ "type": "object" }no longer produce a schema that rejects all input: jsonSchemaToZod({ type: 'object' }).parse({ anything: 1 }) now returns{ anything: 1 }instead of throwing. To preserve the old closed behavior, explicitly setadditionalProperties: falsein the JSON Schema.
- ›Objects with no named properties (
- @composio/[email protected]
Composio OpenAI integration now supports OpenAI SDK versions 6 and 7.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds support for OpenAI SDK versions 6 and 7 in the
@composio/openaipackage.
- ›Adds support for OpenAI SDK versions 6 and 7 in the
- @composio/[email protected]
Composio CLI 0.3.2 makes automatic shell setup the default during installation.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Automatic shell setup is now the installer default, removing the need for manual shell configuration after install.
- @composio/[email protected]
Composio CLI installer now sets up shell integration automatically by default.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Automatic shell setup is now the default behavior of the installer, removing the need for manual shell configuration after install.
- @composio/[email protected]
Composio CLI installer now performs automatic shell setup by default.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Automatic shell environment setup is now the default behavior of the installer, removing the need for manual post-install shell configuration.
- @composio/[email protected]
Composio CLI gains
--shellflag for explicit PATH setup duringcomposio install.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds
--shellflag tocomposio installfor explicit shell-targeted PATH configuration, reworking how the CLI sets up PATH after installation.
- ›Adds
- @composio/[email protected]
Composio experimental adds EveProvider with native defineTool support, step resolvers, and middleware hooks for Tool Router calls.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds
EveProvider, which makes session.tools() return eve-nativedefineTools for direct integration with the Eve runtime. - ›Adds
defineComposioToolsas a replay-safestep.startedresolver for use with EveProvider. - ›Supports (ctx, next) middleware hooks on Tool Router meta-tool calls, enabling callers to rewrite, deny, or transform requests before they execute.
- ›Preserves successful local-tool results when the remote half of a mixed
COMPOSIO_MULTI_EXECUTE_TOOLbatch fails at the transport layer, so callers can inspect which side effects completed before retrying.
- ›Adds
- @composio/[email protected]
Composio @composio/[email protected] adds an Eve provider, SSRF/secret guardrails, and server-side trigger connection resolution.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITBlock SSRF attacks when uploading a user-supplied URL during tool execution —ComposioBlockedInternalUrlErroris thrown for any private or metadata endpoint.import { ComposioBlockedInternalUrlError } from '@composio/core'; try { await composio.files.upload('http://169.254.169.254/latest/meta-data/'); } catch (err) { if (err instanceof ComposioBlockedInternalUrlError) { console.error('Blocked SSRF attempt:', err.message); } }Share the sensitive-file-upload denylist guard across packages to prevent uploads of credential or config files.import { assertSafeFileUploadPath, isBlockedSensitiveFileUploadPath, BUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTS } from '@composio/core'; // Throws if path matches a blocked segment (e.g. ~/.ssh/id_rsa) assertSafeFileUploadPath('/home/user/.ssh/id_rsa'); // Or check without throwing if (isBlockedSensitiveFileUploadPath('/etc/passwd')) { console.warn('Blocked sensitive file upload'); }- ›Adds
EveProviderwith session.tools() returning eve-nativedefineTools,defineComposioToolsas a replay-safestep.startedresolver, and (ctx, next) hooks to rewrite, deny, or transform Tool Router meta-tool calls. - ›Exports
assertSafeFileUploadPath,isBlockedSensitiveFileUploadPath, andBUILTIN_FILE_UPLOAD_PATH_DENY_SEGMENTSfrom the package root so downstream packages share one sensitive-file-upload denylist implementation. - ›Adds SSRF guard to composio.files.upload(url) and automatic file uploads: resolves hosts, blocks private/loopback/link-local (including
169.254.169.254)/CGNAT/reserved addresses, rejects non-http(s)schemes, and re-validates each redirect hop; blocked requests throwComposioBlockedInternalUrlError. - ›Adds telemetry redaction that strips URL query strings, Authorization bearer/basic credentials, and secret-like
key=valuepairs (API keys, tokens, client secrets, passwords) fromerror.messageanderror.stackbefore transport. - ›Adds a
realpathSyncmethod to the internal#platformabstraction, making the file-upload denylist guard edge/workerd-safe with no staticnode:*imports.
+3 moreshow less
- ›Preserves successful local-tool results when the remote half of a mixed
COMPOSIO_MULTI_EXECUTE_TOOLbatch fails at the transport layer, so callers can identify which side effects completed before retrying. - ›
OpenAIProvider.handleToolCallsnow executes every parallel tool call in an assistant message (sequentially, in model-returned order), answering eachtool_call_idexactly once. - ›Treats local file paths beginning with
httpas paths rather than URLs so upload allowlist and sensitive-file denylist checks still run.
└──▷ BREAKING ON UPGRADE- !
triggers.createno longer throwsComposioConnectedAccountNotFoundErrorfor a missing or invalid connection whenconnectedAccountIdis omitted; that error now surfaces as the backend error from the upsert call. Self-hosted deployments must be on a backend version that includes platform#10932 (resolves trigger connection fromuser_idon upsert) ortriggers.createwill fail.
- ›Adds
- @composio/[email protected]
@composio/vercel 0.11.0 adds AI SDK 7 support, with peer dependency range now covering both v6 and v7.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds AI SDK 7 support to
@composio/vercel; theaipeer dependency range is now^6.0.0 || ^7.0.0, covering both v6 and v7 with e2e compatibility tests.
└──▷ BREAKING ON UPGRADE- !AI SDK 5 is no longer supported by
@composio/vercel; theaipeer dependency range drops v5 and now requires^6.0.0 || ^7.0.0.
- ›Adds AI SDK 7 support to
- @composio/[email protected]
Composio @composio/[email protected] adds first-class session and trigger APIs, MCP opt-in, and workbench config surfacing.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITCreate a session with the hosted MCP endpoint available, now that MCP is opt-in.const session = await composio.sessions.create({ mcp: true }); console.log(session.mcp);Disable the remote workbench for a session so code runs in a sandbox you control.const session = await composio.sessions.create({ workbench: { enable: false } }); console.log(session.workbench?.enable); // falseParse and verify an incoming webhook payload from a Composio trigger.const trigger = await composio.triggers.parse(req.body, { verify: true });- ›Adds composio.sessions.create() as the new first-class session creation API, with composio.create() retained as an alias.
- ›Adds connectedAccounts.updateAcl() as a stable alias for the experimental shared-connection ACL patch helper, previously only reachable via experimental.updateAcl().
- ›Makes MCP opt-in: sessions now return
SessionWithoutMcpby default; pass{ mcp: true }to sessions.create() to surface the hosted MCP endpoint on the type. - ›Exposes
Session.workbenchpopulated from the API response oncreate,retrieve,attach, andupdate, includingsession.workbench?.enable, enabling callers to pass{ workbench: { enable: false } }and detect sandbox state. - ›Adds triggers.parse() to parse and optionally verify incoming webhook requests.
+2 moreshow less
- ›Adds triggers.setWebhookSubscription() to create or update a project webhook subscription from the TypeScript SDK.
- ›Accepts
sandboxas the preferred key for session code-execution configuration, withworkbenchcontinuing to work as an alias.
└──▷ BREAKING ON UPGRADE- !The default sessions.create() / use() now returns
SessionWithoutMcp—session.mcpis no longer present on the type unless the session is created with{ mcp: true }. Code that readssession.mcpwithout passing{ mcp: true }will encounter a type error.
- @composio/[email protected]
Composio @composio/[email protected] adds per-request AbortSignal cancellation across all SDK methods and cooperative cancellation for custom tools.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITCancel a slow tool search after 5 seconds so a stalled agent does not block indefinitely.try { const tools = await composio.tools.get( 'user_1', { search: 'send email', limit: 50 }, { signal: AbortSignal.timeout(5_000) } ); } catch (err) { if (err instanceof ComposioRequestCancelledError) { return; } throw err; }Write a long-running custom tool that cancels its in-flight HTTP request when the caller aborts the session.import { experimental_createTool } from '@composio/core'; const longRunningFetch = experimental_createTool('LONG_RUNNING_FETCH', { name: 'Long-running fetch', description: 'Fetches a URL with cooperative cancellation', inputParams: z.object({ url: z.string() }), execute: async (input, ctx) => { const resp = await fetch(input.url, { signal: ctx.signal }); return { result: await resp.json() }; }, });- ›Adds a
ComposioRequestOptionstrailing argument ({ signal?: AbortSignal }) to all public SDK methods —tools.get,tools.execute,toolkits.get,authConfigs.list/create/get/update/delete,connectedAccounts.*,triggers.*,mcp.*,toolRouter.*, andtoolRouterSession.*— so callers can cancel long-running requests without blocking an agent indefinitely. - ›Adds
ComposioRequestCancelledErroras a typed,instanceof-detectableerror class; anyAPIUserAbortError,AbortError, or DOMException(name='AbortError') from the underlying fetch is normalized to it, and catch paths intools.execute,tools.getRawComposioToolBySlug, andtoolkits.getre-throw it rather than remapping toComposioToolExecutionError/ComposioToolNotFoundError/ComposioToolkitFetchError. - ›Exposes
SessionContext.signal(the caller'sAbortSignal) inside Tool Router custom tools viaexperimental_createTool, enabling cooperative mid-execution cancellation by wiringctx.signalinto any abortable I/O. - ›Adds a pre-execute signal check for custom tools: if
signal.abortedis true before userexecuteruns, the SDK throwsComposioRequestCancelledErrorand never invokes user code. - ›Adds
searchandshowDisabledfilter parameters to authConfigs.list().
+3 moreshow less
- ›Adds provider-agnostic JSON-schema property-key sanitizer utilities: sanitizeSchemaPropertyKeys(schema, policy), restoreOriginalKeys(value, mapping), mappingHasRenames(mapping), and the
KeyMapping/KeySanitizationPolicytypes, consumed by the@composio/anthropicprovider to handle per-provider key character/length constraints. - ›Exposes
jsonSchemaToZodShapevia the@composio/core/utils/json-schemasubpath export, and adds correct conversion of bothzod/v3and Zod v4 schemas to JSON Schema for custom tools. - ›Preserves root
$defs/definitionsblocks on tool parameter schemas and dereferences them in the Node file modifier, enabling auto file upload/download detection whenfile_uploadableorfile_downloadableis hidden behind an internal$ref.
└──▷ BREAKING ON UPGRADE- !The packages are now ESM-only; CommonJS entrypoints and
.cjsartifacts are removed. Node.js 22.22.3 or newer is required; CommonJS callers can only rely on Node's native require(esm) interop. - !The
uuidfield is removed fromAuthConfigRetrieveResponseandAuthConfigListResponse; consumers must useidinstead.
- ›Adds a
- @composio/[email protected]
Composio core 0.11.0 forwards userId in trigger flows and exposes new schema-resolution and argument-normalization APIs.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITGracefully handle toolkits with dangling $ref pointers (e.g.GMAIL_FETCH_EMAILS) in custom schema processing without crashing.import { dereferenceJsonSchema } from '@composio/core'; const schema = await fetchRawToolSchema('GMAIL_FETCH_EMAILS'); const resolved = dereferenceJsonSchema(schema, { onUnresolved: 'sentinel', onReplace: (ref, reason) => console.warn(`Unresolved $ref: ${ref} — ${reason}`) });Safely normalize model-supplied tool-call arguments that may arrive as a JSON string rather than an object, and surface a typed error when they cannot be resolved.import { normalizeToolArguments, ComposioInvalidToolArgumentsError } from '@composio/core'; try { const args = normalizeToolArguments(modelToolCallInput); await composio.tools.execute('MY_TOOL', args); } catch (e) { if (e instanceof ComposioInvalidToolArgumentsError) { console.error('Bad tool arguments from model:', e.message); } }- ›Forwards
userIdwhen creating trigger instances so trigger 2FA flows can verify connected account ownership. - ›Adds
dereferenceJsonSchemaoptional second argument{ onUnresolved?: 'throw' | 'sentinel'; onReplace?: (ref, reason) => void }to control handling of unresolvable$refpointers, with new type exportsUnresolvedRefStrategy,UnresolvedRefReason, andDereferenceJsonSchemaOptions. - ›Adds
normalizeToolArgumentshelper (exported from@composio/core) that routes model-supplied tool-call arguments through a single normalization path — object payloads pass through, JSON strings are parsed, empty/nullpayloads become{}, and unresolvable values throw a typedComposioInvalidToolArgumentsError. - ›Re-exports the
telemetryinstance from@composio/coreas a public export alongsidelogger, allowing providers to emit aggregate signals without reaching into package internals. - ›
MastraProvider.wrapToolnow optsinputParametersandoutputParametersinto'sentinel'mode for dangling$refresolution, emitting onelogger.warnper (toolSlug, ref) pair and a one-shot telemetry eventcomposio.mastra.wrapTool.danglingRef(respectsCOMPOSIO_DISABLE_TELEMETRY=true).
+1 moreshow less
- ›Telemetry batch and error sends are now deferred so the SDK returns results and rethrows errors without waiting on telemetry network requests.
└──▷ BREAKING ON UPGRADE- !The legacy composio.tools.createCustomTool(...) in-memory registry API is removed. Use Tool Router custom tools via
experimental_createTool,experimental_createToolkit, and composio.create(..., { experimental: { customTools, customToolkits } }) instead.
- ›Forwards
- @composio/[email protected]
Composio @composio/[email protected] surfaces
accountTypefilter on connectedAccounts.list() and namespaces Shared Connection mutation APIs underexperimental.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITList all SHARED connected accounts for a specific creator user without dropping to the raw client.const shared = await composio.connectedAccounts.list({ accountType: 'SHARED', userIds: ['user_creator'], });Create a SHARED connection and update its ACL using the newexperimentalnamespace after migrating from the flat API.await composio.connectedAccounts.link('user_id', 'auth_config_id', { experimental: { accountType: 'SHARED', aclConfigForShared: { allowAllUsers: true }, }, }); await experimental_updateAcl(composio, 'ca_abc', { allowAllUsers: true });- ›Adds
accountType: 'SHARED'filter to connectedAccounts.list() so SHARED connections can be listed directly without dropping to the raw client. - ›Moves
accountTypeandaclConfigForSharedoptions on connectedAccounts.link() and session.authorize() under a singleexperimentalblock, signalling that the shape may change in future releases. - ›Promotes connectedAccounts.updateAcl() off the class to a top-level named export experimental_updateAcl(composio, id, opts), consistent with the existing
experimental_createTool/experimental_createToolkitpattern.
└──▷ BREAKING ON UPGRADE- !The flat
accountTypeandaclConfigForSharedoptions on connectedAccounts.link() and session.authorize() must now be nested inside anexperimental: { ... }block — callers passing these at the top level will no longer compile or behave correctly. - !connectedAccounts.updateAcl() has been removed from the class; callers must switch to the top-level experimental_updateAcl(composio, id, opts) export.
- ›Adds
- @composio/[email protected]
Composio adds SHARED connected accounts with per-user ACL controls and a new updateAcl() method
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITCreate a SHARED connected account restricted to a specific set of users, so a single OAuth connection can serve a team without re-authenticating per user.composio.connectedAccounts.link(userId, authConfigId, { accountType: 'SHARED', aclConfigForShared: { allowAllUsers: false, allowedUserIds: ['user_alice', 'user_bob'], notAllowedUserIds: [] } });Update the ACL on an existing SHARED connection to block a specific user without touching other allow/deny lists.composio.connectedAccounts.updateAcl('conn_nanoid_here', { notAllowedUserIds: ['user_eve'] });- ›Adds
accountType: 'SHARED'option to composio.connectedAccounts.link() — creates a shared connection usable by multipleuserIds when explicitly pinned in a tool-router session; default remains'PRIVATE'. - ›Adds
aclConfigForSharedblock ({ allowAllUsers, allowedUserIds, notAllowedUserIds }) on both create and retrieve for SHARED connections, with deny-win resolution:notAllowedUserIdschecked first, thenallowAllUsers, thenallowedUserIds, otherwise deny-by-default. - ›New composio.connectedAccounts.updateAcl(nanoid, { allowAllUsers, allowedUserIds, notAllowedUserIds }) method writes ACL via PATCH semantics — omit a field to leave it unchanged, pass an empty array to clear a list; at least one field required; each list accepts up to 1 000 entries, each
userIdup to 256 characters. - ›Adds
accountTypeandaclConfigForSharedoptions to ToolRouterSession.authorize() so a SHARED connection with an ACL can be created in a single call from inside a tool-router session. - ›The
accountTypefield ('PRIVATE' | 'SHARED') is now returned in get() and list() responses for connected accounts.
+1 moreshow less
- ›New error classes:
ComposioSharedAccessDeniedError(403) when a user fails the ACL on a shared connection,ComposioAclOnlyForSharedError(400) when ACL fields are sent on a PRIVATE connection, andComposioSharedConnectionNotAccessibleError(400) when a tool-router session is created or PATCHed with a pinned SHARED connection the session user cannot access.
- ›Adds
-
Composio [email protected] adds Tool Router v3.1 with preload and session.update(), plus REVOKED connected account status and sandbox compute tiers.
└──▷ GET THIS VERSION$ git clone --branch [email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout [email protected]
- ›Adds Tool Router v3.1 support including preload, SDK-local custom tool preload, attach/use flow refinements, and session.update().
- ›Adds
REVOKEDstatus for connected accounts, along with connected account string/list coercion and theallow_multipleguard. - ›Adds workbench sandbox compute tier support.
- @composio/[email protected]
Composio CLI local-tools debuts with iMessage, Chrome DevTools, and Peekaboo macOS integrations plus four new subcommands.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ TRY ITCheck whether all local tools are installed and ready before running an automated workflow.$ composio local-tools doctorList all available local tools to see which integrations (iMessage, Chrome DevTools, Peekaboo, etc.) are discoverable on this machine.$ composio local-tools list- ›Adds
composio local-tools list,composio local-tools doctor,composio local-tools configure, andcomposio local-tools metasubcommands for discovery, readiness checks, setup hints, and local metadata state. - ›Adds Beeper iMessage local toolkit with compact thread discovery, contact-aware thread search, send verification, and reaction preparation, backed by rebuildable sidecar binaries from the ComposioHQ
platform-imessagesubmodule. - ›Adds Chrome DevTools local tools backed by the official
chrome-devtools-mcppackage and its statefulchrome-devtoolsCLI daemon. - ›Adds Peekaboo macOS local tools backed by a bundled darwin-arm64 Peekaboo CLI binary.
- ›Wires the local-tools foundation package into Tool Router search and execute sessions.
- ›Adds
- @composio/[email protected]
Composio @composio/[email protected] adds session.update(), expanded ToolRouter session controls, custom tools in composio.use(), and typed OAuth migration errors.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITUpdate an active session's config mid-conversation without tearing it down and recreating it.const session = await composio.use(existingSessionId); await session.update({ connectedAccounts: { gmail: 'ca_new_xxx' } });Resume an existing multi-turn session and attach custom tools for search and execution.const session = await composio.use(existingSessionId, { customTools: myCustomTools, customToolkits: myCustomToolkits }); const tools = await session.tools();Use the direct-tools preset for an agent that knows its full tool set upfront, skipping search overhead.import { SessionPreset } from '@composio/core'; const session = await composio.create({ preset: SessionPreset.DIRECT_TOOLS, preload: { tools: 'all' } }); const tools = await session.tools();- ›Adds session.update() method to partially update session configuration after creation; accepts the same config shape as create() and mutates the session in-place, available in TypeScript and Python SDKs.
- ›Adds composio.use(id, { customTools, customToolkits }) to reuse an existing session and bind SDK-local custom tools for search and execution, with
inlineCustomToolsPayloadandpreloadedCustomToolSlugspassed through on rehydrated sessions. - ›Exposes
SessionPreset.DIRECT_TOOLSconstant (Python:SESSION_PRESET_DIRECT_TOOLS) for the Tool Router direct-tools preset, enabling agents that know their tool set upfront to bypass search. - ›Adds
ComposioLegacyConnectedAccountsEndpointRetiredError, exported from@composio/core, thrown by initiate() whenPOST /api/v3/connected_accountsreturns a 400 on the retiring Composio-managed OAuth path; carries apossibleFixesblock pointing at link() ahead of the 2026-07-03 cutover. - ›Expands composio.create() to create a fresh session on each call for better isolation, while composio.use() resumes an existing session for multi-turn conversations; sessions can preload tools and expose custom tools via session.tools().
+2 moreshow less
- ›
connectedAccountsnow accepts bothstringandstring[]per toolkit, with a single string automatically coerced to an array to match the v3.1 API wire format. - ›Adds
dereferenceJsonSchemahelper exported from@composio/corethat resolves internal JSON Schema$refpointers (#/$defs/...and#/definitions/...) before handing tool parameters to downstream schema libraries.
- @composio/[email protected]
Composio CLI 0.2.28 adds agent signup and claim support.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds agent signup and claim support to the Composio CLI.
- @composio/[email protected]
Composio core 0.8.1 adds
allowMultipleguard to connectedAccounts.link() and aworkbench.sandboxSizecompute-tier selector for Tool Router sessions.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITInitiate a linked connection while allowing multiple active connections for the same auth config — useful when a user legitimately needs more than one account connected.await composio.connectedAccounts.link(userId, authConfigId, { allowMultiple: true });Provision a Tool Router session with anxlargesandbox when your workbench tasks need more compute headroom.await composio.toolRouter.createSession({ workbench: { sandboxSize: 'xlarge' } });- ›Adds
allowMultipleoption to connectedAccounts.link(userId, authConfigId, { allowMultiple }): whenfalse(default) and the user already has anACTIVEconnection on the auth config, throwsComposioMultipleConnectedAccountsError— matching the existing initiate() guard. PassallowMultiple: trueto intentionally create multiple connections per auth config. - ›Adds
workbench.sandboxSizefield (type'standard' | 'medium' | 'large' | 'xlarge') toToolRouterCreateSessionConfig, letting callers select the workbench sandbox compute tier. Tiers:standard(1 vCPU / 1 GB),medium(2 vCPU / 2 GB),large(4 vCPU / 4 GB),xlarge(8 vCPU / 8 GB). Forwarded to the API as snake_caseworkbench.sandbox_size; defaults to'standard'when omitted. - ›Exports
SandboxSizeliteral union andSandboxSizeSchemazod enum from@composio/coreso callers can reference tier values without stringly-typing them. - ›Python SDK gains parity:
allow_multiple: bool = Falseoption and the sameACTIVE-connectionguard added to composio.connected_accounts.link().
└──▷ BREAKING ON UPGRADE- !connectedAccounts.link() now performs a pre-flight connectedAccounts.list({ userIds, authConfigIds, statuses: ['ACTIVE'] }) before calling
client.link.create. Callers that intentionally create multiple connections per auth config must now passallowMultiple: trueor the call will throwComposioMultipleConnectedAccountsError.
- ›Adds
-
Composio [email protected] makes file upload/download opt-in, adding new constructor flags and a per-upload source hint for hooks.
└──▷ GET THIS VERSION$ git clone --branch [email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout [email protected]
└──▷ USE ITRestore the old auto file-staging behaviour after upgrading, while restricting uploads to a specific allowed directory.composio = Composio( api_key=..., dangerously_allow_auto_upload_download_files=True, file_upload_dirs=["/path/to/allowed/dir"], file_download_dir="/path/to/downloads", )- ›Adds
dangerously_allow_auto_upload_download_files: bool = Falseto Composio(...) to opt back in to automatic file staging — when True, collapsesfile_uploadableschemas to{"type": "string", "format": "path"}for the model and stages local paths/URLs at execute time. - ›Adds
file_upload_dirs: Sequence[str] | Literal[False] | None = Noneto Composio(...) as a fail-closed allowlist for local upload paths — None defaults to[<home>/.composio/temp], False rejects all local paths, and an explicit list replaces the default. - ›Adds
file_download_dir: str | Noneto Composio(...) to set the directory used to stage downloads onfile_downloadableresults. - ›The
before_file_uploadmodifier hook now receivessource: Literal['path', 'url', 'file']so hooks can branch on the original input type. - ›When auto-upload is off and a tool with
file_uploadableinputs is executed, the SDK emits a one-shot warning per tool slug pointing at composio.files.upload() for manual staging.
└──▷ BREAKING ON UPGRADE- !Automatic file upload/download is now off by default — existing code that relied on auto-staging local paths/URLs or auto-downloading
file_downloadableresults will stop working unlessdangerously_allow_auto_upload_download_files=Trueis set on Composio(...). - !The
auto_upload_download_filesconstructor option is removed; code that sets it must migrate todangerously_allow_auto_upload_download_files.
- ›Adds
- @composio/[email protected]
Composio CLI gains a connection removal command in v0.2.26.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds a connection removal command to the Composio CLI, enabling practitioners to delete existing connections directly from the command line.
- @composio/[email protected]
Composio core 0.6.11 adds file-upload path hardening with denylist controls and a pre-upload hook.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITAdd a custom denylist segment and a pre-upload hook to audit or rewrite file paths before upload.const tools = await composio.tools.get({ sensitiveFileUploadProtection: true, fileUploadPathDenySegments: [".secrets", "vault"], beforeFileUpload: (filePath) => { if (filePath.includes("/tmp/staging")) return filePath.replace("/tmp/staging", "/tmp/safe"); return filePath; } });Opt out of credential-path blocking for a controlled internal environment where uploading SSH key paths is intentional.const tools = await composio.tools.get({ sensitiveFileUploadProtection: false });- ›Adds automatic blocking of local file uploads from credential-sensitive paths (e.g.
.ssh,.aws) and credential-like filenames (e.g..env, default SSH private-key names) by default; URLs and File objects are unaffected. - ›Adds
sensitiveFileUploadProtection: falseoption to opt out of the default credential-path blocking when required. - ›Adds
fileUploadPathDenySegmentsoption to extend the built-in denylist with custom path segments. - ›Adds an optional
beforeFileUploadhook (e.g. oncomposio.tools.get) to rewrite paths, returnfalseto abort, or throw to cancel an upload programmatically. - ›Introduces two new error types:
ComposioSensitiveFilePathBlockedError(path matched the denylist) andComposioFileUploadAbortedError(hook returnedfalseor threw).
└──▷ BREAKING ON UPGRADE- !File uploads from paths matching common credential locations (e.g.
.ssh,.aws) or credential-like filenames (e.g..env, default SSH private-key names) are now blocked by default; any working setup that uploads such files will break unlesssensitiveFileUploadProtection: falseis set.
- ›Adds automatic blocking of local file uploads from credential-sensitive paths (e.g.
-
Composio 0.11.6 adds sensitive file-path blocking and
@before_file_uploadmodifier hooks before auto-upload.└──▷ GET THIS VERSION$ git clone --branch [email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout [email protected]
└──▷ USE ITBlock uploads from sensitive paths and add a custom pre-upload hook to log or abort uploads conditionally.from composio import Composio from composio.modifiers import before_file_upload @before_file_upload def audit_upload(path: str) -> str | bool: if 'confidential' in path: return False # aborts upload, raises FileUploadAbortedError print(f'Uploading: {path}') return path client = Composio( sensitive_file_upload_protection=True, file_upload_path_deny_segments=['.ssh', '.aws', '.env'], ) tools = client.tools.get(actions=[...], modifiers=[audit_upload])- ›Adds sensitive file-path blocking via a built-in denylist (segments such as
.ssh,.aws, and risky filenames) checked before any local file is auto-uploaded; configurable withsensitive_file_upload_protectionandfile_upload_path_deny_segmentson the Composio(...) constructor. - ›Adds
@before_file_uploadmodifier hooks — decorate a function and pass it viamodifiers=[...]ontools.get,tools.execute, or the tool router session.tools(...) — running beforebefore_executemodifiers when substitutingfile_uploadablepaths. - ›Adds
merge_before_file_uploadto compose multiple@before_file_uploadhooks in a single call. - ›Raises
SensitiveFilePathBlockedErrororFileUploadAbortedErrorwhen a path matches the denylist or a hook returns False, giving callers explicit error handling surfaces.
└──▷ BREAKING ON UPGRADE- !The
before_file_upload=keyword argument has been removed from Composio,get,execute, and the tool router; file upload hooks must now be passed exclusively viamodifiers=[...]. - !
FileHelperno longer stores a default hook on the client; only the merged modifier hook (or None) is available per call.
- ›Adds sensitive file-path blocking via a built-in denylist (segments such as
- @composio/[email protected]
Composio CLI 0.2.18 preloads custom auth connections into tool router sessions and adds a beta-channel release promotion flow.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Preloads custom auth connections into CLI tool router sessions, enabling authenticated tools to be available immediately when a session starts.
- ›Adds a beta-channel CLI release promotion flow, allowing users to receive and test pre-release CLI builds.
- @composio/[email protected]
Composio CLI 0.2.10 adds parallel execute, batched tool search,
--get-schemawithout auth, and acomposio filessubcommand.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ TRY ITInspect a tool's schema in a CI pipeline where no user session exists.$ composio execute --get-schema <tool-name>
Log in without triggering the skill installer in a minimal or locked-down environment.$ composio login --no-skill-install
Redirect session and cache artifacts to a writable path in a sandboxed or read-only-root environment.$ COMPOSIO_SESSION_DIR=/tmp/composio/session COMPOSIO_CACHE_DIR=/tmp/composio/cache composio execute <tool-name>- ›Adds
--get-schemaflag toexecutethat now works without user context, enabling schema inspection in unauthenticated or CI environments. - ›Adds
--no-skill-installopt-out flag tocomposio loginto skip the new automatic skill installer that runs during login. - ›Adds
composio filessubcommand with built-in help and richer examples surfaced in root help output. - ›Adds parallel execute support to the CLI, allowing multiple tool executions to run concurrently.
- ›Adds batched multi-query tool search, enabling multiple search queries to be resolved in a single call.
+4 moreshow less
- ›Reports execute failure origin and tool log IDs on failed executions, giving practitioners a direct handle for post-mortem investigation.
- ›Caches no-auth toolkits as connected, removing redundant authentication checks for toolkits that require no credentials.
- ›Adds contextual help output on CLI errors and unknown arguments to surface relevant guidance at the point of failure.
- ›Respects
COMPOSIO_SESSION_DIRandCOMPOSIO_CACHE_DIRenvironment variables for session artifacts and analytics directory placement in sandboxed environments.
- ›Adds
- @composio/[email protected]
Composio CLI 0.2.9 adds parallel tool execution, ACP-backed subagent runs, and a new
devnamespace for manage commands.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds ACP-backed subagent execution to
composio run, enabling agent-driven tool invocation via the CLI. - ›Moves CLI manage commands under the
devnamespace (e.g.,composio dev ...). - ›Adds parallel tool execution support in the CLI.
└──▷ BREAKING ON UPGRADE- !CLI manage commands have been moved under the
devnamespace; any scripts or workflows invoking those commands directly will need to be updated to usecomposio dev <command>.
- ›Adds ACP-backed subagent execution to
- @composio/[email protected]
Adds
workbench.enablesession config option to exclude code execution tools from a session entirely.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITDisable the workbench in a session to prevent any code execution tools from being available — useful for read-only or restricted agent environments.{ "workbench": { "enable": false } }- ›Adds
workbench.enableto session config (defaulttrue); setting it tofalseexcludesCOMPOSIO_REMOTE_WORKBENCHandCOMPOSIO_REMOTE_BASH_TOOLfrom the session, disabling the workbench entirely.
- ›Adds
- @composio/[email protected]
Composio CLI 0.2.8 scopes commands by role, adds proxy execute, and introduces a workbench disable option.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds
composio manage ...as the developer-scoped namespace, moving developer-only operations under it and removing those flags from the root help. - ›Moves
composio search,composio link, andcomposio executeto consumer-only top-level commands, with short related-command hints added to root help. - ›Adds proxy execute capability via
composio execute, defaulting to an empty object{}when no-d/--dataflag or piped stdin is provided. - ›Adds
workbench.enableconfig option to disable the workbench in sessions. - ›Search CTA now uses
-d '{}'(shell-safe) for tools with no schema properties.
└──▷ BREAKING ON UPGRADE- !Developer-only flags previously available at the root CLI level are removed from root help; developer workflows must now use
composio manage ....
- ›Adds
- @composio/[email protected]
Composio CLI 0.2.7 reorganizes commands: top-level
search,link, andexecuteare now consumer-only; developer flows move undercomposio manage.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Moves developer-scoped usage of
composio search,composio link, andcomposio executeundercomposio manage ..., keeping the top-level commands consumer-only. - ›Removes developer-only flags from root help output and adds short related-command hints pointing to the
composio managesurface. - ›
composio executenow defaults to an empty object{}when neither-d/--datanor piped stdin is provided, so invocations without data no longer require an explicit argument. - ›Search call-to-action now uses
-d "{}"for tools with no schema properties, producing shell-safe output.
└──▷ BREAKING ON UPGRADE- !Developer-scoped
composio search,composio link, andcomposio executeare removed from the root level; existing scripts or workflows using those commands in a developer context must be updated to usecomposio manage ...equivalents.
- ›Moves developer-scoped usage of
- @composio/[email protected]
Composio CLI 0.2.6 reorganizes commands into consumer vs. developer scopes and adds smarter
executedefaults.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Moves
composio search,composio link, andcomposio executeto consumer-only top-level commands, with developer-scoped operations now undercomposio manage .... - ›Defaults
composio executeto an empty object{}when no-d/--dataflag or piped stdin is provided, eliminating the need to pass an explicit empty payload. - ›Uses
-d "{}"in the search call-to-action for tools with no schema properties, ensuring shell-safe invocation. - ›Removes developer-only flags from root help output and adds short related-command hints pointing to
composio manage ....
└──▷ BREAKING ON UPGRADE- !Developer-scoped commands previously available at
composio search,composio link, andcomposio executeare now consumer-only at the root level; developer usage must move tocomposio manage ....
- ›Moves
- @composio/[email protected]
Composio CLI 0.2.5 adds a
managenamespace for advanced commands and moves code-gen under a unifiedgeneratecommand.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds
managenamespace to the CLI for grouping advanced commands. - ›Moves Python and TypeScript SDK code-generation subcommands under a unified
generatecommand.
└──▷ BREAKING ON UPGRADE- !The Python and TypeScript SDK generation subcommands (
pyandts) have been moved under thegeneratecommand; any scripts or workflows invoking the old command paths will break.
- ›Adds
- @composio/[email protected]
Composio CLI gains
--no-waitand--keyflags on the login command to support headless agent and auth flows.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ TRY ITKick off a headless login in a CI/agent pipeline — print the auth URL and session info without blocking, then complete it later with a known session key.$ composio login --no-wait --key <session-key>
Obtain a login URL non-interactively so an orchestration script can present it elsewhere, then exit without waiting.$ composio login --no-wait
- ›Adds
--no-waitflag to thelogincommand to print the URL and session info then exit immediately, enabling non-interactive agent flows. - ›Adds
--keyflag to thelogincommand to complete login with a session key, polling until the session is linked unless--no-waitis also passed.
- ›Adds
- @composio/[email protected]
Composio CLI v0.2.2 adds interactive org/project picker,
--no-waitforcomposio link, and redacts API keys fromwhoami└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ TRY ITEmit the link URL and exit immediately in CI pipelines instead of waiting for the link to complete.$ composio link --no-wait
Run a fully non-interactive login in automation by skipping the org/project picker and completing auth via browser flow.$ composio login -y
- ›Adds
--no-waitflag tocomposio link— prints URL/JSON output and exits immediately without blocking on completion. - ›Adds
-yflag tocomposio loginto skip the new interactive org/project picker and proceed non-interactively via browser flow. - ›Adds
composio installcommand for shell integration. - ›Adds interactive org/project picker after
composio loginto guide users through org and project selection. - ›Adds background upgrade-available hint to the CLI to surface when a newer version is available.
+1 moreshow less
- ›
composio whoamino longer exposes API keys in its output.
└──▷ BREAKING ON UPGRADE- !The
--api-key,--org-id, and--project-idflags have been removed fromcomposio loginandcomposio init; non-interactive login via these flags is no longer supported — use the browser flow with-yinstead.
- ›Adds
- @composio/[email protected]
Composio CLI 0.2.0 adds top-level command aliases and restructures root help into BASIC/ADVANCED sections.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds top-level command aliases to the CLI, letting practitioners invoke common commands with shorter names.
- ›Restructures the CLI root help output into BASIC and ADVANCED sections with full usage and options shown for basic commands.
- @composio/[email protected]
Composio CLI 0.1.35 adds checksums, cross-compilation, and a simplified install process.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds checksums, cross-compilation support, and a simplified install flow to the CLI distribution.
- @composio/[email protected]
Composio CLI gains org/project switch and list commands for managing multi-tenant contexts from the terminal.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds global org switching and listing commands to the CLI, enabling practitioners to change the active organization context without leaving the terminal.
- ›Adds global project switching and listing commands to the CLI, enabling quick context changes across projects in a multi-project environment.
- ›Adds a
toolkit versionsubcommand to the CLI for inspecting toolkit versions.
- @composio/[email protected]
Composio CLI 0.1.28 enhances init and tool-router based tool discovery with improved tool search and API key inference.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Enhances
initand tool-router based tool discovery in the CLI for improved tool search and API key inference.
- ›Enhances
- v0.11.1
Composio v0.11.1 adds public URL support, type-safe get_tools(), typed webhook schemas, and a CLI env-var toolkit version override.
└──▷ GET THIS VERSION$ git clone --branch v0.11.1 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.11.1
- ›Adds env-var toolkit version override in the TypeScript CLI, letting operators pin or swap toolkit versions without code changes.
- ›Adds typed schema for connection-expired webhook events in the core, so handlers can pattern-match on
composio.*event types with full type safety. - ›Adds type-safe generic get_tools() in the Python SDK that infers return types based on the given provider.
- ›Enables public URLs in the Python SDK (
feat(py): enable public URLs). - ›Loosens the V3 webhook schema to accept any
composio.*event type, broadening the range of subscribable webhook events.
- v0.11.0
Composio v0.11.0 adds Mastra v1 support, async webhook verification, redirect_url in connected accounts, and platform-specific file tool modifiers.
└──▷ GET THIS VERSION$ git clone --branch v0.11.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.11.0
└──▷ USE ITAwait the now-async webhook verification method after upgrading to avoid silent failures in trigger handlers.const isValid = await composio.triggers.verifyWebhook(request);
Pass a redirect_url when initiating a connected account so users are sent back to your app after OAuth completes.const connection = await composio.connectedAccounts.initiate({ appName: 'github', redirectUrl: 'https://yourapp.com/callback' });- ›Adds
redirect_urlsupport inconnectedAccountsfor the TypeScript core SDK, enabling post-auth redirects in OAuth flows. - ›Introduces
composio.triggers.verifyWebhookas an async method in the TypeScript SDK, removing thenode:cryptodependency from triggers for broader runtime compatibility. - ›Adds a platform-specific file tool modifier in the TypeScript core SDK, allowing file tools to be adapted per deployment target.
- ›Adds support for Mastra v1 in the TypeScript SDK, including e2e tests with Tool Router.
- ›Optimizes
@composio/clientbandwidth usage in the CLI and introduces debug metrics.
+3 moreshow less
- ›Defaults tool selection to 'important tools' in the TypeScript core SDK when no explicit tool list is provided.
- ›Adds secrets detection workflow for pull requests to the CI pipeline.
- ›Adds an experimental assistive prompt to the client.
└──▷ BREAKING ON UPGRADE- !
composio.triggers.verifyWebhookis now async in the TypeScript SDK — callers mustawaitit or their webhook verification will silently break. - !Mastra v1 support is introduced as a breaking change in the TypeScript SDK — existing Mastra integrations targeting earlier versions may require updates.
- ›Adds
- v0.10.6
Composio v0.10.6 adds Cloudflare Workers support,
auto_upload_download_filesflag, and Vercel AI v6 provider upgrade.└──▷ GET THIS VERSION$ git clone --branch v0.10.6 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.10.6
- ›Adds
auto_upload_download_filesboolean flag to the Composio() Python constructor to control automatic file upload/download behavior. - ›Adds Cloudflare Workers runtime support in the TypeScript SDK.
- ›Upgrades the Vercel provider in the TypeScript SDK to support AI v6.
- ›Extends
composio.triggers.verifyWebhooksto support webhook versions v1, v2, and v3.
- ›Adds
- v0.10.5
Composio v0.10.5 adds wait-for-connections control, session-scoped execution modifiers, and auto file upload/download to the tool router.
└──▷ GET THIS VERSION$ git clone --branch v0.10.5 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.10.5
- ›Adds
waitForConnections(TypeScript) /wait_for_connections(Python) property tomanageConnections/manage_connectionsin toolRouter.create() / tool_router.create() to block session progression until users complete authentication. - ›Adds getRawToolRouterMetaTools(sessionId, { modifySchema }) (TypeScript) / get_raw_tool_router_meta_tools(session_id, modifiers) (Python) method on the Tools class for fetching meta tools directly from a tool router session.
- ›Introduces
SessionExecuteMetaModifiersandSessionMetaToolOptionsmodifier types, plus@before_execute_metaand@after_execute_metadecorators (Python), exposingsessionId/session_idtobeforeExecute/afterExecutehooks for session-scoped tool execution control. - ›Adds
auto_upload_download_filesboolean flag to the Composio() constructor (Python) to control automatic file upload and download behaviour. - ›Upgrades the Vercel provider (TypeScript) to support Vercel AI SDK v6.
- ›Adds
- @composio/[email protected]
Composio Vercel SDK 0.4.0 adds dedicated tools support for the tool router.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds support for dedicated tools for the tool router in
@composio/vercel.
- ›Adds support for dedicated tools for the tool router in
- v0.10.4
Composio v0.10.4 adds Anthropic Claude Code Agents provider, LangChain v1 port for TypeScript, and openWorldHint tag filters for the tool router.
└──▷ GET THIS VERSION$ git clone --branch v0.10.4 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.10.4
- ›Adds
openWorldHintas a tag filter option in the tool router, enabling agents to distinguish open-world from closed-world tool scopes. - ›Adds Anthropic Claude Code Agents as a new provider in the core SDK.
- ›Ports the LangChain integration to LangChain v1 in the TypeScript SDK.
- ›Adds support for enable/disable tags and search within toolkits.
- ›Adds
- v0.10.2
Composio v0.10.2 adds Anthropic Claude Code Agents provider, LangChain v1 support, and openWorldHint tool router filtering.
└──▷ GET THIS VERSION$ git clone --branch v0.10.2 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.10.2
- ›Adds
openWorldHintas a tag filter for the tool router, enabling finer-grained control over which tools are surfaced by the router. - ›Adds Anthropic Claude Code Agents as a new provider in the core integration layer.
- ›Ports the TypeScript LangChain integration to LangChain v1.
- ›Adds
- v0.10.1
Composio v0.10.1 adds
composio generate --toolkitsflag for scoped code generation in TypeScript and Python.└──▷ GET THIS VERSION$ git clone --branch v0.10.1 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.10.1
- ›Adds
--toolkits [toolkits]argument tocomposio generate, letting practitioners scope code generation to specific toolkits for both TypeScript and Python.
- ›Adds
- v0.10.0
Tool Router goes GA in Python and TypeScript SDKs, with webhook verification and LangChain v1 support added.
└──▷ GET THIS VERSION$ git clone --branch v0.10.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.10.0
└──▷ USE ITCreate an isolated Tool Router session with scoped toolkit access using the new stable API.session = composio.create(...)
- ›Adds composio.triggers.verifyWebhook() (TypeScript) and verify_webhook() on the Triggers class (Python) for signature-based webhook verification of incoming trigger payloads.
- ›Promotes Tool Router from experimental to stable in both the Python (
composio==0.10.0) and TypeScript (@composio/[email protected]) SDKs, enabling isolated MCP sessions with scoped toolkit access via composio.create(). - ›Adds native tool execution through
ToolRouterSessionin the Python SDK and an enhanced session.tools() method in the TypeScript SDK, allowing direct tool invocation without additional setup. - ›Ports the Python LangChain provider (
python/providers/langchain/) to LangChain v1, updating APIs, dependencies, and examples. - ›Adds CommonJS support for
@composio/coreby switching the TypeScript bundler fromtsuptotsdown, with a new CommonJS example atts/examples/cjs/.
+3 moreshow less
- ›Adds
pnpm audit --prodautomated security vulnerability scanning to CI for the TypeScript SDK. - ›Updates
zod-to-json-schemadependency to 3.25.0, adding support for zod v3 in the TypeScript SDK. - ›Integrates Tool Router sessions with AI frameworks including OpenAI, Anthropic, LangChain, LlamaIndex, CrewAI, and Vercel AI SDK.
└──▷ BREAKING ON UPGRADE- !Deprecated MCP methods and classes have been removed; code using the old experimental composio.experimental.tool_router.create(...) API must migrate to composio.create(...).
- v0.9.3
Composio v0.9.3 adds LlamaIndex provider for the TS SDK, toolkit versioning support, and query-param/x-api-key auth in MCP URLs.
└──▷ GET THIS VERSION$ git clone --branch v0.9.3 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.9.3
- ›Adds LlamaIndex provider for the TypeScript SDK, enabling LlamaIndex-based agents to call Composio tools natively.
- ›Adds toolkit versions support and deprecation flags to the TypeScript SDK, allowing pinning of specific toolkit versions for reproducible agent workflows.
- ›Adds
x-api-keyheader support in MCP URLs for authenticating MCP connections. - ›Adds query parameter support in MCP URLs for passing configuration inline.
- ›Adds trigger signature verification, enabling consumers to validate the authenticity of incoming trigger payloads.
+1 moreshow less
- ›Adds support for both Zod 3 and Zod 4 in the JSON-Schema-to-Zod conversion layer of the TS SDK.
- v0.9.2
Composio v0.9.2 adds LlamaIndex provider for the TypeScript SDK and toolkit versioning with deprecation flags.
└──▷ GET THIS VERSION$ git clone --branch v0.9.2 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.9.2
- ›Adds toolkit versions support and deprecation flags to the TypeScript SDK, letting callers pin a specific toolkit version when executing tools.
- ›Adds LlamaIndex as a provider for the TypeScript SDK, enabling LlamaIndex-based agents to use Composio tools natively.
- ›Supports query parameters in MCP URLs, expanding MCP connection configurability.
- ›Adds support for both Zod 3 and Zod 4 in the
json-schema-to-zodpackage, removing the hard dependency on a single Zod major version.
- v0.9.1
Composio v0.9.1 adds LlamaIndex provider for the TypeScript SDK and toolkit versioning with deprecation flags.
└──▷ GET THIS VERSION$ git clone --branch v0.9.1 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.9.1
- ›Adds toolkit versions support and deprecation flags to the TypeScript SDK, enabling pinned, versioned toolkit consumption.
- ›Adds LlamaIndex provider for the TypeScript SDK, expanding AI framework integrations.
- ›Supports both Zod 3 and Zod 4 in the
json-schema-to-zodconversion layer of the TypeScript SDK.
- @composio/[email protected]
Composio TypeScript SDK gains toolkit version pinning, deprecation flags, and no-auth identification for tools and triggers.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds
toolkit_versionsparameter to the Triggers class (defaults to'latest') so callers can pin or select specific toolkit versions when listing trigger types. - ›Adds
isDeprecatedfield to tool types returned by Tools.get() to surface whether a tool is deprecated. - ›Adds
isNoAuthfield to tool types returned by Tools.get() to identify tools that support no-auth mode. - ›Adds
versionfield to trigger types to track individual trigger versions. - ›Adds
availableVersionsarray to toolkit metadata to enumerate all available versions of a toolkit.
+1 moreshow less
- ›Makes the Triggers class generic to accept provider configuration, enabling typed provider config pass-through.
- ›Adds
- v0.9.0
Composio v0.9.0 adds a LlamaIndex provider for the TypeScript SDK.
└──▷ GET THIS VERSION$ git clone --branch v0.9.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.9.0
- ›Adds LlamaIndex provider for the TypeScript SDK, enabling LlamaIndex-based agents to use Composio tools natively.
- @composio/[email protected]
Composio @composio/[email protected] adds mandatory toolkit version validation for manual tool execution with new bypass flag and error types.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit version at SDK initialization so all execute() calls use a stable, date-stamped version instead of 'latest'.tools = Tools(client, provider, toolkit_versions={'github': '20251201_01'})Set a toolkit version via environment variable in CI so no code changes are needed to satisfy version validation.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Pass an explicit version inline when calling execute() for one-off manual tool runs.tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01')- ›Adds
dangerously_skip_version_check(Python) /dangerouslySkipVersionCheck(TypeScript) parameter to tools.execute() to optionally bypass version validation. - ›Adds
versionparameter to tools.execute() for passing an explicit toolkit version string (e.g.'20251201_01') at call time. - ›Adds
toolkit_versionsconfiguration key to the Tools constructor for instance-level toolkit version pinning (e.g.toolkit_versions={'github': '20251201_01'}). - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.COMPOSIO_TOOLKIT_VERSION_GITHUB) as a third option for version pinning without code changes. - ›Introduces
ToolVersionRequiredError(Python) andComposioToolVersionRequiredError(TypeScript) exceptions raised when tools.execute() is called withlatestversion and no skip flag, including error messages listing all four resolution options.
+1 moreshow less
- ›Manual tool execution via tools.execute() now validates toolkit versions before making API calls, preventing unexpected behavior from
latestversion drift.
└──▷ BREAKING ON UPGRADE- !Manual tool execution via tools.execute() now raises
ToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) when no explicit version is specified anddangerously_skip_version_checkis not set — any existing code calling tools.execute() without a version will break on upgrade.
- ›Adds
- @composio/[email protected]
Composio OpenAI Agents 0.2.0 adds mandatory toolkit version validation for manual tool execution with four opt-out paths.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit version at SDK init so every subsequent execute() call is validated against a known-good release.tools = Tools(client, provider, toolkit_versions={'github': '20251201_01'}) tools.execute('GITHUB_CREATE_ISSUE', arguments={...})Set toolkit version via environment variable in CI so no code changes are needed to satisfy version validation.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Pass an explicit version inline when calling a specific tool manually to satisfy version validation for a one-off execution.tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01')- ›Adds version validation to tools.execute(): manual tool execution now requires an explicit toolkit version, preventing silent breakage from
latestversion drift. - ›New
dangerously_skip_version_checkparameter (Python) /dangerouslySkipVersionCheck(TypeScript) flag on tools.execute() to bypass version validation when needed. - ›New
ToolVersionRequiredErrorexception (Python) andComposioToolVersionRequiredErrorerror (TypeScript) raised when a tool is executed againstlatestwithout the skip flag, each including resolution hints. - ›Supports toolkit version pinning via
toolkit_versionsdict at Tools() initialization — e.g.toolkit_versions={'github': '20251201_01'}— resolved consistently across both execute() and _execute_tool(). - ›Supports toolkit version pinning via environment variables in the format
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>(e.g.COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01) as an alternative to code-level configuration.
+1 moreshow less
- ›Agentic framework integrations (LangChain, CrewAI, etc.) automatically set
dangerously_skip_version_check=Trueinternally, requiring no migration for those flows.
└──▷ BREAKING ON UPGRADE- !Manual calls to tools.execute() using
latest(the implicit default) now raiseToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) unless a version is specified via theversionargument,toolkit_versionsat init, an environment variable likeCOMPOSIO_TOOLKIT_VERSION_GITHUB, ordangerously_skip_version_check=True.
- ›Adds version validation to tools.execute(): manual tool execution now requires an explicit toolkit version, preventing silent breakage from
- @composio/[email protected]
Composio @composio/[email protected] adds mandatory toolkit version pinning for manual tool execution with multiple opt-out paths.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin toolkit versions at SDK init so all tools.execute() calls in the session use a known-good version without per-call arguments.tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"})Set toolkit version via environment variable in CI to ensure reproducible tool behaviour across runs.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01- ›Adds
dangerously_skip_version_checkparameter (Python) /dangerouslySkipVersionCheck(TypeScript) to tools.execute() to bypass version validation when usinglatesttoolkit versions. - ›Adds
ToolVersionRequiredErrorexception (Python) andComposioToolVersionRequiredErrorerror (TypeScript) raised when tools.execute() is called withlatestversion and no skip flag, with error messages listing all four resolution paths. - ›Supports toolkit version pinning via
COMPOSIO_TOOLKIT_VERSION_<TOOLKITNAME>environment variables (e.g.,COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01) as an alternative to inline version arguments. - ›Supports per-call version pinning via
versionargument to tools.execute(), e.g., tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01'). - ›Supports instance-level version pinning via
toolkit_versionsdict at Tools initialization, e.g., Tools(client, provider, toolkit_versions={'github': '20251201_01'}).
+1 moreshow less
- ›Manual tool execution via tools.execute() now validates toolkit versions before API calls; agentic framework integrations (LangChain, CrewAI, etc.) are unaffected as they automatically set
dangerously_skip_version_check=Trueinternally.
└──▷ BREAKING ON UPGRADE- !Calling tools.execute() manually with the
latesttoolkit version (the previous default) now raisesToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) unlessdangerously_skip_version_check=True/dangerouslySkipVersionCheck: trueis passed or a specific version is supplied.
- ›Adds
- @composio/[email protected]
Composio @composio/[email protected] enforces toolkit version validation for manual tool execution, with new bypass flags and errors.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit to a specific version at initialization so all subsequent execute() calls use it without requiring per-call version arguments.tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"}) tools.execute("GITHUB_CREATE_ISSUE", arguments={...})Set a toolkit version via environment variable to enforce a pinned version across all processes without code changes.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Bypass version validation on a single call when testing or prototyping against the latest toolkit version.tools.execute("GITHUB_CREATE_ISSUE", arguments={...}, dangerously_skip_version_check=True)- ›Adds
dangerously_skip_version_check(Python) /dangerouslySkipVersionCheck(TypeScript) optional parameter to tools.execute() to bypass version validation when needed. - ›Adds
ToolVersionRequiredErrorexception (Python) andComposioToolVersionRequiredErrorerror (TypeScript) raised when attempting to execute tools withlatestversion without the skip flag, including resolution suggestions. - ›Manual tool execution via tools.execute() now requires explicit toolkit version specification, configurable via
versionargument,toolkit_versionsat Tools() initialization, orCOMPOSIO_TOOLKIT_VERSION_<TOOLKITNAME>environment variable. - ›Supports instance-level version configuration via
toolkit_versionsdict at Tools() construction, applying consistently across execute() and _execute_tool() calls.
└──▷ BREAKING ON UPGRADE- !Manual calls to tools.execute() with
latesttoolkit version now raiseToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) unless a specific version is supplied via theversionargument,toolkit_versionsconfig, theCOMPOSIO_TOOLKIT_VERSION_<TOOLKITNAME>environment variable, ordangerously_skip_version_check=True.
- ›Adds
- @composio/[email protected]
Composio Cloudflare 0.2.0 adds mandatory toolkit version validation for manual tool execution with new skip flags and error types.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit version at the SDK level so all calls to that toolkit use a known-good version without per-call parameters.tools = Tools(client, provider, toolkit_versions={'github': '20251201_01'}) tools.execute('GITHUB_CREATE_ISSUE', arguments={...})Pin a toolkit version via environment variable in CI/CD so no code changes are needed across execution paths.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Pass an explicit version per call when you need per-invocation control over which toolkit release is used.tools.execute('GITHUB_CREATE_ISSUE', arguments={...}, version='20251201_01')- ›Adds
dangerously_skip_version_checkparameter (Python) /dangerouslySkipVersionCheck(TypeScript) to bypass toolkit version validation when executing tools manually. - ›Adds
versionparameter to tools.execute() for passing an explicit toolkit version (e.g.'20251201_01') at call time. - ›Adds
toolkit_versionsconfiguration key to Tools() initializer for instance-level version pinning (e.g.toolkit_versions={'github': '20251201_01'}). - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.COMPOSIO_TOOLKIT_VERSION_GITHUB) as a third path for pinning toolkit versions. - ›Introduces
ToolVersionRequiredError(Python) andComposioToolVersionRequiredError(TypeScript) exceptions raised when tools.execute() is called with thelatestversion without the skip flag, including resolution suggestions.
+1 moreshow less
- ›Manual tool execution via tools.execute() now validates toolkit versions before making API calls; agentic framework integrations (LangChain, CrewAI, etc.) are unaffected via automatic internal skip.
└──▷ BREAKING ON UPGRADE- !Manual calls to tools.execute() that previously relied on the implicit
latestversion will now raiseToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) unless an explicitversionis provided,toolkit_versionsis set at initialization, aCOMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variable is present, ordangerously_skip_version_check=Trueis passed.
- ›Adds
- @composio/[email protected]
Composio Mastra 0.2.0 adds mandatory toolkit version validation for manual tool execution with opt-out flags and new error types.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit version at initialization so all manual tools.execute() calls use it without extra per-call arguments.tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"}) tools.execute("GITHUB_CREATE_ISSUE", arguments={...})Set toolkit version via environment variable in CI/CD so no code changes are needed across environments.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01- ›Adds
dangerouslySkipVersionCheck(TypeScript) /dangerously_skip_version_check(Python) parameter to tools.execute() to bypass version validation when needed. - ›Adds
toolkit_versionsconfig at SDK initialization (e.g., Tools(client, provider, toolkit_versions={"github": "20251201_01"})) for instance-level version pinning. - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.,COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01) to pin toolkit versions without code changes. - ›Introduces
ToolVersionRequiredError(Python) andComposioToolVersionRequiredError(TypeScript) errors with detailed resolution suggestions whenlatestversion is used without the skip flag. - ›Manual tool execution via tools.execute() now validates toolkit versions before API calls, with four documented resolution paths included in error messages.
└──▷ BREAKING ON UPGRADE- !Manual execution via tools.execute() now raises
ToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) when called with thelatesttoolkit version and no explicit version ordangerously_skip_version_checkflag is provided.
- ›Adds
- @composio/[email protected]
Composio OpenAI SDK v0.2.0 adds mandatory toolkit version validation for manual tool execution with four opt-out paths.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit version at SDK initialization so every subsequent execute() call in the session uses a known-good version without extra per-call arguments.tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"}) tools.execute("GITHUB_CREATE_ISSUE", arguments={"title": "Bug report", "body": "..."})Set a toolkit version via environment variable for CI pipelines or containers where changing code is impractical.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Override the version for a single sensitive execute() call while leaving the rest of the session at its configured default.tools.execute("GITHUB_CREATE_ISSUE", arguments={"title": "Urgent", "body": "..."}, version="20251201_01")- ›Adds explicit toolkit version requirement for manual tools.execute() calls to prevent unexpected behavior from
latestversion drift. - ›New
dangerously_skip_version_checkparameter (Python) /dangerouslySkipVersionCheck(TypeScript) flag lets callers bypass version validation when needed. - ›Supports
toolkit_versionsdict at Tools() initialization (e.g.toolkit_versions={"github": "20251201_01"}) for instance-level version pinning applied to all subsequent calls. - ›Supports per-call
versionparameter on tools.execute() (e.g.version="20251201_01") for one-off version overrides. - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01) as a third version-pinning path.
+1 moreshow less
- ›Agentic framework integrations (LangChain, CrewAI, etc.) automatically set
dangerously_skip_version_check=Trueinternally, preserving backward compatibility.
└──▷ BREAKING ON UPGRADE- !Manual tools.execute() calls that rely on the
latesttoolkit version will now raiseToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) on upgrade unless aversionparameter,toolkit_versionsconfig,COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>env var, ordangerously_skip_version_check=Trueis supplied.
- ›Adds explicit toolkit version requirement for manual tools.execute() calls to prevent unexpected behavior from
- @composio/[email protected]
Composio @composio/[email protected] adds mandatory toolkit version validation for manual tool execution with four opt-out paths.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a specific toolkit version at SDK initialization so every subsequent execute() call uses it without per-call version arguments.tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"}) tools.execute("GITHUB_CREATE_ISSUE", arguments={...})Set toolkit versions via environment variable in CI so no code changes are needed across the pipeline.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Pass an explicit version per call when you need a one-off execution against a specific toolkit release.tools.execute("GITHUB_CREATE_ISSUE", arguments={...}, version="20251201_01")- ›Adds
versionparameter to tools.execute() to require explicit toolkit version when executing tools manually, preventing unexpected behavior fromlatestversion drift. - ›Adds
toolkit_versionsconfig dict at Tools() initialization (e.g.,toolkit_versions={"github": "20251201_01"}) for instance-level version pinning across all executions. - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.,COMPOSIO_TOOLKIT_VERSION_GITHUB) as a third path to pin toolkit versions without code changes. - ›Adds
dangerously_skip_version_check(Python) /dangerouslySkipVersionCheck(TypeScript) flag to tools.execute() to bypass version validation when needed. - ›Introduces
ToolVersionRequiredError(Python) andComposioToolVersionRequiredError(TypeScript) exceptions with four concrete resolution suggestions whenlatestis used without the skip flag.
└──▷ BREAKING ON UPGRADE- !Manual tools.execute() calls that rely on the implicit
latesttoolkit version will now raiseToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) unless aversionis specified,toolkit_versionsis configured at init, aCOMPOSIO_TOOLKIT_VERSION_<TOOLKIT>env var is set, ordangerously_skip_version_check=Trueis passed.
- ›Adds
- @composio/[email protected]
Composio @composio/anthropic 0.2.0 adds mandatory toolkit version validation for manual tool execution with escape hatches via flag, config, or env var.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a specific toolkit version per call in CI so alatestchange never silently breaks your automation.tools.execute('GITHUB_CREATE_ISSUE', arguments={'title': 'Bug report', 'body': 'Details here', 'repo': 'my-repo'}, version='20251201_01' )Set toolkit versions globally at SDK init so every tools.execute() call in the process uses the pinned version without per-call flags.tools = Tools(client, provider, toolkit_versions={'github': '20251201_01', 'slack': '20251201_02'} )Lock the GitHub toolkit version via environment variable for a deployment without changing any code.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01- ›Adds
dangerously_skip_version_checkparameter (Python) /dangerouslySkipVersionCheck(TypeScript) to tools.execute() to bypass version validation when needed. - ›Adds
versionparameter to tools.execute() for explicit per-call toolkit version pinning (e.g.version='20251201_01'). - ›Adds
toolkit_versionsconfig key to Tools() constructor for instance-level version pinning across all executions. - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.COMPOSIO_TOOLKIT_VERSION_GITHUB) to set toolkit versions without code changes. - ›Introduces
ToolVersionRequiredError(Python) andComposioToolVersionRequiredError(TypeScript) exceptions raised when tools.execute() is called withlatestversion and no skip flag, including resolution suggestions.
└──▷ BREAKING ON UPGRADE- !Manual tool execution via tools.execute() now raises
ToolVersionRequiredError(Python) /ComposioToolVersionRequiredError(TypeScript) when the toolkit version resolves tolatestanddangerously_skip_version_checkis not set — existing call sites that relied on implicitlatestresolution will break and must add an explicitversion, atoolkit_versionsconfig, aCOMPOSIO_TOOLKIT_VERSION_<TOOLKIT>env var, ordangerously_skip_version_check=True.
- ›Adds
- @composio/[email protected]
Composio @composio/[email protected] adds mandatory toolkit version validation for manual tool execution with new skip flags and error types.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
└──▷ USE ITPin a toolkit version at SDK init so all subsequent execute() calls use it without per-call version arguments.tools = Tools(client, provider, toolkit_versions={"github": "20251201_01"}) tools.execute("GITHUB_CREATE_ISSUE", arguments={...})Set toolkit version via environment variable to avoid touching application code — useful in CI or container deployments.$ export COMPOSIO_TOOLKIT_VERSION_GITHUB=20251201_01Bypass version validation for a one-off manual execution when you intentionally wantlatestbehavior.tools.execute("GITHUB_CREATE_ISSUE", arguments={...}, dangerously_skip_version_check=True)- ›Adds
dangerously_skip_version_checkparameter (Python) /dangerouslySkipVersionCheck(TypeScript) to tools.execute() to bypass version validation when needed. - ›Adds
toolkit_versionsconfig key at SDK initialization (e.g. Tools(client, provider, toolkit_versions={...})) for instance-level toolkit version pinning. - ›Supports
COMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variables (e.g.COMPOSIO_TOOLKIT_VERSION_GITHUB) to specify toolkit versions without code changes. - ›Introduces
ToolVersionRequiredError(Python) andComposioToolVersionRequiredError(TypeScript) — raised when tools.execute() is called withlatestversion without the skip flag, with error messages covering 4 resolution options. - ›Agentic framework integrations (LangChain, CrewAI, etc.) automatically apply
dangerously_skip_version_check=Trueinternally to maintain backward compatibility.
└──▷ BREAKING ON UPGRADE- !Manual tools.execute() calls using the
latesttoolkit version now raiseToolVersionRequiredError(Python) orComposioToolVersionRequiredError(TypeScript) unlessdangerously_skip_version_check=Trueis passed or a version is explicitly specified via theversionparameter,toolkit_versionsconfig, or aCOMPOSIO_TOOLKIT_VERSION_<TOOLKIT>environment variable.
- ›Adds
- v0.8.20
Composio v0.8.20 adds
allow_multiplefor connected accounts and OpenAI Responses API support in the Python SDK.└──▷ GET THIS VERSION$ git clone --branch v0.8.20 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.20
- ›Adds
allow_multipleoption to the Python SDK when creating connected accounts, enabling multiple connections to the same integration. - ›Adds support for the OpenAI Python Responses API in the Composio Python SDK.
- ›Adds
- v0.8.16
Composio v0.8.16 adds an MCP API and ToolRouter capability.
└──▷ GET THIS VERSION$ git clone --branch v0.8.16 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.16
- ›Adds MCP API support to Composio core.
- ›Adds ToolRouter alongside MCP integration for routing tool calls.
- @composio/[email protected]
Composio @composio/anthropic 0.1.53 adds experimental ToolRouter and new MCP components.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds experimental
ToolRouterfor routing tool calls across integrations. - ›Introduces new MCP components, replacing the previous MCP experience; old components remain accessible via
deprecated.mcpuntil the next release.
└──▷ BREAKING ON UPGRADE- !The existing MCP components are deprecated and accessible only via
deprecated.mcp; they will be removed in the next release.
- ›Adds experimental
- @composio/[email protected]
Composio @composio/google 0.1.53 adds an experimental ToolRouter and new MCP components.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds the new experimental
ToolRouterfor routing tool calls. - ›Introduces new MCP components, replacing the existing MCP experience; old MCP components remain accessible via
deprecated.mcpuntil the next release.
- ›Adds the new experimental
- @composio/[email protected]
Composio Vercel SDK adds experimental ToolRouter and new MCP components, retiring the old MCP experience.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds experimental
ToolRouteras a new capability for routing tools. - ›Introduces new MCP components, replacing the deprecated MCP experience; old components remain accessible via
deprecated.mcpuntil the next release.
- ›Adds experimental
- @composio/[email protected]
Composio OpenAI adds experimental ToolRouter and new MCP components, deprecating the old MCP experience.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds the new experimental
ToolRouterfor routing tool calls. - ›Introduces new MCP components, replacing the old MCP experience; old components remain accessible via
deprecated.mcpuntil the next release.
- ›Adds the new experimental
- @composio/[email protected]
Composio Mastra 0.1.54 adds experimental ToolRouter and new MCP components, replacing the previous MCP experience.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds the new experimental
ToolRouterfor routing tool calls across integrations. - ›Introduces new MCP components to replace the deprecated MCP experience; old components remain accessible via
deprecated.mcpuntil the next release.
└──▷ BREAKING ON UPGRADE- !The existing MCP components are deprecated and moved to
deprecated.mcp; they will be removed in the next release.
- ›Adds the new experimental
- @composio/[email protected]
Composio OpenAI Agents SDK gains experimental ToolRouter and new MCP components, replacing the previous MCP experience.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds the experimental
ToolRouterfor routing tool calls across integrations. - ›Introduces new MCP components, accessible via the updated MCP API; the old components remain available under
deprecated.mcpuntil the next release.
└──▷ BREAKING ON UPGRADE- !The existing MCP components are deprecated and will be removed in the next release; migrate away from the old MCP API now — the old components are temporarily accessible via
deprecated.mcponly.
- ›Adds the experimental
- @composio/[email protected]
Composio @composio/[email protected] adds an experimental ToolRouter and new MCP components.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds the new experimental
ToolRouterfor routing tool calls. - ›Introduces new MCP components, accessible as the primary MCP experience going forward.
- ›Old MCP components remain accessible via
deprecated.mcpuntil the next release.
- ›Adds the new experimental
- @composio/[email protected]
Composio LangChain 0.1.53 adds experimental ToolRouter and new MCP components, replacing the prior MCP experience.
└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Introduces the experimental
ToolRouteras a new routing layer for tool dispatch. - ›Adds new MCP components, replacing the existing MCP integration (old components accessible via
deprecated.mcpuntil the next release). - ›Adds
descriptionto connection fields returned bytoolkits.listandtoolkits.getmethods.
└──▷ BREAKING ON UPGRADE- !The existing MCP components are deprecated and moved to
deprecated.mcp; they will be removed in the next release.
- ›Introduces the experimental
- @composio/[email protected]
Composio Cloudflare 0.1.53 adds experimental ToolRouter and new MCP components, with old MCP accessible via
deprecated.mcp.└──▷ GET THIS VERSION$ git clone --branch @composio/[email protected] https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout @composio/[email protected]
- ›Adds experimental
ToolRouterfor routing tool calls across integrations. - ›Introduces new MCP components to replace the existing MCP experience; old components remain accessible via
deprecated.mcpuntil the next release. - ›Adds
descriptionto connection fields returned bytoolkits.listandtoolkits.getmethods.
- ›Adds experimental
- v0.8.15
Adds
--type-toolsflag to thets generateCLI command for typed tool generation.└──▷ GET THIS VERSION$ git clone --branch v0.8.15 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.15
- ›Adds
--type-toolssupport to thets generatecommand, enabling typed tool generation from the CLI.
- ›Adds
- 0.8.14
Composio 0.8.14 adds versioning support for tools.
└──▷ GET THIS VERSION$ git clone --branch 0.8.14 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout 0.8.14
- ›Adds versioning support for tools, enabling management of multiple tool versions.
- v0.8.13
Composio v0.8.13 adds versioning support for tools.
└──▷ GET THIS VERSION$ git clone --branch v0.8.13 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.13
- ›Adds versioning support for tools, enabling practitioners to pin or target specific tool versions.
- v0.8.12
Composio v0.8.12 adds connected account lookup by user ID
└──▷ GET THIS VERSION$ git clone --branch v0.8.12 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.12
- ›Adds the ability to retrieve a connected account for a specific user via
user_id.
- ›Adds the ability to retrieve a connected account for a specific user via
- v0.8.11
Composio v0.8.11 adds Composio Connect Link support directly in the SDK
└──▷ GET THIS VERSION$ git clone --branch v0.8.11 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.11
- ›Adds Composio Connect Link support to the SDK, enabling programmatic generation of connection links for users.
- v0.8.9
Composio v0.8.9 adds Vercel AI SDK v5 support, a complete CLI
logincommand, and a disable-version-check flag.└──▷ GET THIS VERSION$ git clone --branch v0.8.9 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.9
- ›Adds
--disable-version-checkflag to the CLI to skip version validation on startup. - ›Completes the
logincommand in the CLI, enabling full authentication workflows from the terminal. - ›Adds support for Vercel AI SDK v5 integration.
- ›Adds
- v0.8.8
Composio v0.8.8 adds strict mode for Vercel AI SDK and CLI-based TypeScript type generation for trigger payloads and events.
└──▷ GET THIS VERSION$ git clone --branch v0.8.8 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.8
- ›Adds
strict modesupport in the Vercel AI SDK integration. - ›New CLI command generates TypeScript types for trigger payloads and events.
- ›Adds
- v0.8.6
Composio v0.8.6 adds trigger event types, HTTP response caching via
FORCE_USE_CACHE=1, and triggerTypes payload to code-generation commands.└──▷ GET THIS VERSION$ git clone --branch v0.8.6 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.6
└──▷ TRY ITSpeed up repeated CLI code-generation runs by caching HTTP responses instead of hitting the network each time.$ FORCE_USE_CACHE=1 composio ts generate- ›Adds
FORCE_USE_CACHE=1environment variable to the CLI to cache HTTP responses, reducing redundant network calls during development. - ›Adds
triggerTypespayload support tots generateandpy generateCLI subcommands for richer type-safe code generation. - ›Adds trigger event types to the API surface.
- ›Adds support for sending source and runtime headers in SDK requests.
- ›Adds
- v0.8.2
Composio v0.8.2 adds CLI
upgradeandlogoutcommands plus configurable file download paths.└──▷ GET THIS VERSION$ git clone --branch v0.8.2 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.2
- ›Adds
upgradesubcommand to the CLI for in-place version upgrades. - ›Adds
logoutsupport to the CLI for user-context management. - ›Makes the file downloadable path configurable instead of hardcoded.
- ›Adds
- v0.8.0
Composio v0.8.0 adds configurable file download paths and custom connection data support in proxy/tool execution.
└──▷ GET THIS VERSION$ git clone --branch v0.8.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.8.0
- ›Adds configurable file downloadable path support, letting users control where downloaded files are stored.
- ›Supports custom connection data argument in
execute proxyand tool execution calls.
- v0.7.20
Composio v0.7.20 increases the open file window size to 500 and adds a new MCP transport method.
└──▷ GET THIS VERSION$ git clone --branch v0.7.20 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.20
- ›Adds a new transport method for MCP connections.
- ›Increases the open file window size to 500 lines.
- v0.7.19
Composio v0.7.19 adds a name argument and StreamableHTTP support to the MCP CLI setup command.
└──▷ GET THIS VERSION$ git clone --branch v0.7.19 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.19
- ›Adds
nameas a positional argument to the MCP CLI, allowing servers to be identified by name directly from the command line. - ›Adds
streamableHttptransport support and thenameargument to the MCP CLIsetupcommand.
- ›Adds
- v0.7.18
Composio v0.7.18 adds a
scopesparameter to the action model for fine-grained permission control.└──▷ GET THIS VERSION$ git clone --branch v0.7.18 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.18
- ›Adds
scopesparameter to the action model, enabling explicit permission scope declarations on actions.
- ›Adds
- v0.7.16
Composio v0.7.16 adds LiveKit and Qwen agent integrations plus MCP API references in docs
└──▷ GET THIS VERSION$ git clone --branch v0.7.16 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.16
- ›Adds Composio LiveKit integration for the Python SDK, enabling LiveKit-based agent workflows.
- ›Adds Qwen agent integration via the agents SDK.
- ›Adds MCP API references to documentation, covering the Model Context Protocol surface.
- ›Uses
fernto pull and filter OpenAPI specs for SDK generation.
- v0.7.15
Composio v0.7.15 adds Llama 4 agent support, v3 API migration, and updated MCP API references.
└──▷ GET THIS VERSION$ git clone --branch v0.7.15 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.15
- ›Adds Llama 4 agent integration for running agentic workflows with Meta's Llama 4 model.
- ›Introduces v3 API migration with updated changelogs and v3 API references alongside updated MCP API refs.
- ›Updates file utilities to support Windows file processing.
- v0.7.13
Composio v0.7.13 adds Mastra framework integration and MCP support with agents SDK example.
└──▷ GET THIS VERSION$ git clone --branch v0.7.13 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.13
- ›Adds Mastra framework integration instructions, enabling Composio tools to be used within the Mastra agent framework.
- ›Adds Model Context Protocol (MCP) support with documentation and an agents SDK MCP example.
- ›Adds tool-level documentation surfaced directly alongside individual tools.
- v0.7.12
Composio v0.7.12 adds a game builder integration powered by Gemini.
└──▷ GET THIS VERSION$ git clone --branch v0.7.12 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.12
- ›Adds a game builder capability using Gemini as the underlying agent.
- v0.7.11
Composio v0.7.11 adds Cursor MCP setup, S3 URL support, Slack computer-use, and a new current-user API endpoint.
└──▷ GET THIS VERSION$ git clone --branch v0.7.11 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.11
- ›Adds
cursorsetup command to the MCP CLI for configuring Cursor editor integration. - ›Adds
get_current_user_endpointto the apps API endpoint for retrieving the authenticated user. - ›Adds S3 URL support for file/asset handling.
- ›Adds computer-use capability with Slack integration.
- ›Bumps MCP CLI to version 0.4.0.
- ›Adds
- v0.7.8
Composio v0.7.8 adds OpenAI Agents integration, MCP CLI package, auth scheme filtering, and Node 10 support.
└──▷ GET THIS VERSION$ git clone --branch v0.7.8 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.8
- ›Adds auth scheme support to the app list, enabling filtering of apps by authentication scheme.
- ›Adds Composio OpenAI Agents integration as a new plugin.
- ›Creates a separate package for the MCP CLI with CommonJS support for Node 10 compatibility.
- ›Enhances schema optimization by removing unnecessary keys from tool schemas.
- v0.7.7
Composio v0.7.7 adds a Together AI plugin for the Python SDK and launches MCP Server support.
└──▷ GET THIS VERSION$ git clone --branch v0.7.7 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.7
- ›Adds Together AI plugin to the Python SDK, enabling Together AI as an integrated provider.
- ›Launches Composio MCP Servers support with accompanying documentation.
- ›Creates a new Axios instance per Composio instance in the JavaScript SDK, improving isolation between concurrent clients.
- v0.7.5
Composio v0.7.5 adds MCP command support for Claude/Windsurf, session-aware tracing, and a silent logging level.
└──▷ GET THIS VERSION$ git clone --branch v0.7.5 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.5
- ›Adds
mcpcommand for Claude and Windsurf integrations. - ›Adds
allow_tracingparameter to toolset-level configuration to control tracing per toolset. - ›Adds global-level tracing support, allowing tracing to retrieve log and session IDs.
- ›Adds session information to tracing output.
- ›Adds props for controlling tracing behavior.
+1 moreshow less
- ›Adds
silentlogging level for suppressing log output.
- ›Adds
- v0.7.3
Composio v0.7.3 adds a response formatter to the TypeScript SDK and expands file processor and upload encoding support.
└──▷ GET THIS VERSION$ git clone --branch v0.7.3 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.3
- ›Adds a response formatter in the TypeScript SDK for structured action output handling.
- ›Expands file processor support with updated file upload encoding capabilities.
- ›Adds versioned actions usage documentation.
- ›Adds new example agents: sales agent, HackerNews/Perplexity agent, game builder agent, loan underwriting agent, and Python Gemini examples.
- v0.7.2
Composio v0.7.2 adds Google Gemini, Agno, and smol agent plugins plus granular exception classes for external APIs.
└──▷ GET THIS VERSION$ git clone --branch v0.7.2 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.2
- ›Adds more granular exception classes for external APIs, enabling finer-grained error handling in integrations.
- ›Adds a Google Gemini plugin, extending Composio's AI framework integrations to include Gemini.
- ›Adds an Agno plugin, bringing Agno agent framework support to Composio.
- ›Adds a smol agent plugin, enabling smol-agent workflows within Composio.
- ›Adds a deep researcher example using the AI SDK.
- v0.7.1-0
Composio v0.7.1-0 adds no_auth scheme support, limitedActions filtering, checkRequest overrides, and trigger methods on toolsets.
└──▷ GET THIS VERSION$ git clone --branch v0.7.1-0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.1-0
- ›Adds
no_authauth scheme type in Python, including proper error handling duringinitiate_connectionfor tools that require no authentication. - ›Adds
limitedActionsparameter togetToolsto filter the returned action set to only the specified actions. - ›Adds support for
checkRequestactions override in the OpenAI integration, enabling per-request action validation customization. - ›Adds trigger methods directly on the toolset object, allowing trigger management without a separate client call.
- ›Adds
- v0.7.0
Composio v0.7.0 adds
connectedAccountIdssupport at toolset init and updates file upload/download on toolsets.└──▷ GET THIS VERSION$ git clone --branch v0.7.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.7.0
- ›Adds
connectedAccountIdsparameter to toolset initialization, enabling scoped tool execution against specific connected accounts. - ›Updates file upload and download mechanism on toolsets, improving how files are transferred through tool actions.
- ›Adds
- v0.6.17
Composio v0.6.17 adds Pydantic AI integration and action versioning support.
└──▷ GET THIS VERSION$ git clone --branch v0.6.17 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.17
- ›Adds Pydantic AI integration with Composio, enabling Pydantic AI agents to use Composio-managed tools and connected accounts.
- ›Implements action versioning, allowing callers to target specific versions of actions.
- js-v-0.5.5
Composio JS SDK v0.5.5 adds account enable/disable controls, reInitiateConnection(), and
appUniqueKeyssupport.└──▷ GET THIS VERSION$ git clone --branch js-v-0.5.5 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout js-v-0.5.5
- ›Adds reInitiateConnection() method for managing and re-initiating existing connections.
- ›Adds
appUniqueKeysas a replacement identifier forappNamewhen referencing apps. - ›Enables enabling and disabling connected accounts via the SDK.
└──▷ BREAKING ON UPGRADE- !The .create() method on Connections is removed entirely — use .initiate() instead to create new connections.
- !Integration deletion now requires an object parameter instead of a string ID.
- !.getRequiredParams() on integrations now requires an object parameter instead of a string.
- !
.getTriggerInfois deprecated — use .get() on Triggers instead.
- v0.6.16
Composio v0.6.16 adds new integration/connection APIs, Helicone caching, crypto kit agents, and renames trigger identifiers.
└──▷ GET THIS VERSION$ git clone --branch v0.6.16 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.16
- ›Renames
triggerIdtotriggerNameandtriggerInstanceId, and adds new methods for managing trigger connections via updated API schema. - ›Adds Helicone integration for caching OpenAI responses, reducing latency and cost for AI-backed workflows.
- ›Introduces new API schema for creating integrations, initiating connections, re-initiating, and updating connections.
- ›Adds crypto kit agents for cryptocurrency-related automation use cases.
└──▷ BREAKING ON UPGRADE- !The
triggerIdfield is renamed totriggerName; existing code or API calls referencingtriggerIdwill break on upgrade.
- ›Renames
- v0.6.15
Composio v0.6.15 adds
refresh_tokento AuthConnectionParamsModel└──▷ GET THIS VERSION$ git clone --branch v0.6.15 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.15
- ›Adds
refresh_tokenfield toAuthConnectionParamsModel, exposing refresh tokens in authenticated connection parameters.
- ›Adds
- v0.6.14
Composio v0.6.14 adds custom action support in the Vercel toolkit and updates the AutoGen tools integration.
└──▷ GET THIS VERSION$ git clone --branch v0.6.14 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.14
- ›Supports custom actions in the Vercel toolkit, with type safety improvements.
- ›Updates AutoGen tools to a new version, refreshing the AutoGen integration.
- v0.6.10
Composio v0.6.10 adds JS agent support and custom auth delegation for runtime actions.
└──▷ GET THIS VERSION$ git clone --branch v0.6.10 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.10
- ›Adds support for delegating custom authentication to runtime actions, enabling dynamic auth injection at execution time.
- ›Introduces JavaScript agent support (JS agents).
- js-v-0.5.0
Composio JS v0.5.0 adds frontend framework support, new trigger APIs, and slashes bundle size from 10 MB to 400 KB.
└──▷ GET THIS VERSION$ git clone --branch js-v-0.5.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout js-v-0.5.0
└──▷ USE ITMigrate a custom action to the newinputParams/ structured callback shape required in v0.5.0.await toolset.createAction({ // ...other fields inputParams: z.object({ name: z.string().optional() }), callback: async (params) => { const { name } = params; return { successful: true, data: { name: name || 'World' } }; } });- ›Adds
getTriggerInfoandgetTriggerConfigmethods to the trigger interface for querying trigger metadata. - ›Exposes
.apps,.actions,.triggers, and.connectedAccountsdirectly on toolset classes. - ›Exposes
ComposioToolsetfromindex.tsfor top-level imports. - ›Adds a new typed API client with full type definitions.
- ›All errors are now instances of
ComposioError, each carrying anerror.error_codeproperty for programmatic debugging.
+4 moreshow less
- ›Adds support for frontend frameworks including React server components.
- ›Reduces bundle size from 10 MB to 400 KB, enabling use in browser and edge environments.
- ›Adds improved format for
PreProcessor,PostProcessor, andSchemaProcessortypes. - ›Adds Zod-based early validation and improved type safety across the SDK.
└──▷ BREAKING ON UPGRADE- !Support for local and Docker workspaces has been removed; any code referencing workspace configurations will break.
- !In
toolset.createAction, theparamsargument is renamed toinputParams, and thecallbacksignature now receivesparamsas its argument and must return{ successful: boolean, data: object }instead of a plain string. Callers using the oldparamskey or returning plain strings must migrate.
- ›Adds
- v0.6.9
Composio v0.6.9 adds custom auth injection for local tools and updated type definitions.
└──▷ GET THIS VERSION$ git clone --branch v0.6.9 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.9
- ›Allows injection of custom authentication for local tools, enabling practitioners to supply their own auth credentials when working with locally defined tools.
- ›Updates types to align with backend definitions for improved API contract accuracy.
- v0.6.8
Composio v0.6.8 adds retry support in Action postprocessor and connected_account access in custom actions.
└──▷ GET THIS VERSION$ git clone --branch v0.6.8 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.8
- ›Supports requesting
connected_accountinside custom actions, enabling action authors to access the connected account context at runtime. - ›Adds retry support in the Action postprocessor, allowing failed action post-processing steps to be retried automatically.
- ›Supports requesting
- v0.6.7
Composio v0.6.7 adds trigger list support and expands SQL tooling with SQLite and remote database connections.
└──▷ GET THIS VERSION$ git clone --branch v0.6.7 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.7
- ›Adds trigger list support, enabling enumeration of available triggers via the Composio client.
- ›Enhances the SQL Query Tool with SQLite and remote database support, broadening the range of data sources accessible through Composio actions.
- v0.6.4
Composio v0.6.4 adds SDR kit agents, initiate connection support, and TypeScript exports.
└──▷ GET THIS VERSION$ git clone --branch v0.6.4 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.4
- ›Adds SDR (Sales Development Representative) kit agents for automated outreach workflows.
- ›Adds
initiate connectionsupport and new TypeScript exports to the SDK. - ›Updates the Phidata plugin to support the
use toolkitinterface. - ›Reduces TypeScript bundle size and brings ESLint and TypeScript issues to zero.
- v0.6.0
Composio v0.6.0 adds processor support, bundler support, object params for methods, and remove-integration capability.
└──▷ GET THIS VERSION$ git clone --branch v0.6.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.6.0
- ›Adds processor support alongside a move to object params for methods, enabling pre/post-processing of tool calls.
- ›Adds bundler support for the JavaScript SDK.
- ›Adds remove integration support via the CLI/SDK.
- ›Revamps the
composio apps updateCLI command. - ›Improves 400-error handling with richer error messages.
- v0.5.51
Composio v0.5.51 adds advanced use-case search in the JS SDK, workflow dispatch, LangGraph integration, and
x-request-idpropagation.└──▷ GET THIS VERSION$ git clone --branch v0.5.51 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.51
- ›Passes
x-request-idheader in all Composio API queries, enabling request tracing across distributed calls. - ›Adds advanced use-case search functionality in the JS SDK.
- ›Adds workflow dispatch support with improved logging level controls.
- ›Adds LangGraph integration for both Python and TypeScript.
- ›Makes beta enum generation the default behavior.
- ›Passes
- v0.5.50
Composio v0.5.50 adds a trigger list CLI command and app connector listing in the API reference.
└──▷ GET THIS VERSION$ git clone --branch v0.5.50 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.50
- ›Adds
trigger listcommand to the CLI for listing available triggers. - ›Adds app connector listing in the API reference documentation.
- ›Adds more detailed error message information for missing or invalid enum values.
- ›Adds
- v0.5.49
Composio v0.5.49 adds advanced use case search capability.
└──▷ GET THIS VERSION$ git clone --branch v0.5.49 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.49
- ›Adds advanced use case search for discovering integrations and actions by use case.
- v0.5.47
Composio v0.5.47 adds request executor injection for runtime tools and case-insensitive trigger filtering.
└──▷ GET THIS VERSION$ git clone --branch v0.5.47 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.47
- ›Supports injecting a custom request executor into the runtime tool, enabling custom HTTP handling at execution time.
- ›Makes trigger filter matching case-insensitive, so trigger names no longer need to match exact casing.
- v0.5.46
Composio v0.5.46 adds proxy support for custom actions and auto-creates integrations when no ID is provided.
└──▷ GET THIS VERSION$ git clone --branch v0.5.46 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.46
- ›Adds proxy support for executing custom actions, enabling custom actions to route through a configured proxy.
- ›Auto-creates a new integration when no
integrationIdis provided, removing the requirement to pre-provision an integration before connecting.
- v0.5.45
Composio v0.5.45 auto-creates integrations on
initiate_connectionwhen none exists└──▷ GET THIS VERSION$ git clone --branch v0.5.45 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.45
- ›Adds auto-initiation of a new integration when none exists on
initiate_connection, removing the need to manually pre-create integrations before starting a connection flow.
- ›Adds auto-initiation of a new integration when none exists on
- v0.5.44
Composio v0.5.44 adds
execute_requestmethod and friendlier trigger-not-enabled errors.└──▷ GET THIS VERSION$ git clone --branch v0.5.44 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.44
- ›Adds
execute_requestmethod for direct HTTP request execution. - ›Shows a friendly error message when a trigger is not enabled on your account, replacing opaque failures.
- ›Adds
- v0.5.43
Composio v0.5.43 defaults action execution to the 'primary' account label and adds improved callback filter error messages.
└──▷ GET THIS VERSION$ git clone --branch v0.5.43 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.43
- ›Automatically executes actions against the account labelled
primarywhen no account is explicitly specified. - ›Adds improved error messages for wrong callback filters, helping developers diagnose misconfigured trigger callbacks faster.
- ›Improves developer experience for the code analysis tool.
- ›Adds
excludefunctionality to the file tool.
- ›Automatically executes actions against the account labelled
- v0.5.42
Composio v0.5.42 adds support for disconnecting and reconnecting trigger subscriptions.
└──▷ GET THIS VERSION$ git clone --branch v0.5.42 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.42
- ›Adds support for disconnecting and reconnecting trigger subscriptions, enabling more dynamic lifecycle management of event listeners.
- v0.5.39
Composio v0.5.39 adds Anthropic computer use tools and refactored SWE-agent support for LangGraph and CrewAI.
└──▷ GET THIS VERSION$ git clone --branch v0.5.39 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.39
- ›Adds Anthropic computer use tools integration.
- ›Adds working SWE-agent in LangGraph and CrewAI, plus a PR-review agent in LangGraph, via SWEKit refactoring.
- v0.5.38
Composio v0.5.38 adds toolset.get_connected_accounts(),
streamWaitfor OpenAI, and auto-update for failed remote apps.└──▷ GET THIS VERSION$ git clone --branch v0.5.38 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.38
└──▷ USE ITList all connected accounts in your toolset to audit which integrations are active.connected_accounts = toolset.get_connected_accounts()
- ›Adds toolset.get_connected_accounts() method to retrieve all connected accounts from a toolset.
- ›Adds
streamWaitmethod to the OpenAI integration and movesgetExpectedParamsForUserin the JS SDK. - ›Renames
getActiontogetToolsin the JS SDK. - ›Adds suggestion text and a documentation link to connection-not-found errors to help users self-serve.
- ›Auto-updates apps when a remote app or action fails to load, reducing manual intervention on stale definitions.
+3 moreshow less
- ›Adds a SWE agent scaffold for software-engineering agent workflows.
- ›Adds a Git custom tool integration.
- ›Bumps the JS SDK to version 0.2.5 and updates the Cloudflare JS version.
└──▷ BREAKING ON UPGRADE- !Deprecated methods removed in this release — any code calling the previously deprecated methods will break on upgrade.
- v0.5.37
Composio v0.5.37 adds a to-do list generator agent and boosts SWE-bench score to 48.6% with Claude v2.
└──▷ GET THIS VERSION$ git clone --branch v0.5.37 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.37
- ›Adds a to-do list generator agent to the agent library.
- ›Upgrades the SWE-bench agent LLM to Claude v2, achieving a 48.6% SWE-bench score.
- v0.5.36
Composio v0.5.36 adds
check_connected_accountsflag toget_toolsandauth_schemesupport onget_expected_params_for_user.└──▷ GET THIS VERSION$ git clone --branch v0.5.36 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.36
- ›Adds
check_connected_accountsflag toget_toolsto filter tools based on whether the entity has connected accounts. - ›Adds
auth_schemeparameter support onget_expected_params_for_userto specify the authentication scheme when retrieving expected auth params for a user. - ›Adds API key and
entityIdsupport for auth handling, enabling per-entity authentication flows.
- ›Adds
- v0.5.35
Composio v0.5.35 adds user-defined auth for action execution and custom auth data support in the JS SDK.
└──▷ GET THIS VERSION$ git clone --branch v0.5.35 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.35
- ›Adds support for user-defined auth parameters during action execution in the Python SDK, enabling callers to supply custom credentials at runtime rather than relying solely on stored connections.
- ›Adds custom auth data support in the JS SDK (released as JS SDK v0.2.3), bringing parity with the Python SDK for runtime auth overrides.
- ›Makes
is_secreta default argument in auth parameter definitions, simplifying how sensitive fields are declared. - ›Adds a Cloudflare + OpenAI integration example.
- v0.5.34
Composio v0.5.34 adds
getExpectedParamsForUsermethod across all framework integrations.└──▷ GET THIS VERSION$ git clone --branch v0.5.34 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.34
- ›Adds
getExpectedParamsForUsermethod (and Python equivalentget_expected_params_for_user) to all framework integrations, enabling callers to retrieve the expected connection parameters for a given user.
- ›Adds
- v0.5.32
Composio v0.5.32 adds user-defined auth params for connectors, integration ID lookup by app, and ExpectedFieldInput support
└──▷ GET THIS VERSION$ git clone --branch v0.5.32 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.32
- ›Adds
ExpectedFieldInputattribute and a separate method for customer expected fields, enabling more precise definition of required auth inputs when configuring connectors. - ›Adds support for user-defined auth params when initialising connectors, giving practitioners control over custom authentication parameters at connector setup time.
- ›Adds support for specifying connected account params when initialising a connected account.
- ›Adds support for fetching integration ID using app name, simplifying programmatic lookup of integrations.
- ›Logs session ID when ingesting logs and executing an action, improving traceability across action executions.
+2 moreshow less
- ›Adds top-level utils module for broader access to shared utilities.
- ›Workspace dependencies are now definable as extras, allowing optional installation of workspace-specific dependencies.
- ›Adds
- v0.5.31
Composio v0.5.31 adds log ingestion for local tool execution, an auth params API, and connection info in the JS SDK.
└──▷ GET THIS VERSION$ git clone --branch v0.5.31 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.31
- ›Adds log ingestion for local tool execution, enabling visibility into locally run tool actions.
- ›Adds an auth params API for retrieving authentication parameters programmatically.
- ›Adds connection info support and fixes the
initConnectionflow in the JavaScript SDK.
- v0.5.27
Composio v0.5.27 adds delete connected account and trigger APIs to the JS SDK, plus code indexing for non-Python repos.
└──▷ GET THIS VERSION$ git clone --branch v0.5.27 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.27
- ›Adds delete connected account and delete trigger APIs to the JavaScript SDK.
- ›Extends code indexing support to non-Python repositories.
- v0.5.26
Composio v0.5.26 adds a Google plugin, Sheets DB sync, and skip-default-connector support.
└──▷ GET THIS VERSION$ git clone --branch v0.5.26 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.26
- ›Adds support for skipping the default connector via
skip default connector(#ENG-1386). - ›Adds a new Google plugin integration.
- ›Adds Sheets DB sync capability.
- ›Adds integration YAML documentation support.
- ›Adds support for skipping the default connector via
- v0.5.24
Composio v0.5.24 adds connection ID specifiers, remote enum opt-out, schema control, and a new Testing tool.
└──▷ GET THIS VERSION$ git clone --branch v0.5.24 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.24
- ›Adds support for connection ID specifiers, letting callers target a specific authenticated connection when invoking actions.
- ›Adds support for disabling remote enum fetching, giving offline or air-gapped deployments control over schema resolution behaviour.
- ›Adds support for changing the schema in Code Analysis tools, enabling custom schema configurations.
- ›Adds a new Testing tool to the local toolset.
- v0.5.22
Composio v0.5.22 adds a SWE Autogen template and re-enables Pusher on listen.
└──▷ GET THIS VERSION$ git clone --branch v0.5.22 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.22
- ›Adds a SWE (Software Engineering) Autogen template for automating software engineering agent workflows.
- ›Re-enables Pusher on
listento restore real-time event connectivity.
- v0.5.20
Composio v0.5.20 adds a JavaScript CLI and file upload/download support.
└──▷ GET THIS VERSION$ git clone --branch v0.5.20 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.20
- ›Adds Composio CLI for JavaScript, enabling JS-based workflows to manage Composio directly from the command line.
- ›Adds file upload and download support.
- v0.5.17
Composio v0.5.17 adds a client Pusher key environment variable for real-time connection configuration.
└──▷ GET THIS VERSION$ git clone --branch v0.5.17 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.17
- ›Adds a client Pusher key environment variable for configuring real-time push connections.
- v0.5.11
Composio v0.5.11 adds
composio triggers showcommand for inspecting trigger details from the CLI.└──▷ GET THIS VERSION$ git clone --branch v0.5.11 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.11
└──▷ TRY ITInspect the details of a configured trigger without leaving the terminal.$ composio triggers show- ›Adds
composio triggers showsubcommand to inspect trigger details directly from the CLI.
- ›Adds
- v0.5.7
Composio v0.5.7 adds AgentOps integration and a new website roaster tool.
└──▷ GET THIS VERSION$ git clone --branch v0.5.7 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.7
- ›Adds AgentOps integration for agent observability and monitoring.
- ›Adds
website_roastertool for website analysis. - ›Adds logging support to the core client.
- v0.5.0
Composio v0.5.0 adds human-in-the-loop support and removes legacy auth endpoints.
└──▷ GET THIS VERSION$ git clone --branch v0.5.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.5.0
- ›Adds human-in-the-loop workflow capability, enabling agent actions to pause and await human approval or input before proceeding.
- ›Removes auth endpoints, consolidating authentication surface.
└──▷ BREAKING ON UPGRADE- !Auth endpoints have been removed; integrations relying on those endpoints will break on upgrade.
- v0.4.5
Composio v0.4.5 adds OpenAPI-spec-based JavaScript SDK generation.
└──▷ GET THIS VERSION$ git clone --branch v0.4.5 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.4.5
- ›Generates a JavaScript SDK directly from the OpenAPI spec, enabling JS-native integration with Composio's action and trigger surfaces.
- v0.4.3
Composio v0.4.3 adds processors and metadata as plugin toolset arguments and a new frontend agent.
└──▷ GET THIS VERSION$ git clone --branch v0.4.3 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.4.3
- ›Adds
processorsandmetadataas plugin toolset arguments, enabling per-plugin configuration of request/response processing and contextual metadata. - ›Adds a frontend agent capability to the platform.
- ›Adds
- v0.4.2
Composio v0.4.2 adds Vercel AI SDK and Phidata integrations plus pre/post action processors
└──▷ GET THIS VERSION$ git clone --branch v0.4.2 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.4.2
- ›Adds
pre/postaction processors and top-level metadata config support, enabling hooks to run before and after any action execution. - ›New Vercel AI SDK integration, allowing Composio tools to be used directly within Vercel AI workflows.
- ›New Phidata plugin, adding Composio support for the Phidata agent framework.
- ›Updates e2b sandbox support in the JS SDK (bumped to v0.1.12).
- ›Adds
- v0.4.1
Composio v0.4.1 adds browser tool support, LangGraph scaffolding, system tools, and a LlamaIndex agent integration.
└──▷ GET THIS VERSION$ git clone --branch v0.4.1 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.4.1
- ›Adds a browser tool integration for agent-driven web interaction.
- ›Adds LangGraph scaffolding to support LangGraph-based agent workflows.
- ›Adds system tools and a Rewind integration example.
- ›Adds a LlamaIndex agent integration.
- ›Enables API key retrieval from login credentials, streamlining authentication setup.
- v0.3.29
Composio v0.3.29 adds SWE Docker images and auto-login when adding tools.
└──▷ GET THIS VERSION$ git clone --branch v0.3.29 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.29
- ›Adds SWE Docker images for sandboxed software-engineering agent workflows.
- ›Adds auto-login flow when adding a tool via
composio add, reducing manual authentication steps.
- v0.3.28
Composio v0.3.28 adds a JavaScript SWE (Software Engineering) agent example and accompanying JS SWE documentation.
└──▷ GET THIS VERSION$ git clone --branch v0.3.28 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.28
- ›Adds a JavaScript SWE (Software Engineering) agent example, expanding Composio's agentic workflow support to JS environments.
- v0.3.26
Composio v0.3.26 adds
COMPOSIO_BASE_URLconfig, JS SDK workspace support, and an in-memory file manager.└──▷ GET THIS VERSION$ git clone --branch v0.3.26 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.26
- ›Adds
COMPOSIO_BASE_URLenvironment variable to configure the base URL for the Composio service. - ›Adds workspace support to the JavaScript SDK.
- ›Adds an in-memory file manager.
- ›Passes OAuth scope through the authorization flow.
- ›Adds a CLI release flow.
+1 moreshow less
- ›Adds a Docker release flow.
- ›Adds
- v0.3.24
Composio v0.3.24 adds OAuth scope selection when adding connections and automatic GitHub token retrieval for agent workspaces.
└──▷ GET THIS VERSION$ git clone --branch v0.3.24 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.24
- ›Adds support for specifying OAuth scopes when adding a connection via
composio add. - ›Reads GitHub access token automatically from the Composio account for agent workspaces, removing the need to supply it manually.
- ›Switches Docker-based agent workspaces to use the tooling server.
- ›Adds support for specifying OAuth scopes when adding a connection via
- v0.3.21
Composio v0.3.21 adds LangGraph plugin, FlyIO workspace, paramiko shell sessions, code indexing, and new toolset methods.
└──▷ GET THIS VERSION$ git clone --branch v0.3.21 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.21
- ›Adds
get_agent_instructionmethod to the toolset for retrieving agent instructions directly from tool configurations. - ›Adds
file_uploadableoption to support file upload capabilities in tool definitions. - ›Adds 'Add integration by id' function for retrieving integrations by their identifier.
- ›Introduces a LangGraph plugin, enabling Composio tool use within LangGraph agent workflows.
- ›Integrates paramiko for interactive shell sessions, enabling SSH-based interactive execution environments.
+3 moreshow less
- ›Adds FlyIO workspace support for running agent workloads on FlyIO infrastructure.
- ›Adds code indexing capability for semantic search and navigation over codebases.
- ›Adds a scheduler agent example built with CrewAI.
- ›Adds
- v0.3.19
Composio v0.3.19 adds an
@actiondecorator for custom actions and a new Spider scraper & crawler tool integration.└──▷ GET THIS VERSION$ git clone --branch v0.3.19 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.19
- ›Adds
@actiondecorator (importable at top level) to define custom actions directly in Python code. - ›Adds Spider scraper and crawler tool integration for web scraping and crawling workflows.
- ›Ports Docker utilities to
swekitfor software-engineering kit workflows.
- ›Adds
- v0.3.17
Composio v0.3.17 adds Camel-AI plugin, Cloudflare AI integration, Zep tool, multi-workspace support, and shell exit code reading.
└──▷ GET THIS VERSION$ git clone --branch v0.3.17 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.17
- ›Adds
$COMPOSIO_DEV_MODEenvironment variable for development mode configuration. - ›Adds
composio-camelplugin, integrating Composio with the Camel-AI framework. - ›Adds Cloudflare AI as a supported integration.
- ›Adds
zepas a supported tool within Composio. - ›Adds a
composio-corepackage for core library functionality.
+6 moreshow less
- ›Adds support for reading exit codes on shells, enabling more reliable shell-based workflows.
- ›Adds support for multiple workspaces, allowing concurrent isolated execution environments.
- ›Adds support for user inputs within agent workflows.
- ›Adds a Slack assistant integration.
- ›Enables end-to-end evaluation on Composio-hosted Docker images.
- ›Sets up host shell using Docker scripts for SWE agent environments.
- ›Adds
- v0.3.14
Composio v0.3.14 adds runtime headers, score retrieval, and per-app action iteration.
└──▷ GET THIS VERSION$ git clone --branch v0.3.14 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.14
- ›Adds
x-sourceandx-runtimeheaders to API requests, enabling runtime context to be passed with each call. - ›Supports iterating over actions for a specific app, allowing targeted enumeration of available actions per integration.
- ›Adds score retrieval capability to the API.
- ›Adds
- v0.3.13
Composio v0.3.13 adds use-case action search, text-driven argument generation, and API key validation on login.
└──▷ GET THIS VERSION$ git clone --branch v0.3.13 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.13
- ›Adds support for searching actions by use case, letting practitioners find relevant actions without knowing exact action names.
- ›Adds support for using user-provided text to generate function arguments automatically.
- ›Adds API key validation at login time, surfacing invalid credentials immediately.
- ›Restructures Composio SWE (software engineering agent) layout to make it simpler to edit and extend.
- ›Migrates to a monorepo structure unifying the Python SDK, JavaScript SDK, and docs.
- v0.3.11
Composio v0.3.11 adds a CLI for SWE workflows.
└──▷ GET THIS VERSION$ git clone --branch v0.3.11 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.11
- ›Adds a CLI for SWE (Software Engineering agent) workflows.
- v0.3.10
Composio v0.3.10 adds a LlamaIndex extension, a submit-patch command, and local tool support without an API key.
└──▷ GET THIS VERSION$ git clone --branch v0.3.10 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.10
- ›Adds
submit patchcommand for submitting patches directly from the CLI. - ›Adds LlamaIndex extension, enabling Composio integration with LlamaIndex workflows.
- ›Enables use of local tools without requiring an API key.
- ›Adds
- v0.3.9
Composio v0.3.9 adds trigger error handling, entity trigger functions, file upload/download support, and SWE benchmark evaluation.
└──▷ GET THIS VERSION$ git clone --branch v0.3.9 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.9
- ›Adds trigger error tracking and trigger functions for entity objects, expanding event-driven automation capabilities.
- ›Adds local file upload handling, enabling agents to upload files from the local workspace.
- ›Adds download response handling for file-type action results, enabling agents to receive and process file downloads.
- ›Includes
local_workspaceconfig directory in the distribution package, making local workspace tooling available out of the box. - ›Adds SWE benchmark evaluation support for measuring agent performance on software-engineering tasks.
+3 moreshow less
- ›Adds 'did you mean' suggestions to the CLI for mistyped commands, reducing friction during tool configuration.
- ›Adds unexpected error tracking via Sentry for improved observability of runtime failures.
- ›CLI
composio appscommand now displays app keys instead of display names for more reliable programmatic reference.
- v0.3.9rc4
Composio v0.3.9rc4 adds local file upload handling and file-based download response support.
└──▷ GET THIS VERSION$ git clone --branch v0.3.9rc4 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.9rc4
- ›Adds handling for local file uploads, enabling files to be submitted directly through the integration layer.
- ›Adds handling for download responses written to file, supporting file-based output from API responses.
- v0.3.9-rc.3
Composio v0.3.9-rc.3 adds trigger functions for entity support.
└──▷ GET THIS VERSION$ git clone --branch v0.3.9-rc.3 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.9-rc.3
- ›Adds trigger functions for entity, enabling entities to subscribe to and handle triggers programmatically.
- v0.3.9-rc.2
Composio v0.3.9-rc.2 adds Sentry error tracking, bundles local_workspace config, and surfaces app keys in the CLI.
└──▷ GET THIS VERSION$ git clone --branch v0.3.9-rc.2 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.9-rc.2
- ›Includes
local_workspaceconfig directory in the distributed package, enabling local workspace configurations to ship with the tool. - ›Shows app keys instead of app names in
composio appsCLI output, making programmatic references more actionable. - ›Adds unexpected error tracking via Sentry for improved observability of runtime failures.
- ›Adds SWE benchmark evaluation support for assessing agent performance.
- ›Includes
- v0.3.9-rc.1
Composio v0.3.9-rc.1 adds 'did you mean' suggestions and improved CLI help text.
└──▷ GET THIS VERSION$ git clone --branch v0.3.9-rc.1 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.9-rc.1
- ›Adds 'did you mean' suggestions to the CLI when a user miskeys a command or app name.
- ›Improves CLI help text for clearer guidance on available commands and options.
- ›Makes app name matching in
composio addcase-insensitive.
- v0.3.5
Composio v0.3.5 adds RAG and web tools alongside restructured local-tool types.
└──▷ GET THIS VERSION$ git clone --branch v0.3.5 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.5
- ›Adds RAG and web tool integrations as new local tools.
- ›Updates enums for local tools with improved type structure.
- v0.3.0
Composio v0.3.0 adds Claude & Griptape plugins, no-auth entity support, local tools, and connection filtering by ID.
└──▷ GET THIS VERSION$ git clone --branch v0.3.0 https://github.com/ComposioHQ/composio.git # already have the repo? check out this version: $ git checkout v0.3.0
- ›Adds support for filtering connections using a connection ID.
- ›Adds no-auth entity support, enabling action execution without authentication.
- ›Adds Claude and Griptape plugins for agent integrations.
- ›Adds local tools support.
- ›Adds a scheduler enum and scheduler usage examples.
+1 moreshow less
- ›Adds user image support for direct and isolated script execution.