CLI
Install the bizos CLI, authenticate it, and run tasks, documents and credits from a terminal or an AI agent.
A small command-line client for the everyday core: your tasks, your documents, your credits. Everything else — ads, leads, creatives, landing pages — lives in the app.
That narrow scope is deliberate. An API key is a key to a small, predictable surface, not a second door into everything.
Install
npm install -g bizos-cliNode ≥ 18. The binary is bizos.
Authenticate
Create a key in the app: Settings → Developer (available with the YouTube pass). It is shown once — copy it then.
bizos login # paste the key; it is validated, then storedThe key is stored at ~/.config/bizos/config.json, chmod 0600, and sent as an
Authorization header — never in a URL. Non-HTTPS endpoints are refused
(except localhost for development).
For CI or an agent, skip the prompt entirely:
export BIZOS_API_KEY="bzk_live_…"Each key is scoped to exactly one organization, and rate-limited on its own. Revoke one at any time from the same panel — it stops working immediately.
Commands
bizos login | logout | whoami
bizos tasks list | create <text> | run <id> [--yes] | get <id> | watch <id>
bizos docs list [--folder <id>] [--all] | get <id> | create --title <t> [--content <md> | --file <p>]
bizos credits
bizos notifications [read <id>]Add --json to any command for machine-readable output. --help works on every
command and group.
Running work
Work is asynchronous — tasks run returns while the agent is still working:
id=$(bizos tasks create "Draft a cold email for ACME" --json | jq -r .task.id)
bizos tasks run "$id" --yes # ⚠️ 1 Work Credit
bizos tasks watch "$id" # polls until it finishesbizos tasks watch exits non-zero if the task ends as anything other than
done, so it can gate a CI step. Tune it with --interval / --timeout.
What costs
Only bizos tasks run spends a credit (1), and it requires --yes — so neither
you nor an agent spends by accident. Everything else is free. Credit-spending
calls are never retried automatically.
Exit codes
| Code | Meaning |
|---|---|
0 | Success |
1 | Generic error |
2 | Not authenticated — run bizos login |
3 | Out of credits |
4 | Rate limited — back off and retry |
Branch on these rather than parsing text.
Driving it from Claude Code (or any agent)
The CLI is built for this: --json everywhere, meaningful exit codes, and an
explicit flag for anything that costs money.
You can operate my BizOS account through the `bizos` CLI, installed and
authenticated on this machine.
Rules:
- ALWAYS pass --json.
- Reading is FREE. One command spends 1 Work Credit and REQUIRES --yes:
`bizos tasks run <id> --yes`. Never spend unless I asked for that action.
- Work is asynchronous: after `tasks run`, follow with `bizos tasks watch <id>`.
- On exit code 3 (out of credits), STOP and tell me to top up. Do not retry.
- On exit code 2, tell me to run `bizos login`.
Surface: whoami · tasks list|create|run|get|watch · docs list|get|create ·
credits · notifications. Ads, leads, creatives and landing pages are NOT
available here — they live in the app.A typical loop:
bizos whoami --json # who am I, how many credits
bizos tasks list --json # find the task
bizos tasks run tsk_123 --yes --json # ⚠️ spends 1
bizos tasks watch tsk_123 --json # wait for the outcome
bizos docs list --json # read the deliverableOverrides
| What | How |
|---|---|
| API key | BIZOS_API_KEY (takes precedence over the stored key) |
| Base URL | --api-url https://… or BIZOS_API_URL |
| Output | --json · --no-color · --verbose (redacts the key) |
Calling the endpoints directly instead? See the API.