Open Source

The CLI for Coda

Read and write Coda docs, pages, tables, and rows — directly from your terminal. Built in Go, works everywhere.

go install github.com/AfeefRazick/coda-cli/cmd/coda@latest

Not affiliated with or endorsed by Coda.io, Inc.

Fast

Single compiled binary. No runtime, no dependencies. Starts instantly.

🔐

Secure auth

Token stored at ~/.config/coda-cli/config.yaml with 0600 permissions. Override anytime with CODA_API_TOKEN.

📄

Full CRUD

Docs, pages, tables, columns, and rows. Insert, upsert, update, delete — with async wait support.

🔌

Raw API access

Escape hatch via coda api <path> for any endpoint not yet covered by a dedicated command.

📦

Cross-platform

Pre-built binaries for macOS, Linux, and Windows on amd64 and arm64.

🔄

Pagination built-in

Use --all to fetch every page automatically. Or handle pagination manually with --page-token.

Commands

Every resource in the Coda API has a matching command group.

auth

  • coda auth login — save a token
  • coda auth status — verify token & show user
  • coda auth logout — remove saved token

docs

  • coda docs list
  • coda docs get <doc>
  • coda docs create
  • coda docs update <doc>
  • coda docs delete <doc>

pages

  • coda pages list <doc>
  • coda pages get <doc> <page>
  • coda pages content <doc> <page>
  • coda pages create <doc>
  • coda pages update <doc> <page>
  • coda pages delete <doc> <page>
  • coda pages delete-content <doc> <page>

tables & columns

  • coda tables list <doc>
  • coda tables get <doc> <table>
  • coda columns list <doc> <table>
  • coda columns get <doc> <table> <col>

rows

  • coda rows list <doc> <table>
  • coda rows get <doc> <table> <row>
  • coda rows insert <doc> <table>
  • coda rows upsert <doc> <table>
  • coda rows update <doc> <table> <row>
  • coda rows delete <doc> <table> <row>
  • coda rows delete-many <doc> <table>
  • coda rows push-button <doc> <table> <row> <col>

misc

  • coda me — show current user
  • coda api <path> — raw API call
  • coda wait <request-id> — wait for async op

Examples

Common workflows from the command line.

# Authenticate
coda auth login
# or pipe the token directly
echo $TOKEN | coda auth login --with-token-stdin
# verify
coda auth status
# List all your docs
coda docs list --all --owned

# Create a doc
coda docs create --title "Launch Tracker"

# Update title
coda docs update AbCDeFGH --title "New Title"

# Delete (with confirmation)
coda docs delete AbCDeFGH --yes
# List rows
coda rows list AbCDeFGH grid-pqrs --limit 50

# Insert a row and wait for completion
coda rows insert AbCDeFGH grid-pqrs \
  --value Name="Quarterly plan" \
  --value Status=Draft \
  --wait

# Upsert by key column
coda rows upsert AbCDeFGH grid-pqrs \
  --key Name \
  --value Name="Q3 plan" \
  --value Status=Active \
  --wait

# Delete multiple rows
coda rows delete-many AbCDeFGH grid-pqrs \
  --row i-123 --row i-456 --yes --wait
# Call any Coda API endpoint
coda api /docs --paginate

# PATCH with fields
coda api /docs/AbCDeFGH \
  --method PATCH \
  --field title="New Title"

# Wait for an async mutation
coda wait some-request-id-here

Get started in seconds

Download a pre-built binary or install with Go.

Go install

go install github.com/AfeefRazick/coda-cli/cmd/coda@latest

Download binary

Pre-built for macOS, Linux, Windows — amd64 & arm64.

View releases