dench tool interface. Instead of installing separate integrations or using the Composio CLI directly, you route all external tool calls through Dench. This ensures every action is tied to an authenticated agent session, logged in the workspace, and subject to approval enforcement.
Supported integrations
GitHub, Slack, Gmail, Stripe, Linear, Google Drive, Notion, Salesforce, HubSpot, Google Calendar, Obsidian, LinkedIn, Asana, Monday, ClickUp, PostHog, Google Sheets, Apple Notes — and more.dench apps
List all connected external apps for the current session. This is an alias for dench tool status with no toolkit argument.
invalid_gateway_api_key, do not retry in a loop. Ask a workspace admin to repair or rotate the Dench gateway key, then rerun the same command.
dench tool status
Check the connection status for all apps, or for a specific toolkit.
The name of the toolkit to inspect. Omit to list all connected apps.
dench tool connect
Start the connection flow for an external toolkit. The command returns a URL for the human to open and approve in their browser.
The name of the toolkit to connect. Must match a supported integration name.
dench tool status <toolkit> to confirm the connection is active.
If the gateway key is missing or bad, connection and search commands return a repairable error with code and nextActions in --json mode.
dench tool search
Find available tools across connected apps. Start with the default compact output, which shows ranked results with slug, toolkit, approval requirement, and connection status.
A natural-language description of what you want to do. Pass it as the first positional argument.
Limit results to a specific toolkit.
Maximum number of results to return. Defaults to 20.
Force compact output. Compact is the default; this flag has no effect unless you are overriding a previous flag.
Add
--json only when you need full raw schemas or exact argument details. The default compact output includes everything needed to identify the right tool and run it.Compact output format
Each result in compact mode shows:- slug — the exact identifier to pass to
dench tool run - toolkit — the connected app it belongs to
- approval — whether the tool is
read-only(safe to run directly) orapproval likely(needs a human check) - connected — whether the app is currently connected
dench tool run
Run an external tool action through Dench.
The exact tool slug returned by
dench tool search. Pass it as the first positional argument.A JSON object of arguments for the tool. Must be valid JSON. Enclose in single quotes to prevent shell expansion.If JSON parsing fails, retry with a quoted object:
The connected account ID to use when the toolkit has multiple connected accounts.
The approval ID returned by a previous
requiresApproval response. Include this after the human has confirmed the action in chat.Read-only tools
Tool slugs containingFETCH, GET, LIST, SEARCH, READ, or FIND are considered read-only and run directly without a separate approval request. Dench enforces the final policy.
Actions that require approval
All other tool slugs returnrequiresApproval with an approval ID when Dench determines a human check is needed. Ask the human in chat, then rerun the command with --approval:
Email and sensitive content
When running email tools, prefer sender, subject, date, and short snippets over full message bodies. Do not repeat OTP codes, security codes, passwords, tokens, API keys, or secrets from email content. Non-JSONdench tool run output automatically redacts likely sensitive values such as OTP codes, API keys, and tokens. Use --json only when you need the raw provider response for cases that genuinely require it.