Skill

SkillsSoftware Development › Plugins & extensions

coda-packs

Manage Coda Packs via REST API v1. Supports listing, creating, updating, and deleting private Packs. Requires CODA_API_TOKEN. Delete requires confirmation. Note: Builds, Gallery submission, Analytics, and Collaborators require Coda's Pack SDK CLI, not available via REST API.

Freerisk: low
codapackspython

Tools: -g

The full skill

— name: coda-packs description: Manage Coda Packs via REST API v1. Supports listing, creating, updating, and deleting private Packs. Requires CODA_API_TOKEN. Delete requires confirmation. Note: Builds, Gallery submission, Analytics, and Collaborators require Coda's Pack SDK CLI, not available via REST API. — # Coda Packs Skill Manage Coda Packs through the REST API v1. Create, list, update, and delete private Packs. ## ⚠️ API Limitations The Coda REST API v1 has limited Pack management capabilities: | Feature | REST API | Pack SDK CLI | |———|———-|————–| | **List Packs** | ✅ Available | ✅ | | **Create Pack** | ✅ Available | ✅ | | **Update Pack** | ✅ Available | ✅ | | **Delete Pack** | ✅ Available | ✅ | | **Build Versions** | ❌ Not available | ✅ Required | | **Gallery Submit** | ❌ Not available | ✅ Required | | **Analytics** | ❌ Not available | ✅ Required | | **Collaborators** | ❌ Not available | ✅ Required | **For builds, gallery submission, and advanced features, use:** “`bash npx @codahq/packs-sdk register # Create account npx @codahq/packs-sdk build # Build Pack npx @codahq/packs-sdk release # Submit to Gallery “` ## When to Use Use this skill when the user wants to: – List existing Coda Packs – Create new private Pack shells – Update Pack metadata (name, description) – Delete unused Packs ## When NOT to Use – **Do NOT use** for Doc management (tables, rows, pages) → use `coda` skill – **Do NOT use** for building Pack versions → use Pack SDK CLI – **Do NOT use** for Gallery submission → use Pack SDK CLI – **Do NOT use** for viewing analytics → use Pack SDK CLI or Coda web UI ## Prerequisites 1. **API Token**: Set environment variable `CODA_API_TOKEN` – Get token at: https://coda.io/account -> API Settings – Must have Pack management permissions 2. **Python 3.7+** with `requests` library ## Quick Start “`bash # Setup export CODA_API_TOKEN="your_token_here" # List your Packs python scripts/coda_packs_cli.py packs list # Create new Pack shell python scripts/coda_packs_cli.py packs create \ –name "My Integration" \ –description "Does cool things" # Update Pack python scripts/coda_packs_cli.py packs update my-pack-id \ –description "Updated description" # Delete Pack (requires confirmation) python scripts/coda_packs_cli.py packs delete my-pack-id “` ## Full Pack Development Workflow Since the REST API only supports basic Pack management, here's the complete workflow: ### Step 1: Create Pack Shell (via REST API) “`bash python scripts/coda_packs_cli.py packs create \ –name "Karakeep Bookmarks" \ –description "Save and search bookmarks" “` ### Step 2-4: Use Pack SDK CLI (Required) “`bash # Install Pack SDK npm install -g @codahq/packs-sdk # Initialize Pack project npx @codahq/packs-sdk init karakeep-pack # Develop your Pack (edit pack.ts) # See: https://coda.io/packs/build/latest/guides/quickstart/ # Build and upload npx @codahq/packs-sdk build npx @codahq/packs-sdk upload # Submit to Gallery (when ready) npx @codahq/packs-sdk release “` ## CLI Tool Usage ### Pack Management “`bash # List all your Packs python scripts/coda_packs_cli.py packs list # Get Pack details python scripts/coda_packs_cli.py packs get 48093 python scripts/coda_packs_cli.py packs get "Karakeep" # Create new Pack python scripts/coda_packs_cli.py packs create \ –name "My Pack" \ –description "Description" \ –readme "# My Pack\n\nDetails here" # Update Pack metadata python scripts/coda_packs_cli.py packs update my-pack-id \ –name "New Name" \ –description "New description" # Delete Pack (requires confirmation) python scripts/coda_packs_cli.py packs delete my-pack-id # Or skip confirmation: –force “` ### Pack ID Resolution The CLI accepts both **numeric Pack IDs** and **Pack Names**: “`bash # These are equivalent: python scripts/coda_packs_cli.py packs get 48093 python scripts/coda_packs_cli.py packs get "Karakeep" “` If the name is ambiguous, the CLI lists matches and exits. ## Safety Guardrails ### Operations Requiring Confirmation | Operation | Risk | Confirmation | |———–|——|————–| | **Delete Pack** | Irreversible | "Delete Pack 'X'? This cannot be undone." | ### No Confirmation Required – **Create Pack**: Safe, reversible – **List/Get Packs**: Read-only – **Update Pack**: Reversible ## Error Handling Common API errors: | Code | Meaning | Resolution | |——|———|————| | `401` | Invalid token | Refresh CODA_API_TOKEN | | `403` | Insufficient permissions | Ensure token has Pack management rights | | `404` | Pack not found | Check Pack ID or name | | `429` | Rate limited | Wait and retry (handled automatically) | ## References – **Pack SDK Guides**: https://coda.io/packs/build/latest/guides/overview/ – **Pack SDK Quickstart**: https://coda.io/packs/build/latest/guides/quickstart/ – **Coda API Docs**: https://coda.io/developers/apis/v1 – **Pack SDK NPM**: https://www.npmjs.com/package/@codahq/packs-sdk ## Example: Karakeep Pack Shell Created for testing: – **Name**: Karakeep – **ID**: 48093 – **Description**: Karakeep bookmark manager – save URLs, search, and organize with tags **Next steps for full Pack development:** 1. Use Pack SDK CLI: `npx @codahq/packs-sdk init karakeep-pack` 2. Implement Karakeep API integration (see https://docs.karakeep.app/api/) 3. Build and upload: `npx @codahq/packs-sdk build && npx @codahq/packs-sdk upload`