multiAI Summary Pending

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.

3,556 stars

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/coda-packs/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/0x7466/coda-packs/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/coda-packs/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How coda-packs Compares

Feature / Agentcoda-packsStandard Approach
Platform SupportmultiLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Which AI agents support this skill?

This skill is compatible with multi.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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`