The JSON envelope
Pass--json as a top-level flag, before the subcommand, and every command returns a structured envelope:
success: true always carries data. success: false always carries error. List endpoints ship pagination alongside the data: pagination: { hasMore, nextCursor }.
Context discovery
The CLI keeps its state in two files an agent can check before acting:.gobi/settings.yaml is missing, gobi vault init and gobi space warp are the interactive entry points. They need user input, so an agent should hand off to the user instead of driving them silently. Any gobi space command also takes --space-slug <slug> to override the default without touching settings.
Headless auth
gobi auth login prints a URL and a user code to stdout, then polls until the user authorizes. An agent can run it as a background task, surface the URL as a clickable link, and wait for the process to exit.
Errors worth planning for
With--json, every failure is success: false plus a human-readable error. Three come up in normal agent use:
- Not signed in. Check
gobi --json auth statusbefore a run; login is interactive, so hand off to the user. - Owner-only content.
transcriptandaudiobelong to the person who recorded. Another member’s returns a 403 by design. Don’t retry; there is no flag around it. - Vault deletion refused.
gobi vault deleteis rejected while the vault still owns posts, members, or files.
Claude Code skills
The package ships a.claude-plugin/ manifest with skills wrapping each command group: