Skip to main content

Prerequisites

  • Node.js 18 or later
  • npm, yarn, pnpm, or bun package manager
  • A Composio API key (get one at app.composio.dev)

Installation

npm install @composio/core

Provider Packages

If you’re using a specific AI framework, install the corresponding provider:
npm install @composio/openai openai

Configuration

Environment Variables

Create a .env file in your project root:
# Required
COMPOSIO_API_KEY=your_api_key_here

# Optional
COMPOSIO_BASE_URL=https://backend.composio.dev  # Custom API endpoint
COMPOSIO_LOG_LEVEL=info                         # silent, error, warn, info, debug
COMPOSIO_DISABLE_TELEMETRY=false                # Disable usage analytics

Initialize the SDK

import { Composio } from '@composio/core';

// Reads COMPOSIO_API_KEY from environment
const composio = new Composio();

Verification

Verify your installation by listing available toolkits:
import { Composio } from '@composio/core';

const composio = new Composio();

// List all available toolkits
const toolkits = await composio.toolkits.get({});
console.log(`Available toolkits: ${toolkits.items.length}`);

// Get tools from a specific toolkit
const githubTools = await composio.tools.getRawComposioTools({
  toolkits: ['github'],
  limit: 5
});
console.log(`GitHub tools: ${githubTools.length}`);

Platform Support

The Composio SDK works in multiple JavaScript environments:

Node.js

Full support for all features including file uploads and webhooks.
import { Composio } from '@composio/core';

Cloudflare Workers

Lightweight runtime optimized for edge computing:
import { Composio } from '@composio/cloudflare';

export default {
  async fetch(request: Request, env: Env, ctx: ExecutionContext) {
    const composio = new Composio({ apiKey: env.COMPOSIO_API_KEY });
    
    const tools = await composio.tools.get('default', 'GITHUB_GET_REPOS');
    
    // Ensure telemetry flushes before worker terminates
    ctx.waitUntil(composio.flush());
    
    return new Response(JSON.stringify(tools));
  }
};

Deno

Import from npm specifiers:
import { Composio } from 'npm:@composio/core';

const composio = new Composio();

Browser (Beta)

Use with caution - API keys should not be exposed in browser environments:
import { Composio } from '@composio/core';

// Only for demo purposes - use a backend proxy in production
const composio = new Composio({ apiKey: 'public-key' });

Configuration Options

All available configuration options:
apiKey
string
Your Composio API key. Can also be set via COMPOSIO_API_KEY environment variable.
baseURL
string
default:"https://backend.composio.dev"
Custom API endpoint. Useful for self-hosted deployments.
provider
Provider
default:"OpenAIProvider"
The AI framework provider to use for tool formatting.
allowTracking
boolean
default:true
Enable anonymous usage analytics to help improve the SDK.
autoUploadDownloadFiles
boolean
default:true
Automatically handle file uploads and downloads during tool execution.
toolkitVersions
object
Specify versions for toolkits. Omit to use latest.
toolkitVersions: {
  github: '20250909_00',
  slack: '20250902_00'
}
disableVersionCheck
boolean
default:false
Disable automatic SDK version checking.
defaultHeaders
object
Custom headers to include in all API requests.
defaultHeaders: {
  'x-request-id': '12345',
  'x-custom-header': 'value'
}

Next Steps

Composio Class

Learn the main SDK class

Tools API

Work with tools

Providers

Choose your AI framework

Examples

Browse examples

Build docs developers (and LLMs) love