Open Connector
Build agents

SDKs

Use the native Open Connector SDK, or point an existing Composio client at the compatibility API.

Use @open-connector/sdk for new integrations. It calls the native /api/v1 contract and shares its request and response types. The Composio-compatible /composio mount is available when you need to migrate existing @composio/client code.

Install and configure

pnpm add @open-connector/sdk
import { createClient } from "@open-connector/sdk";

const oc = createClient({
  apiKey: process.env.OPEN_CONNECTOR_API_KEY!,
  baseUrl: "https://api.openconnector.dev",
});
pnpm add @composio/client
import Composio from "@composio/client";

const composio = new Composio({
  apiKey: process.env.OPEN_CONNECTOR_API_KEY!,
  baseURL: "https://api.openconnector.dev/composio",
});

For a self-hosted deployment, replace https://api.openconnector.dev with your own origin. Only the Composio client needs the /composio suffix.

Native SDK surface

The native client currently exposes:

  • Connections: initiate, connect, listConnections, getConnection, refreshConnection, revokeConnection, deleteConnection
  • Auth configs: createAuthConfig, listAuthConfigs, getAuthConfig
  • Toolkits and tools: listToolkits, getToolkit, listTools, getTool, executeTool
  • Low-level credential proxy: proxy

Common operations

List connected accounts

const accounts = await oc.listConnections({});

for (const account of accounts.items) {
  console.log(account.id, account.status);
}
const accounts = await composio.connectedAccounts.list({
  toolkit_slugs: "github",
});

for (const account of accounts.items) {
  console.log(account.id, account.status);
}

Start an OAuth connection

const connection = await oc.initiate({
  slug: "github",
  authConfigId: "ac_01j9abc123",
  entityId: "user-from-your-app",
});

console.log(connection.redirectUrl);
const connection = await composio.connectedAccounts.create({
  auth_config: { id: "ac_01j9abc123" },
  connection: { user_id: "user-from-your-app" },
} as any);

console.log(connection.redirect_url);

Execute a tool

const result = await oc.executeTool({
  slug: "GITHUB_CREATE_AN_ISSUE",
  connectedAccountId: "conn_01j9xyz789",
  arguments: {
    owner: "my-org",
    repo: "my-repo",
    title: "Bug found by agent",
    body: "The agent detected an anomaly in production.",
  },
});
const result = await composio.tools.execute("GITHUB_CREATE_AN_ISSUE", {
  connected_account_id: "conn_01j9xyz789",
  arguments: {
    owner: "my-org",
    repo: "my-repo",
    title: "Bug found by agent",
    body: "The agent detected an anomaly in production.",
  },
});

Composio compatibility boundary

The compatibility adapter covers the core connection, auth-config, toolkit, tool discovery, execution, and proxy workflows exercised by the repository's integration tests. Compatibility is route-specific; it is not a promise that every Composio product feature exists.

Events, triggers, and webhooks are currently WIP. Do not build a production workflow around those surfaces until their documentation is promoted from WIP.

Before a production migration, verify the exact methods your agent uses against the live Open Connector API.

On this page