Command line (srvo)
srvo runs SRVO actions from a terminal or a script. It can do what an AI app can do over MCP, with the same permissions. Your role and your key decide what works.
Install
The CLI is in early access and is not published yet. From a copy of the SRVO repository, run it with node packages/cli/src/bin.ts (Node 24 or newer). A downloadable app and an npm package will follow.
Sign in
- In SRVO, open Settings → API, MCP & webhooks and create an API key. See Settings: API, MCP, and webhooks. Choose Read only if the script only reads.
- Run
srvo login --api-keyand paste the key. The key is not shown while you type.
You can also pipe the key: srvo login --api-key < key.txt. Never put the key on the command line itself; srvo refuses it.
On a Mac the key is saved in the keychain. On other systems it is saved in ~/.config/srvo/credentials.json, which only your user can read.
To use another server, add --api https://your-server or set SRVO_API_URL.
Workspaces
Each key belongs to one workspace. Sign in once per workspace. Then:
srvo use acmemakes acme the default.--workspace acmeuses it for one command.srvo whoamishows who you are and where.srvo logoutforgets the current key. Revoke the key in Settings to stop it working.
Examples
srvo actions # what your key may do
srvo help boards records create # flags for one command
srvo boards records list --table-id <table id>
srvo boards records list --table-id <table id> --all --json > records.json
srvo boards records create --table-id <table id> --fields '{"title":"Call Anna"}'
srvo boards records trash --record-id <record id>
Actions that delete or change a lot show a preview first and ask before they run. In a script, add --yes.
For a large input, put it in a file: srvo boards records create --table-id <id> --input @record.json.
Use it in scripts
--jsonprints the raw result for tools likejq.- Lists show one page. Add
--allfor every page, or pass--cursor. - Set
SRVO_API_KEYinstead of signing in, for example in CI. - Exit codes:
0success,2wrong input,3not signed in or not allowed,4not found,5conflict,6too many requests.