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.
Single compiled binary. No runtime, no dependencies. Starts instantly.
Token stored at ~/.config/coda-cli/config.yaml with 0600 permissions. Override anytime with CODA_API_TOKEN.
Docs, pages, tables, columns, and rows. Insert, upsert, update, delete — with async wait support.
Escape hatch via coda api <path> for any endpoint not yet covered by a dedicated command.
Pre-built binaries for macOS, Linux, and Windows on amd64 and arm64.
Use --all to fetch every page automatically. Or handle pagination manually with --page-token.
Every resource in the Coda API has a matching command group.
coda auth login — save a tokencoda auth status — verify token & show usercoda auth logout — remove saved tokencoda docs listcoda docs get <doc>coda docs createcoda docs update <doc>coda docs delete <doc>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>coda tables list <doc>coda tables get <doc> <table>coda columns list <doc> <table>coda columns get <doc> <table> <col>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>coda me — show current usercoda api <path> — raw API callcoda wait <request-id> — wait for async opCommon 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
Download a pre-built binary or install with Go.