Token导航 LogoToken导航TokenDH.com
研究检索敏感数据github未标认证来源可访问许可证需确认审计提醒

composiocomposio 搜索

Agent Skill

composio 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

30,888

周安装

1,267

GitHub Stars

9

下载量

10,816
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:composio(composio 搜索)
来源仓库:https://github.com/starchild-ai-agent/official-skills
仓库路径:skills/composio
安装命令:
npx skills add https://github.com/starchild-ai-agent/official-skills --skill composio
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/starchild-ai-agent/official-skills --skill composio

简介

composio 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中根据关键词、任务场景或来源线索快速定位候选结果。

  • 适用于研究检索类任务,常用于多工具集成或工作流自动化支持。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装,需确认权限范围和操作边界。
  • 安装前建议核实维护状态、是否会触发联网或文件读写,避免影响系统安全。
  • 具体用法请参考原始 README 和 SKILL.md 文件内容。

SKILL.md

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.

curl -s -X POST $GATEWAY/internal/search \
  -H "Content-Type: application/json" \
  -d '{"query": "send email via gmail"}'

Response (compact):

{
  "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.

curl -s -X POST $GATEWAY/internal/tool_schema \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLECALENDAR_EVENTS_LIST"}'

Response:

{
  "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.

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:

{"data": {"messages": [...]}, "error": null}

On failure — includes tool_schema so you can self-correct:

{
  "data": null,
  "error": "Missing required parameter: calendarId",
  "tool_schema": {
    "tool_slug": "GOOGLECALENDAR_EVENTS_LIST",
    "description": "...",
    "input_parameters": {"properties": {...}, "required": [...]}
  }
}

4. List User's Connections

curl -s $GATEWAY/internal/connections

5. Initiate New Connection

curl -s -X POST $GATEWAY/api/connect \
  -H "Content-Type: application/json" \
  -d '{"toolkit": "gmail"}'

Returns connect_url for the user to complete OAuth.

6. Disconnect

curl -s -X DELETE $GATEWAY/api/connections/{connection_id}

Optimal Workflow (minimize tool calls)

Known tool → Direct execute (1 call)

If you already know the tool slug and parameters from previous use or the Common Tools table below, skip search entirely:

curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLECALENDAR_EVENTS_LIST", "arguments": {"calendarId": "primary", "timeMin": "2026-04-02T00:00:00+08:00", "timeMax": "2026-04-09T00:00:00+08:00", "singleEvents": true, "timeZone": "Asia/Hong_Kong"}}'

Unknown tool → Search + Schema + Execute (2-3 calls)

  1. Search (compact) → pick the right tool slug
  2. Get schema (if param details unclear) → know exact argument format
  3. Execute → with correct arguments

If execute fails, the error response includes the full schema — so you can retry immediately without an extra schema call.

Wrap in a script for repeat use

For recurring queries, write a one-shot Python script:

#!/usr/bin/env python3
import sys, json, requests
from datetime import datetime, timedelta, timezone

GATEWAY = "http://composio-gateway.flycast"
days = int(sys.argv[1]) if len(sys.argv) > 1 else 7
tz_name = sys.argv[2] if len(sys.argv) > 2 else "UTC"

# ... build timeMin/timeMax ...
resp = requests.post(f"{GATEWAY}/internal/execute", json={
    "tool": "GOOGLECALENDAR_EVENTS_LIST",
    "arguments": {"calendarId": "primary", "timeMin": t_min, "timeMax": t_max,
                   "singleEvents": True, "timeZone": tz_name}
}).json()

# ... format and print ...

Then future calls are just: bash("python3 scripts/calendar_events.py 7 Asia/Hong_Kong")1 tool call.

Common Tools Quick Reference (skip search for these)

📧 Gmail

Tool SlugPurposeKey Arguments
GMAIL_SEND_EMAILSend emailto, subject, body, cc, bcc
GMAIL_FETCH_EMAILSFetch emailsmax_results (int), label_ids (list), q (Gmail search syntax)
GMAIL_CREATE_EMAIL_DRAFTCreate draftto, subject, body

Gmail Usage Examples:

# Send email
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GMAIL_SEND_EMAIL", "arguments": {"to": "user@example.com", "subject": "Hello", "body": "Hi there!"}}'

# Fetch last 5 emails
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GMAIL_FETCH_EMAILS", "arguments": {"max_results": 5}}'

# Search specific emails (using Gmail search syntax)
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GMAIL_FETCH_EMAILS", "arguments": {"max_results": 10, "q": "from:github.com after:2026/03/01"}}'

Gmail Response Parsing: Email data is in data.data.messages[], each email has id, snippet, payload.headers[] (From/Subject/Date are in headers, lookup by name).

🐦 Twitter

Tool SlugPurposeKey Arguments
TWITTER_CREATION_OF_A_POSTCreate posttext (required), media_media_ids, reply_in_reply_to_tweet_id
TWITTER_POST_DELETE_BY_POST_IDDelete postid
TWITTER_POST_LOOKUP_BY_POST_IDGet single tweetid, tweet_fields
TWITTER_RECENT_SEARCHSearch last 7 daysquery, max_results (min 10)
TWITTER_USER_LOOKUP_MEGet own profile(no params)
TWITTER_USER_LOOKUP_BY_USERNAMEGet user profileusername

Twitter Usage Examples:

# Post tweet
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "TWITTER_CREATION_OF_A_POST", "arguments": {"text": "Hello from Composio!"}}'

# Delete tweet
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "TWITTER_POST_DELETE_BY_POST_ID", "arguments": {"id": "2039756730192601584"}}'

Twitter Response Structure: Post/create returns data.data.data (3-level nesting), contains id, text, edit_history_tweet_ids.

⚠️ Twitter Limitations & Fallback:

  • TWITTER_RECENT_SEARCH only covers last 7 days, older tweets won't appear
  • TWITTER_FULL_ARCHIVE_SEARCH requires Twitter API Pro access, regular OAuth App can't use it
  • When fetching user tweet history, prefer platform native tool twitter_user_tweets, not limited to 7 days

📅 Google Calendar

Tool SlugPurposeKey Arguments
GOOGLECALENDAR_EVENTS_LISTList eventscalendarId (default: "primary"), timeMin, timeMax (RFC3339+tz), singleEvents (true), timeZone
GOOGLECALENDAR_CREATE_EVENTCreate eventcalendarId, summary, start, end, description, attendees
GOOGLECALENDAR_DELETE_EVENTDelete eventcalendarId, eventId

🐙 GitHub

Tool SlugPurposeKey Arguments
GITHUB_CREATE_AN_ISSUECreate issueowner, repo, title, body, labels, assignees
GITHUB_LIST_REPOSITORY_ISSUESList issuesowner, repo, sort, state (open/closed/all), page, per_page
GITHUB_GET_AN_ISSUEGet issue detailowner, repo, issue_number
GITHUB_CREATE_A_PULL_REQUESTCreate PRowner, repo, title, head, base, body, draft
GITHUB_LIST_PULL_REQUESTSList PRsowner, repo, state, sort, head, base
GITHUB_MERGE_A_PULL_REQUESTMerge PRowner, repo, pull_number, commit_title, sha
GITHUB_GET_A_REPOSITORYGet repo infoowner, repo
GITHUB_SEARCH_CODESearch codeq (GitHub search syntax), sort, order, per_page
GITHUB_GET_REPOSITORY_CONTENTGet file contentowner, repo, path, ref
# Create issue
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GITHUB_CREATE_AN_ISSUE", "arguments": {"owner": "myorg", "repo": "myrepo", "title": "Bug: login fails", "body": "Steps to reproduce..."}}'

# List open issues
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GITHUB_LIST_REPOSITORY_ISSUES", "arguments": {"owner": "myorg", "repo": "myrepo", "state": "open", "per_page": 10}}'

📝 Notion

Tool SlugPurposeKey Arguments
NOTION_CREATE_NOTION_PAGECreate pageparent_id, title, markdown, icon, cover
NOTION_SEARCH_NOTION_PAGESearch pages/DBsquery, filter_value (page/database), page_size
NOTION_QUERY_DATABASE_WITH_FILTERQuery DB rowsdatabase_id, filter, sorts, page_size
NOTION_INSERT_ROW_DATABASEAdd DB rowdatabase_id, properties
NOTION_UPDATE_ROW_DATABASEUpdate DB rowrow_id, properties, icon, cover
NOTION_FETCH_DATABASEGet DB schemadatabase_id
NOTION_FETCH_BLOCK_CONTENTSGet page contentblock_id (= page_id)
NOTION_ADD_MULTIPLE_PAGE_CONTENTAdd blocksparent_block_id, content_blocks, after
NOTION_UPDATE_PAGEUpdate page propspage_id, properties, icon, cover, archived
NOTION_DELETE_BLOCKDelete/archive blockblock_id
# Search pages
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "NOTION_SEARCH_NOTION_PAGE", "arguments": {"query": "Meeting Notes", "page_size": 5}}'

# Query database with filter
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "NOTION_QUERY_DATABASE_WITH_FILTER", "arguments": {"database_id": "abc123", "filter": {"property": "Status", "select": {"equals": "In Progress"}}, "page_size": 10}}'

📁 Google Drive

Tool SlugPurposeKey Arguments
GOOGLEDRIVE_CREATE_FILE_FROM_TEXTCreate filefile_name, text_content, mime_type, parent_id
GOOGLEDRIVE_FIND_FILESearch filesq (Drive search syntax), fields, spaces
GOOGLEDRIVE_DOWNLOAD_FILEDownload filefileId, mime_type
GOOGLEDRIVE_COPY_FILECopy filefileId
GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCEShare filefileId, role, type, emailAddress
# Search files by name
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLEDRIVE_FIND_FILE", "arguments": {"q": "name contains '\''report'\'' and mimeType != '\''application/vnd.google-apps.folder'\''"}}'

