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.
Scanned 5/30/2026
Install via CLI
openskills install dvcrn/openclaw-skills-marketplace---
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`
No comments yet. Be the first to comment!