{
  "schemaVersion": "1.0",
  "item": {
    "slug": "coda",
    "name": "Coda",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/0x7466/coda",
    "canonicalUrl": "https://clawhub.ai/0x7466/coda",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/coda",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=coda",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/coda_cli.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/coda"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/coda",
    "agentPageUrl": "https://openagent3.xyz/skills/coda/agent",
    "manifestUrl": "https://openagent3.xyz/skills/coda/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/coda/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Coda API Skill",
        "body": "Interact with the Coda REST API v1 to manage docs, tables, rows, pages, and automations."
      },
      {
        "title": "When to Use",
        "body": "Use this skill when the user wants to:\n\nList, search, create, or delete Coda docs\nRead from or write to tables (insert, upsert, update, delete rows)\nExplore doc structure (pages, tables, columns, formulas, controls)\nTrigger automations (push buttons)\nExport doc content or analytics"
      },
      {
        "title": "When NOT to Use",
        "body": "Do NOT use for general document editing advice unrelated to the API\nDo NOT use for Pack development (this skill covers Doc management, not Pack creation)\nDo NOT use for operations requiring Doc Maker permissions unless confirmed the user has them"
      },
      {
        "title": "Prerequisites",
        "body": "API Token: Set environment variable CODA_API_TOKEN with your Coda API token\n\nGet token at: https://coda.io/account -> API Settings\n\n\nPython 3.7+ with requests library installed\nPermissions: Some operations (create doc, update doc title, create page) require Doc Maker role in the workspace"
      },
      {
        "title": "CLI Tool Usage",
        "body": "The skill includes a Python CLI tool at scripts/coda_cli.py:\n\n# Setup\nexport CODA_API_TOKEN=\"your_token_here\"\n\n# List docs\npython scripts/coda_cli.py docs list --query \"Project\"\n\n# Get doc info\npython scripts/coda_cli.py docs get <doc-id>\n\n# Create doc\npython scripts/coda_cli.py docs create --title \"My New Doc\"\n\n# List tables in doc\npython scripts/coda_cli.py tables list <doc-id>\n\n# List rows in table\npython scripts/coda_cli.py rows list <doc-id> <table-id>\n\n# Insert row\npython scripts/coda_cli.py rows insert <doc-id> <table-id> --data '{\"Name\": \"Task 1\", \"Status\": \"Done\"}'\n\n# Update row\npython scripts/coda_cli.py rows update <doc-id> <table-id> <row-id> --data '{\"Status\": \"In Progress\"}'\n\n# Delete row (requires confirmation)\npython scripts/coda_cli.py rows delete <doc-id> <table-id> <row-id>\n\n# List pages\npython scripts/coda_cli.py pages list <doc-id>\n\n# Trigger automation (push button)\npython scripts/coda_cli.py automations trigger <doc-id> <button-id>\n\n# Force delete without confirmation (use with caution)\npython scripts/coda_cli.py docs delete <doc-id> --force"
      },
      {
        "title": "1. Doc ID Extraction",
        "body": "Coda doc IDs can be extracted from browser URLs:\n\nURL: https://coda.io/d/_dAbCDeFGH/Project-Tracker\nDoc ID: AbCDeFGH (remove _d prefix)\n\nThe CLI tool accepts both full URLs and raw IDs."
      },
      {
        "title": "2. Rate Limit Handling",
        "body": "The API has strict rate limits:\n\nRead: 100 requests per 6 seconds\nWrite (POST/PUT/PATCH): 10 requests per 6 seconds\nWrite doc content: 5 requests per 10 seconds\nList docs: 4 requests per 6 seconds\n\nThe CLI tool automatically implements exponential backoff for 429 responses."
      },
      {
        "title": "3. Asynchronous Operations",
        "body": "Write operations return HTTP 202 with a requestId. The CLI tool optionally polls for completion using --wait flag."
      },
      {
        "title": "4. Safety Guardrails",
        "body": "Delete Operations (rows, docs, pages, folders):\n\nAlways requires explicit user confirmation in interactive mode\nUse --force flag only in automation/scripts\nShows preview of what will be deleted\n\nPublishing (docs publish):\n\nRequires explicit --confirm-publish flag\nCannot be combined with --force\n\nPermissions (acl commands):\n\nRequires explicit --confirm-permissions flag for any changes\nRead operations (list permissions) are always allowed\n\nAutomation Triggers:\n\nAllowed without special flags but logged\nUser should be aware that automations may trigger notifications or external actions"
      },
      {
        "title": "5. Pagination",
        "body": "List commands support:\n\n--limit: Maximum results (default 25, max varies by endpoint)\n--page-token: For fetching subsequent pages\nCLI auto-follows pages with --all flag"
      },
      {
        "title": "Batch Row Operations",
        "body": "# Insert multiple rows from JSON file\npython scripts/coda_cli.py rows insert-batch <doc-id> <table-id> --file rows.json\n\n# Upsert rows (update if exists, insert if not) using key columns\npython scripts/coda_cli.py rows upsert <doc-id> <table-id> --file rows.json --keys \"Email\""
      },
      {
        "title": "Sync Between Docs",
        "body": "# Export from source\npython scripts/coda_cli.py rows list <source-doc> <table-id> --format json > export.json\n\n# Import to destination\npython scripts/coda_cli.py rows insert-batch <dest-doc> <table-id> --file export.json"
      },
      {
        "title": "Explore Structure",
        "body": "# Get full doc structure\npython scripts/coda_cli.py docs structure <doc-id>\n\n# List all formulas\npython scripts/coda_cli.py formulas list <doc-id>\n\n# List all controls\npython scripts/coda_cli.py controls list <doc-id>"
      },
      {
        "title": "Error Handling",
        "body": "Common HTTP status codes:\n\n400: Bad request (invalid parameters)\n401: Invalid/expired API token\n403: Insufficient permissions (need Doc Maker role)\n404: Resource not found\n429: Rate limited (implement backoff)\n202: Accepted but not yet processed (async operation)"
      },
      {
        "title": "Security Considerations",
        "body": "Token Storage: Never commit CODA_API_TOKEN to version control\nToken Scope: The token has full access to all docs the user can access\nWorkspace Restrictions: Creating docs requires Doc Maker role in target workspace\nData Exposure: Row data may contain sensitive information; handle exports carefully"
      },
      {
        "title": "List and Filter Docs",
        "body": "python scripts/coda_cli.py docs list --is-owner --query \"Project\""
      },
      {
        "title": "Create Doc from Template",
        "body": "python scripts/coda_cli.py docs create --title \"Q4 Planning\" --source-doc \"template-doc-id\""
      },
      {
        "title": "Update Row Status",
        "body": "python scripts/coda_cli.py rows update AbCDeFGH grid-xyz row-123 \\\n  --data '{\"Status\": \"Complete\", \"Completed Date\": \"2024-01-15\"}'"
      },
      {
        "title": "Delete Multiple Rows (with confirmation)",
        "body": "python scripts/coda_cli.py rows delete-batch AbCDeFGH grid-xyz \\\n  --filter '{\"Status\": \"Archived\"}' \\\n  --confirm \"Delete all archived rows?\""
      },
      {
        "title": "Export Table to CSV",
        "body": "python scripts/coda_cli.py rows list AbCDeFGH grid-xyz --format csv > export.csv"
      },
      {
        "title": "Reference",
        "body": "API Documentation: https://coda.io/developers/apis/v1\nOpenAPI Spec: https://coda.io/apis/v1/openapi.yaml\nRate Limits: https://coda.io/developers/apis/v1#section/Rate-Limiting"
      }
    ],
    "body": "Coda API Skill\n\nInteract with the Coda REST API v1 to manage docs, tables, rows, pages, and automations.\n\nWhen to Use\n\nUse this skill when the user wants to:\n\nList, search, create, or delete Coda docs\nRead from or write to tables (insert, upsert, update, delete rows)\nExplore doc structure (pages, tables, columns, formulas, controls)\nTrigger automations (push buttons)\nExport doc content or analytics\nWhen NOT to Use\nDo NOT use for general document editing advice unrelated to the API\nDo NOT use for Pack development (this skill covers Doc management, not Pack creation)\nDo NOT use for operations requiring Doc Maker permissions unless confirmed the user has them\nPrerequisites\nAPI Token: Set environment variable CODA_API_TOKEN with your Coda API token\nGet token at: https://coda.io/account -> API Settings\nPython 3.7+ with requests library installed\nPermissions: Some operations (create doc, update doc title, create page) require Doc Maker role in the workspace\nCLI Tool Usage\n\nThe skill includes a Python CLI tool at scripts/coda_cli.py:\n\n# Setup\nexport CODA_API_TOKEN=\"your_token_here\"\n\n# List docs\npython scripts/coda_cli.py docs list --query \"Project\"\n\n# Get doc info\npython scripts/coda_cli.py docs get <doc-id>\n\n# Create doc\npython scripts/coda_cli.py docs create --title \"My New Doc\"\n\n# List tables in doc\npython scripts/coda_cli.py tables list <doc-id>\n\n# List rows in table\npython scripts/coda_cli.py rows list <doc-id> <table-id>\n\n# Insert row\npython scripts/coda_cli.py rows insert <doc-id> <table-id> --data '{\"Name\": \"Task 1\", \"Status\": \"Done\"}'\n\n# Update row\npython scripts/coda_cli.py rows update <doc-id> <table-id> <row-id> --data '{\"Status\": \"In Progress\"}'\n\n# Delete row (requires confirmation)\npython scripts/coda_cli.py rows delete <doc-id> <table-id> <row-id>\n\n# List pages\npython scripts/coda_cli.py pages list <doc-id>\n\n# Trigger automation (push button)\npython scripts/coda_cli.py automations trigger <doc-id> <button-id>\n\n# Force delete without confirmation (use with caution)\npython scripts/coda_cli.py docs delete <doc-id> --force\n\nWorkflow Guidelines\n1. Doc ID Extraction\n\nCoda doc IDs can be extracted from browser URLs:\n\nURL: https://coda.io/d/_dAbCDeFGH/Project-Tracker\nDoc ID: AbCDeFGH (remove _d prefix)\n\nThe CLI tool accepts both full URLs and raw IDs.\n\n2. Rate Limit Handling\n\nThe API has strict rate limits:\n\nRead: 100 requests per 6 seconds\nWrite (POST/PUT/PATCH): 10 requests per 6 seconds\nWrite doc content: 5 requests per 10 seconds\nList docs: 4 requests per 6 seconds\n\nThe CLI tool automatically implements exponential backoff for 429 responses.\n\n3. Asynchronous Operations\n\nWrite operations return HTTP 202 with a requestId. The CLI tool optionally polls for completion using --wait flag.\n\n4. Safety Guardrails\n\nDelete Operations (rows, docs, pages, folders):\n\nAlways requires explicit user confirmation in interactive mode\nUse --force flag only in automation/scripts\nShows preview of what will be deleted\n\nPublishing (docs publish):\n\nRequires explicit --confirm-publish flag\nCannot be combined with --force\n\nPermissions (acl commands):\n\nRequires explicit --confirm-permissions flag for any changes\nRead operations (list permissions) are always allowed\n\nAutomation Triggers:\n\nAllowed without special flags but logged\nUser should be aware that automations may trigger notifications or external actions\n5. Pagination\n\nList commands support:\n\n--limit: Maximum results (default 25, max varies by endpoint)\n--page-token: For fetching subsequent pages\nCLI auto-follows pages with --all flag\nCommon Patterns\nBatch Row Operations\n# Insert multiple rows from JSON file\npython scripts/coda_cli.py rows insert-batch <doc-id> <table-id> --file rows.json\n\n# Upsert rows (update if exists, insert if not) using key columns\npython scripts/coda_cli.py rows upsert <doc-id> <table-id> --file rows.json --keys \"Email\"\n\nSync Between Docs\n# Export from source\npython scripts/coda_cli.py rows list <source-doc> <table-id> --format json > export.json\n\n# Import to destination\npython scripts/coda_cli.py rows insert-batch <dest-doc> <table-id> --file export.json\n\nExplore Structure\n# Get full doc structure\npython scripts/coda_cli.py docs structure <doc-id>\n\n# List all formulas\npython scripts/coda_cli.py formulas list <doc-id>\n\n# List all controls\npython scripts/coda_cli.py controls list <doc-id>\n\nError Handling\n\nCommon HTTP status codes:\n\n400: Bad request (invalid parameters)\n401: Invalid/expired API token\n403: Insufficient permissions (need Doc Maker role)\n404: Resource not found\n429: Rate limited (implement backoff)\n202: Accepted but not yet processed (async operation)\nSecurity Considerations\nToken Storage: Never commit CODA_API_TOKEN to version control\nToken Scope: The token has full access to all docs the user can access\nWorkspace Restrictions: Creating docs requires Doc Maker role in target workspace\nData Exposure: Row data may contain sensitive information; handle exports carefully\nExamples\nList and Filter Docs\npython scripts/coda_cli.py docs list --is-owner --query \"Project\"\n\nCreate Doc from Template\npython scripts/coda_cli.py docs create --title \"Q4 Planning\" --source-doc \"template-doc-id\"\n\nUpdate Row Status\npython scripts/coda_cli.py rows update AbCDeFGH grid-xyz row-123 \\\n  --data '{\"Status\": \"Complete\", \"Completed Date\": \"2024-01-15\"}'\n\nDelete Multiple Rows (with confirmation)\npython scripts/coda_cli.py rows delete-batch AbCDeFGH grid-xyz \\\n  --filter '{\"Status\": \"Archived\"}' \\\n  --confirm \"Delete all archived rows?\"\n\nExport Table to CSV\npython scripts/coda_cli.py rows list AbCDeFGH grid-xyz --format csv > export.csv\n\nReference\nAPI Documentation: https://coda.io/developers/apis/v1\nOpenAPI Spec: https://coda.io/apis/v1/openapi.yaml\nRate Limits: https://coda.io/developers/apis/v1#section/Rate-Limiting"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0x7466/coda",
    "publisherUrl": "https://clawhub.ai/0x7466/coda",
    "owner": "0x7466",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/coda",
    "downloadUrl": "https://openagent3.xyz/downloads/coda",
    "agentUrl": "https://openagent3.xyz/skills/coda/agent",
    "manifestUrl": "https://openagent3.xyz/skills/coda/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/coda/agent.md"
  }
}