Composio
Overview
Section titled “Overview”Composio is an integration platform that enables AI agents and LLMs to authenticate and interact with more than 500 external applications — including Slack, GitHub, Gmail, Google Sheets, Notion, Stripe, and many others — through standardized function calls. With the Composio integration in SquadOS, your agents can discover available tools, manage connections to external services, execute actions across multiple applications, and build reusable automation workflows (recipes) directly from the chat.
- Composio documentation: docs.composio.dev/toolkits/composio
Authentication
Section titled “Authentication”This tool uses no authentication (NO_AUTH) to connect.
| Field | Required | Description |
|---|---|---|
| N/A | No | This tool does not require credentials. |
How to connect in SquadOS
Section titled “How to connect in SquadOS”- Go to Tools in the side menu (
/admin/tools). - Open the Available tab and search for
Composio. - Click the card to open the details and hit Activate — the tool goes straight to the active list, with no login step. (Connection-flow details in Organization Tools.)
Available actions
Section titled “Available actions”Check active connection (deprecated)
Section titled “Check active connection (deprecated)”COMPOSIO_CHECK_ACTIVE_CONNECTION
Deprecated: use check active connections instead for bulk operations. Check active connection status for a toolkit or specific connected account ID. Returns connection details if active, or required parameters for establishing connection if none exists. Active connections enable agent actions on the toolkit.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
connected_account_id | string | No | Specific connected account ID to check status for |
toolkit | string | No | Name of the toolkit to check |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Check multiple active connections
Section titled “Check multiple active connections”COMPOSIO_CHECK_ACTIVE_CONNECTIONS
Check active connection status for multiple toolkits or specific connected account IDs. Returns connection details if active, or required parameters for establishing connection if none exists. Active connections enable agent actions on toolkits.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
requests | array | Yes | List of connection check requests |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Create Plan
Section titled “Create Plan”COMPOSIO_CREATE_PLAN
A workflow builder that ensures the LLM produces a complete, step-by-step plan for any use case. Should be called after COMPOSIO_SEARCH_TOOLS or COMPOSIO_MANAGE_CONNECTIONS for medium or hard use cases. Outputs a complete plan with sections such as workflow steps, complexity assessment, decision matrix, and failure handling.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
difficulty | string ("medium" | "hard") | Yes | Difficulty level for the plan. Choose "medium" for moderate complexity and "hard" for complex tasks requiring multiple steps or advanced logic. Do not call for easy tasks. |
known_fields | string | Yes | Workflow inputs you already know as comma-separated key:value pairs (e.g. "channel_name:pod-sdk, user_names:John"). Helps the tool infer relevant memories. |
primary_tool_slugs | array | Yes | List of primary tool slugs that can accomplish the main task. Never invent tool slugs; only use ones given by Search. |
reasoning | string | Yes | Short reasoning about the use case and how the selected tools can accomplish it |
related_tool_slugs | array | No | List of related/supporting tool slugs that might be useful. Never invent tool slugs. |
use_case | string | Yes | Detailed explanation of the use case the user is trying to accomplish |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Enable trigger
Section titled “Enable trigger”COMPOSIO_ENABLE_TRIGGER
Enable a specific trigger for the authenticated user.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
config_params | object | No | Configuration parameters for the trigger |
connected_account_id | string | Yes | Connected account ID to enable trigger for |
toolkit_slug | string | Yes | Slug of the toolkit |
trigger_name | string | Yes | Name of the trigger to enable |
user_id | string | No | User ID for the trigger |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Execute Composio Tool
Section titled “Execute Composio Tool”COMPOSIO_EXECUTE_TOOL
Execute a tool using the Composio API.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
allow_destructive | boolean | No | Whether to allow destructive tools to be executed. If true, the tool will be executed even if it is destructive. |
arguments | object | Yes | The arguments to be passed to the tool. The schema of the arguments is present in the retrieve_actions response. |
connected_account_id | string | No | The ID of the connected account to use. If not provided, uses the first active connection for the toolkit. |
tool_slug | string | Yes | The slug of the tool to execute, to be used from the list of tools retrieved using retrieve_actions. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Get Tool Dependency Graph
Section titled “Get Tool Dependency Graph”COMPOSIO_GET_DEPENDENCY_GRAPH
Get the dependency graph for a given tool, showing related parent tools that might be useful. Calls the Composio Labs dependency graph API to retrieve tools that are commonly used together with or before the specified tool, helping discover related tools and understand common workflows.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
tool_name | string | Yes | The name of the tool to get dependency graph for |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Get required parameters for connection
Section titled “Get required parameters for connection”COMPOSIO_GET_REQUIRED_PARAMETERS
Gets the required parameters for connecting to a toolkit via initiate connection. Returns the exact parameter names and types needed for initiate connection’s parameters field. Supports API keys, OAuth credentials, connection fields, and hybrid authentication scenarios. If has_default_credentials is true, you can call initiate connection with empty parameters for a seamless OAuth flow.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
toolkit | string | Yes | Name of the toolkit to analyze for authentication requirements. Returns parameters for API keys, OAuth credentials, or connection fields needed by initiate_connection. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Get response schema
Section titled “Get response schema”COMPOSIO_GET_RESPONSE_SCHEMA
Retrieves the response schema for a specified Composio tool. Fetches the complete response schema definition for any valid Composio tool, returning it as a dictionary that describes the expected response structure.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
tool | string | Yes | Name of the tool. For example: GITHUB_LIST_PULL_REQUESTS. You can find the relevant tool names using the COMPOSIO_RETRIEVE_ACTIONS tool. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Initiate connection
Section titled “Initiate connection”COMPOSIO_INITIATE_CONNECTION
Initiate a connection to a toolkit with comprehensive authentication support. Supports all authentication scenarios: Composio default OAuth (no parameters needed), custom OAuth (user’s client id/secret), API key/bearer token authentication, basic auth (username/password), hybrid scenarios (OAuth + connection fields like site name), and no authentication. Automatically detects and validates auth config versus connection fields.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
parameters | object | No | Authentication parameters for the connection. Structure depends on auth type: API Key: {"generic_api_key": "your_key"}; Bearer Token: {"bearer_token": "your_token"}; Basic Auth: {"username": "user", "password": "pass"}; Custom OAuth: {"client_id": "your_id", "client_secret": "your_secret"}; Connection Fields: {"subdomain": "your_subdomain"}. Leave empty {} for default OAuth flow. Use get_required_parameters to see exact parameter names. |
toolkit | string | Yes | Name of the toolkit to connect (e.g., 'gmail', 'exa', 'github', 'linear') |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
List toolkits
Section titled “List toolkits”COMPOSIO_LIST_TOOLKITS
List all the available toolkits on Composio with filtering options.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
category | string | No | Filter toolkits by category |
min_tools | integer | No | Filter toolkits by minimum number of tools |
name_filter | string | No | Filter toolkits by name/slug |
no_auth_only | boolean | No | Only return toolkits that don’t require authentication |
size | integer | No | Limit the number of results returned |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
List triggers
Section titled “List triggers”COMPOSIO_LIST_TRIGGERS
List available triggers and their configuration schemas.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
toolkit_names | array | No | List of toolkit names to filter triggers. If not provided or empty, all triggers will be returned. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Manage connections
Section titled “Manage connections”COMPOSIO_MANAGE_CONNECTIONS
Create or manage connections to user’s apps. Returns a branded authentication link that works for OAuth, API keys, and all other auth types. If a connection is already active, returns the connection details. Otherwise, returns a redirect URL (redirect_url) to create a new connection.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
toolkits | array | Yes | Toolkit slugs to check or connect. Must be valid toolkit slugs; never invent. Examples: ['gmail', 'github', 'slack', 'googlesheets', 'outlook']. |
reinitiate_all | boolean | No | Force reconnection for all listed toolkits, even if active connections already exist. Use when credentials may be stale or to troubleshoot connection issues. Default: false. |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Multi Execute Composio Tools
Section titled “Multi Execute Composio Tools”COMPOSIO_MULTI_EXECUTE_TOOL
Fast and parallel tool executor for tools discovered through COMPOSIO_SEARCH_TOOLS. Executes up to 50 tools in parallel across apps when they’re logically independent (no ordering or output dependencies). Responses contain structured outputs ready for immediate analysis.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
tools | array | Yes | List of logically independent tools to execute in parallel |
thought | string | No | One-sentence, concise, high-level rationale (no step-by-step) |
sync_response_to_workbench | boolean | Yes | Set true when the response may be large or needed for later scripting. Saves the full response to the workbench while returning an inline preview. |
memory | object | No | Dictionary with app names as keys and string arrays as values. Stores durable facts — stable IDs, mappings, preferences. Never omit — include {} if nothing to remember. |
current_step | string | No | Short enum for the current workflow step (e.g., FETCHING_EMAILS, GENERATING_REPLIES) |
current_step_metric | string | No | Progress metrics for the current step as "done/total units" (e.g., "10/100 emails") |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Run bash commands
Section titled “Run bash commands”COMPOSIO_REMOTE_BASH_TOOL
Execute bash commands in a remote sandbox for file operations, data processing, and system tasks. Essential for handling large tool responses saved to remote files. Hard 3-minute (180s) execution limit — break large tasks into smaller commands.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
command | string | Yes | The bash command to execute. Hard 3-minute (180s) execution limit — break large tasks into smaller commands. |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Execute Code remotely in work bench
Section titled “Execute Code remotely in work bench”COMPOSIO_REMOTE_WORKBENCH
Process remote files or script bulk tool executions using Python code in a persistent remote Jupyter sandbox. Use only when processing data stored in a remote file or when scripting bulk tool executions. If the complete response is already inline/in-memory, do not use this tool.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
code_to_execute | string | Yes | Python to run inside the persistent remote Jupyter sandbox. State (imports, variables, files) is preserved across executions. Hard 3-minute (180s) execution limit — break large tasks into smaller cells. |
thought | string | No | Brief objective for this step |
current_step | string | No | Short enum for the current workflow step |
current_step_metric | string | No | Progress metrics for the current step |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Search Composio Tools
Section titled “Search Composio Tools”COMPOSIO_SEARCH_TOOLS
Discovers relevant tools, recommended execution plans, and common pitfalls for specific use cases. Composio connects 500+ apps — Slack, GitHub, Notion, Google Workspace (Gmail, Sheets, Drive, Calendar), Microsoft (Outlook, Teams), X/Twitter, Figma, web search, browser automation, Meta (Instagram, Meta Ads), TikTok, and more. Always call this tool first when an external app or workflow is mentioned or implied.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
queries | array | Yes | Structured English search queries to process in parallel. Split independent app/API actions into separate queries, including hidden prerequisites. Each query returns 4–6 tools. |
session | object | No | Session context for correlating meta tool calls within a workflow. Use {generate_id: true} for new workflows or {id: "EXISTING_ID"} to continue. |
model | string | No | Client LLM model name (recommended). Used to optimize planning/search behavior. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution. Format: "X out of Y searches failed, reasons: <details>". |
successful | boolean | Yes | Whether all searches completed successfully |
Wait for connection
Section titled “Wait for connection”COMPOSIO_WAIT_FOR_CONNECTION
Wait for connections to be established for given toolkits.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
mode | string ("any" | "all") | No | Wait for ANY connection or ALL connections to reach success/failed state (default: any) |
toolkits | array | Yes | List of toolkit slugs to wait for |
timeout_seconds | integer | No | Maximum time to wait in seconds (default: 300, max: 600) |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Create / Update Recipe from Workflow
Section titled “Create / Update Recipe from Workflow”COMPOSIO_CREATE_UPDATE_RECIPE
Convert an executed workflow into a reusable notebook. Only use when the workflow is complete or the user explicitly requests it.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
recipe_id | string | No | Recipe ID to update (optional). If not provided, a new recipe will be created. |
name | string | Yes | Name for the notebook / recipe. Keep it short (ideally less than five words). |
description | string | Yes | Description for the notebook / recipe |
output_schema | object | Yes | Expected output JSON schema of the notebook / recipe |
input_schema | object | Yes | Expected input JSON schema for the notebook / recipe. Keep simple; all input field types must be string. |
workflow_code | string | Yes | The Python code that implements the workflow. Should include all necessary imports, tool executions (via run_composio_tool), and proper error handling. The notebook should always end with the output cell (not print). |
defaults_for_required_parameters | object | No | Defaults for required parameters of the notebook / recipe |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Execute Recipe
Section titled “Execute Recipe”COMPOSIO_EXECUTE_RECIPE
Executes a recipe.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
recipe_id | string | Yes | Recipe ID to execute |
input_data | object | Yes | Input object to pass to the recipe |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Create / Update Recipe from Workflow (Pydantic)
Section titled “Create / Update Recipe from Workflow (Pydantic)”COMPOSIO_UPSERT_RECIPE
Convert the executed workflow into a recipe using Python Pydantic code. The recipe_slug parameter is required. If a recipe with the provided slug already exists, a new version will be created. The recipe must be defined using Pydantic models extending the ComposioRecipe base class and must implement request/response models and the execute method.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
recipe_slug | string | Yes | Recipe slug identifier (required). CREATE: pass slug WITHOUT the "RECIPE_" prefix (e.g., "weather_lookup" → becomes "RECIPE_WEATHER_LOOKUP_C"). UPDATE: pass the EXACT full slug from the create response. Maximum length: 32 characters. |
name | string | Yes | Name for the notebook / recipe. Keep it short (ideally less than five words). |
description | string | Yes | Description for the notebook / recipe |
recipe_code | string | Yes | The Python Pydantic code that implements the recipe, generated based on the executed workflow. Should include Pydantic models for request and response, and a recipe class extending ComposioRecipe with an execute method. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Get Recipe Details by Slug
Section titled “Get Recipe Details by Slug”COMPOSIO_GET_RECIPE
Get the details of an existing recipe by its slug. Returns the recipe’s name, description, input/output schemas, and the toolkits it uses. Use this to inspect a recipe’s structure before executing it.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
recipe_slug | string | Yes | Recipe slug identifier (e.g., RECIPE_MY_WORKFLOW_C). Use the exact slug returned when the recipe was created. |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Get Existing Recipe Details
Section titled “Get Existing Recipe Details”COMPOSIO_GET_RECIPE_DETAILS
Get the details of an existing recipe by ID.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
recipe_id | string | Yes | Recipe ID |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Wait for connections (plural)
Section titled “Wait for connections (plural)”COMPOSIO_WAIT_FOR_CONNECTIONS
Wait for user auth to finish. Call ONLY after you have shown the auth link from COMPOSIO_MANAGE_CONNECTIONS. Waits until mode any/all toolkits reach a terminal state (ACTIVE/FAILED) or timeout.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
toolkits | array | Yes | List of toolkit slugs to wait for |
mode | string ("any" | "all") | No | Wait for ANY connection or ALL connections to reach active/failed state (default: any) |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |
Get Tool Schemas
Section titled “Get Tool Schemas”COMPOSIO_GET_TOOL_SCHEMAS
Retrieve input schemas for tools by slug. Returns complete parameter definitions required to execute each tool. Only pass tool slugs returned by COMPOSIO_SEARCH_TOOLS — never guess or fabricate slugs.
Input parameters
Section titled “Input parameters”| Name | Type | Required | Description |
|---|---|---|---|
tool_slugs | array | Yes | Array of tool slugs to retrieve schemas for. Pass valid tool slugs; never invent. |
include | array | No | Schema fields to include. Defaults to ["input_schema"]. Include "output_schema" when calling tools in the workbench to validate response structure. |
session_id | string | No | Pass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call |
Output
Section titled “Output”| Name | Type | Required | Description |
|---|---|---|---|
data | string | Yes | Data from the action execution |
error | string | No | Error if any occurred during the execution of the action |
successful | boolean | Yes | Whether or not the action execution was successful |