# Create text file
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLEDRIVE_CREATE_FILE_FROM_TEXT", "arguments": {"file_name": "notes.txt", "text_content": "Hello World"}}'

Google Drive Search Syntax (q param): name contains 'keyword', mimeType = 'application/vnd.google-apps.folder' (folders), '<folderId>' in parents (files in folder), modifiedTime > '2026-01-01'.

📄 Google Docs

Tool SlugPurposeKey Arguments
GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWNCreate doc from markdowntitle, markdown_text
GOOGLEDOCS_GET_DOCUMENT_PLAINTEXTGet doc as textdocument_id, include_tables, include_headers
GOOGLEDOCS_GET_DOCUMENT_BY_IDGet raw doc objectid
# Create doc with markdown content
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLEDOCS_CREATE_DOCUMENT_MARKDOWN", "arguments": {"title": "Meeting Notes", "markdown_text": "# Q2 Planning\n\n- Item 1\n- Item 2"}}'

# Read doc as plain text
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLEDOCS_GET_DOCUMENT_PLAINTEXT", "arguments": {"document_id": "1abc...xyz"}}'

📊 Google Sheets

Tool SlugPurposeKey Arguments
GOOGLESHEETS_CREATE_GOOGLE_SHEET1Create spreadsheettitle
GOOGLESHEETS_GET_SHEET_NAMESList sheets in spreadsheetspreadsheet_id, exclude_hidden
GOOGLESHEETS_BATCH_GETRead cell valuesspreadsheet_id, ranges (list, A1 notation), majorDimension, valueRenderOption
GOOGLESHEETS_UPDATE_VALUES_BATCHWrite cell valuesspreadsheet_id, data (list of {range, values}), valueInputOption
GOOGLESHEETS_SPREADSHEETS_VALUES_APPENDAppend rowsspreadsheetId, range, values, valueInputOption, insertDataOption
GOOGLESHEETS_SPREADSHEETS_VALUES_BATCH_CLEARClear rangesspreadsheet_id, ranges
GOOGLESHEETS_GET_SPREADSHEET_INFOGet full spreadsheet metadataspreadsheet_id
GOOGLESHEETS_UPDATE_SHEET_PROPERTIESUpdate sheet propsspreadsheet_id, sheet_id, title, index
# Read cells
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLESHEETS_BATCH_GET", "arguments": {"spreadsheet_id": "1abc...xyz", "ranges": ["Sheet1!A1:D10"]}}'

# Write cells
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLESHEETS_UPDATE_VALUES_BATCH", "arguments": {"spreadsheet_id": "1abc...xyz", "valueInputOption": "USER_ENTERED", "data": [{"range": "Sheet1!A1:B2", "values": [["Name", "Score"], ["Alice", 95]]}]}}'

# Append rows
curl -s -X POST $GATEWAY/internal/execute \
  -H "Content-Type: application/json" \
  -d '{"tool": "GOOGLESHEETS_SPREADSHEETS_VALUES_APPEND", "arguments": {"spreadsheetId": "1abc...xyz", "range": "Sheet1!A:B", "valueInputOption": "USER_ENTERED", "values": [["Bob", 88], ["Charlie", 92]]}}'

⚠️ Google Sheets Notes:

  • valueInputOption: "USER_ENTERED" (parses formulas/numbers) or "RAW" (literal text)
  • ranges uses A1 notation: "Sheet1!A1:D10", "Sheet1!A:A" (entire column)
  • BATCH_GET returns data.data.valueRanges[].values (2D array)
  • spreadsheetId vs spreadsheet_id: some tools use camelCase, some snake_case — check schema if unsure

Important Notes

  • Tool slugs are UPPERCASE: GMAIL_SEND_EMAIL
  • Toolkit slugs are lowercase: gmail, github
  • Arguments key: always use "arguments", never "params"params silently gets ignored
  • Time parameters: use RFC3339 with timezone offset (2026-04-08T00:00:00+08:00), not UTC unless intended
  • OAuth tokens are managed by Composio — auto-refreshed on expiry
  • Response nesting: Composio execute response is usually data.data, but Twitter is data.data.data (3 levels). Parse by recursively accessing data.
  • Native tool fallback: When Composio tools have limitations (e.g., Twitter search only 7 days), prefer platform built-in native tools (e.g., twitter_user_tweets)

Common Issues

Gmail Nested JSON Parsing

Gmail returns complex JSON structure with multiple levels of HTML content. Do not try to parse nested strings with json.loads. Access directly as dict in Python — gateway already returns parsed JSON.


适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.3%
按下载量换算3,602

Claude

32.42%
按下载量换算3,507

Cursor

20.73%
按下载量换算2,242

Gemini CLI

8.49%
按下载量换算918

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills