mcpField
C
composio-cli

composio-cli

github.com/composio-communityProductivity1455 installsUpdated 23w ago
Repository

About composio-cli

composio-cli is a terminal skill for discovering and running SaaS tools through Composio, with managed authentication. It guides users through schema checks, connection verification, dry runs, and execution.

Key features

  1. 01Search and inspect tool schemas
  2. 02Verify toolkit connections
  3. 03Dry-run and execute actions
  4. 04Run multi-step workflows
  5. 05Listen for events
  6. 06Generate typed SDK stubs

Use cases

  1. 01Find a tool for a SaaS task
  2. 02Check required fields before execution
  3. 03Preview a write action before confirming
  4. 04Automate a multi-step workflow

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/composio-community/opencode-skills --skill composio-cli

After installing, type/composio-cliin Claude Code to confirm it loaded.

Details

From the project README

Composio CLI

A unified terminal interface to 1000+ SaaS tools with managed auth. The reliable path is always: discover → inspect schema → ensure connection → execute. Never invent a tool slug; never execute without confirming the connected account.

Setup

curl -fsSL https://composio.dev/install | bash   # install
composio --version
composio login                                   # browser auth
composio whoami                                   # confirm identity

If composio is missing, install first. If whoami fails, the user must composio login (interactive — suggest they run it themselves).

The execution loop

1. Discover the slug (never guess)
composio search "send a slack message" --human
composio search "create issue" --toolkits github
composio tools list github            # all tools in a toolkit
composio tools info GITHUB_CREATE_AN_ISSUE
2. Inspect the schema before calling
composio execute GITHUB_CREATE_AN_ISSUE --get-schema

Map the user's intent onto the required fields. If a required field is unknown, ask — do not fabricate.

3. Ensure the account is connected
composio link github --list      # already connected?
composio link github             # connect if not (interactive)
composio connections list

A tool call against an unconnected toolkit will fail — check first.

4. Dry-run, then execute
composio execute GITHUB_CREATE_AN_ISSUE --dry-run -d '{"owner":"acme","repo":"api","title":"Bug"}'
composio execute GITHUB_CREATE_AN_ISSUE -d '{"owner":"acme","repo":"api","title":"Bug"}'
composio execute SLUG -d @payload.json     # large payloads from file
composio execute SLUG --file ./image.png   # file upload
composio execute -p SLUG_A -d '...' SLUG_B -d '...'   # parallel

For a write/destructive action, dry-run first and confirm with the user before the real call.

Other modes

NeedCommand
Raw authenticated API callcomposio proxy <URL> --toolkit <tk> -X POST -d '{...}'
Subscribe to eventscomposio triggers list <tk> → composio listen <TRIGGER_SLUG> --timeout 5m --max-events 5
Scripted multi-step workflowcomposio run --file ./workflow.ts (preview with --dry-run)
Typed SDK stubscomposio generate ts --toolkits github gmail

Quality bar

  • Slug came from search/tools list, never memory.
  • Schema inspected; payload matches required fields exactly.
  • Connection verified before execute.
  • Write actions dry-run'd and user-confirmed.
  • Missing required input → ask, don't fabricate.

Anti-patterns

  • Guessing a tool slug or payload shape instead of --get-schema.
  • execute before checking connections list → opaque auth failure.
  • Skipping --dry-run on a destructive call.
  • Hardcoding secrets into payloads (Composio manages auth — don't pass tokens).
  • Treating composio login as scriptable; it is interactive — have the user run it.

Comments

Markdown supported