Agents and JSON
Use OpenBBQ safely from coding agents, automation, and non-interactive processes.
Machine-readable output
Place the root --json flag before the command:
openbbq --json doctor
openbbq --json status --workspace workspaces/demo
openbbq --json export --workspace workspaces/demo --to zh --mode bilingualOpenBBQ automatically selects compact JSON when stdout is not an interactive TTY, but agents should pass --json explicitly to declare the contract.
Each command emits one final JSON object on stdout. Human progress and long-task hints go to stderr or the workspace manifest, so stdout remains parseable.
Exit and error behavior
- Success emits a result object and exits successfully.
- Domain failures emit a structured error with an
errorcode, context, and often afix. - CLI usage errors use the
usageerror code. - Unexpected failures use the
internalerror code.
Agents should follow the provided fix instead of parsing human prose or inventing recovery commands.
Poll long-running work
fetch, transcribe, and burn update stage status and progress in manifest.json. Poll from another process:
openbbq --json status --workspace workspaces/demoA running stage with no heartbeat for more than 60 seconds is marked stale by status.
Install the packaged skill
The default target is the shared agents directory:
openbbq skill installTarget a specific product:
openbbq skill install --agent codex
openbbq skill install --agent claude
openbbq skill install --agent allUse --force to replace an existing installed copy. A custom parent directory can be passed with --target.
Two packaged skills are available:
openbbq skill install --name openbbq-subtitles
openbbq skill install --name bilibili-cover-safe-areaPrint packaged Markdown without installing it:
openbbq skill show
openbbq skill show --language zh-CN
openbbq skill show --name bilibili-cover-safe-area --language zh-CNOperational rules for agents
- Ask before installing system dependencies, downloading large models, or writing browser login state.
- Keep
OPENBBQ_HOMEand workspace paths writable. - Prefer small translation batches and run
translate checkbetween batches. - Do not use
translate init --forceunless discarding existing translation work is intentional. - Preview exported subtitles before publishing or burning.