CLI Reference
Every vruum CLI command group and subcommand, the global flags, --json output, and exit codes.
The vruum CLI is the universal floor for every agent harness — drive your
pipeline, deals, outreach, marketing, and knowledge base from the terminal or
any automation, with machine-stable --json output on every command. Run
vruum <group> --help for the flags of any subcommand.
Global flags
| Flag | Description |
|---|---|
--json | Emit machine-stable JSON instead of a table |
--for-company <id> | Act on behalf of a company (operator multi-tenant) |
--api-url <url> | Override the API base URL (local CLI only — rejected by vruum_exec) |
-V, --version | Print the version |
-h, --help | Show help for any command or subcommand |
--json and exit codes
Without --json, commands print human-readable tables; with it, they print
JSON suitable for jq, agents, and CI. The process exit code is the agent's
success signal:
| Exit | Meaning |
|---|---|
0 | Success |
3 | Auth failure — 401 Unauthorized / 403 Forbidden |
2 | Other 4xx (usage / validation / not-found) |
1 | 5xx server error or network failure |
vruum deal list --json | jq '.[] | select(.stage == "negotiation")'
vruum review outreach --json | jq '.items | length'
Command tree
| Group | Subcommands |
|---|---|
account | get · set-stage · set-state · note |
ad | list · create · approve · reject · pause · resume · budget · creative upload |
auth | login · logout · whoami (top-level; login/logout are local-CLI only) |
campaign | list · get · create · update · clone · delete · members |
company | list · get · create · update |
content | list · create · edit · schedule · publish · delete |
cta | list · create · update · delete · set-default |
deal | list · get · create · update · stage · won · lost · reopen · note · stakeholder (list/add/update/remove) |
engagement | queue · approve · edit · skip · bulk-approve · stats |
init | (no subcommands — wires MCP + skills + instructions into detected harnesses) |
kb | list · show · search · upsert · reindex · delete |
message | queue · approve · reject · edit · regenerate · bulk-approve · bulk-reject · bulk-edit |
people | list · get · create · update · archive · note · import (csv / sales-nav) |
plan | get · start · pause · resume · stop · touch · override · channels |
proposal | list · get · create · draft · send · cancel |
review | outreach · deals · engagement · content |
settings | get · set · team (members / invite / join) |
skills | list · show |
task | list · create · complete · delete |
Notes grammar
people, account, and deal each expose a note command over the shared
notes store (the canonical timeline read by the AI writer). All three share one
grammar:
vruum people note <personId> "Met at SaaStr" # add
vruum deal note <dealId> "Budget approved" # add
vruum deal note <dealId> # list the deal's notes
vruum deal note <dealId> --limit 20 # list, capped (1-500)
vruum deal note --delete <noteId> # delete by note id
deal note (the canonical notes timeline) is distinct from
deal create/update --notes (the single deals.notes summary field on the
deal row) — they write to different places.
Soft-delete-only: deals & companies
There is intentionally no deal delete or company delete verb. Deals
retire via deal won / deal lost (revive with deal reopen); companies
archive via their account state. History is never hard-removed. Individual
notes can be hard-deleted with note --delete.
See also
- Getting Started — install, login, init, first call.
- Auth — tokens, environment variables, and
--for-company. - Operate Vruum — the full agent operator's guide with worked workflows.