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:
npx @codahq/packs-sdk register
npx @codahq/packs-sdk build
npx @codahq/packs-sdk release
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
-
API Token: Set environment variable CODA_API_TOKEN
-
Python 3.7+ with requests library
Quick Start
export CODA_API_TOKEN="your_token_here"
python scripts/coda_packs_cli.py packs list
python scripts/coda_packs_cli.py packs create \
--name "My Integration" \
--description "Does cool things"
python scripts/coda_packs_cli.py packs update my-pack-id \
--description "Updated description"
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)
python scripts/coda_packs_cli.py packs create \
--name "Karakeep Bookmarks" \
--description "Save and search bookmarks"
Step 2-4: Use Pack SDK CLI (Required)
npm install -g @codahq/packs-sdk
npx @codahq/packs-sdk init karakeep-pack
npx @codahq/packs-sdk build
npx @codahq/packs-sdk upload
npx @codahq/packs-sdk release
CLI Tool Usage
Pack Management
python scripts/coda_packs_cli.py packs list
python scripts/coda_packs_cli.py packs get 48093
python scripts/coda_packs_cli.py packs get "Karakeep"
python scripts/coda_packs_cli.py packs create \
--name "My Pack" \
--description "Description" \
--readme "# My Pack\n\nDetails here"
python scripts/coda_packs_cli.py packs update my-pack-id \
--name "New Name" \
--description "New description"
python scripts/coda_packs_cli.py packs delete my-pack-id
Pack ID Resolution
The CLI accepts both numeric Pack IDs and Pack Names:
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
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:
- Use Pack SDK CLI:
npx @codahq/packs-sdk init karakeep-pack
- Implement Karakeep API integration (see https://docs.karakeep.app/api/)
- Build and upload:
npx @codahq/packs-sdk build && npx @codahq/packs-sdk upload