| 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