Baserow CLI
CLI for Baserow — the open-source Airtable alternative. Output is JSON by default — pipe to jq or consume directly.
Setup
uv tool install baserow-cli # or: pip install baserow-cli
baserow config init # interactive setup wizard
Config: ~/.config/baserow-cli/config.toml. All values can be set via env vars (BASEROW_TOKEN, BASEROW_URL, BASEROW_TABLE) or CLI flags.
Command Discovery
Do not guess command names or options. Use --help:
baserow --help
baserow rows --help
baserow rows list --help
Quick Reference
| Resource | Key commands |
|---|---|
baserow tables | list, get <table-id> |
baserow fields | list --table <id> |
baserow rows | list, get, create, update, delete |
baserow rows batch-* | batch-create, batch-update, batch-delete |
baserow config | init, show, set |
Common Workflows
Discover table structure:
baserow tables list
baserow tables get 42
baserow fields list --table 42
List and search rows:
baserow rows list --table 42
baserow rows list --table 42 --search "quarterly" --size 50
baserow rows list --table 42 --filter "Status__equal=Done" --order-by "-Created"
Create a row:
baserow rows create --table 42 --json '{"Name": "New item", "Status": "Todo"}'
Update a row:
baserow rows update 1 --table 42 --json '{"Status": "Done"}'
Batch operations:
baserow rows batch-create --table 42 --json '[{"Name": "A"}, {"Name": "B"}]'
baserow rows batch-update --table 42 --json '[{"id": 1, "Status": "Done"}, {"id": 2, "Status": "Done"}]'
baserow rows batch-delete --table 42 --json '[3, 4, 5]' --yes
Pipe JSON from stdin:
cat data.json | baserow rows batch-create --table 42 --json -
Important Conventions
--tableis optional whendefaults.tableis configured--databaseis optional whendefaults.databaseis configured- Destructive commands (
delete,batch-delete) require--yesin non-TTY (agent) contexts --jsonaccepts-to read from stdin- Pagination via
--pageand--size(max 200 per page); default is page 1 - Errors go to stderr as JSON:
{"error": {"type": "...", "message": "...", "status_code": N}} - Exit codes:
0success,1error,2rate-limited (retry safe) - Field values in
--jsonuse field names (not IDs)
[!CAUTION]
deleteandbatch-deletecommands are destructive — always confirm with the user before executing.