
Composio
Wire your Starchild or Fly-hosted agent to Gmail, Slack, GitHub, Calendar, and Notion through Composio’s gateway without managing SDK keys in the container.
Install
npx skills add https://github.com/starchild-ai-agent/official-skills --skill composioWhat is this skill?
- Acts on 1000+ apps (Gmail, Slack, GitHub, Google Calendar, Notion, etc.) through one gateway
- Gateway base `http://composio-gateway.flycast` on Fly 6PN—no COMPOSIO_API_KEY in the agent
- Compact tool search plus execute flows documented against composio-gateway.fly.dev
- User-invocable Starchild skill (v1.2.3) with emoji metadata for catalog discovery
- Auth resolved from Fly IPv6 to user_id via billing DB—no extra env vars in the agent
Adoption & trust: 3.1k installs on skills.sh; 13 GitHub stars; 0/3 security scanners passed (skills.sh audits).
Recommended Skills
Journey fit
Connected SaaS actions are implemented while you are building agent capabilities and product integrations, not during idea research or post-launch SEO. The skill is entirely about calling external apps via the Composio gateway HTTP API—classic integrations work on the build shelf.
Common Questions / FAQ
Is Composio safe to install?
skills.sh reports 0 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Composio
# Composio — External App Integration via Gateway Composio lets users connect 1000+ external apps (Gmail, Slack, GitHub, Google Calendar, Notion, etc.) to their Starchild agent. All operations go through the **Composio Gateway** (`composio-gateway.fly.dev`), which handles auth and API key management. ## Architecture ``` Agent (Fly 6PN network) ↓ HTTP (auto-authenticated by IPv6) Composio Gateway (composio-gateway.fly.dev) ↓ Composio SDK Composio Cloud → Target API (Gmail, Slack, etc.) ``` - **You never touch the COMPOSIO_API_KEY** — the gateway holds it - **You never call Composio SDK directly** — use the gateway HTTP API - **Authentication is automatic** — your Fly 6PN IPv6 resolves to a user_id via the billing DB - **No env vars needed** — the gateway is always accessible from any agent container ## Gateway Base URL ``` GATEWAY = "http://composio-gateway.flycast" ``` All requests use **plain HTTP over Fly internal network** (flycast). No JWT needed. ## API Reference ### 1. Search Tools (compact) Find the right tool slug for a task. Returns **compact** tool info — just slug, description, and parameter names. Enough to pick the right tool. ```bash curl -s -X POST $GATEWAY/internal/search \ -H "Content-Type: application/json" \ -d '{"query": "send email via gmail"}' ``` **Response (compact):** ```json { "results": [{"primary_tool_slugs": ["GMAIL_SEND_EMAIL"], "use_case": "send email", ...}], "tool_schemas": { "GMAIL_SEND_EMAIL": { "tool_slug": "GMAIL_SEND_EMAIL", "toolkit": "gmail", "description": "Send an email...", "parameters": ["to", "subject", "body", "cc", "bcc"], "required": ["to", "subject", "body"] } }, "toolkit_connection_statuses": [...] } ``` ### 2. Get Tool Schema (full) Get the **complete** parameter definitions for a specific tool — types, descriptions, enums, defaults. Use this **after** search when you need exact parameter formats. ```bash curl -s -X POST $GATEWAY/internal/tool_schema \ -H "Content-Type: application/json" \ -d '{"tool": "GOOGLECALENDAR_EVENTS_LIST"}' ``` **Response:** ```json { "data": { "tool_slug": "GOOGLECALENDAR_EVENTS_LIST", "description": "Returns events on the specified calendar.", "input_parameters": { "properties": { "timeMin": {"type": "string", "description": "RFC3339 timestamp..."}, "timeMax": {"type": "string", "description": "RFC3339 timestamp..."}, "calendarId": {"type": "string", "default": "primary"} }, "required": ["calendarId"] } }, "error": null } ``` ### 3. Execute a Tool Execute a Composio tool. **Key name is `arguments`, not `params`.** ```bash curl -s -X POST $GATEWAY/internal/execute \ -H "Content-Type: application/json" \ -d '{"tool": "GMAIL_SEND_EMAIL", "arguments": {"to": "x@example.com", "subject": "Hi", "body": "Hello!"}}' ``` **On success:** ```json {"data": {"messages": [...]}, "error": null} ``` **On failure** — includes tool_schema so you can self-correct: ```json { "data": null, "error": "Missing required parameter: calendarId", "tool_schema": { "tool_slug": "GOOGLECALENDAR_EVENTS_LIST", "description": "...", "input_parameters": {"properties": {...}, "required": [...]} } } ``` ### 4. List User's Connections (and confirm OAuth completion) ```bash # Optional toolkit filter: oauth_completed_active only turns true # when that toolkit status is ACTIVE. curl -s "$GATEWAY/internal/connections?toolkit=gmail" ``` Response includes: - `connections`: current deduplicated connection list - `oauth_completed_active`: boolean, true only when OAut