Skip to main content

CLI reference

bravebot 0.1.0: a general-purpose agent resistant to prompt injection

Usage:
bravebot Start an interactive session
bravebot "<task>" [--file <path>]... Run a single task
cat file | bravebot -p "<task>" ...with piped input, never trusted
bravebot --resume [id] Pick up a session in this directory
bravebot doctor Check configuration and confinement
bravebot import-leo-creds [channel] Import a Leo Premium subscription

Commands

CommandWhat it does
bravebotstart an interactive session in the current directory
bravebot "<task>"run one task and print the reply
bravebot --resume, -rchoose a session in this directory to pick up
bravebot --resume <id>resume that session by id
bravebot doctorreport configuration and confinement, changing nothing
bravebot import-leo-creds [channel]import a Leo Premium subscription
bravebot --version, -Vprint the build
bravebot --help, -hprint this

Anything that is not a recognised flag or subcommand is treated as the task prompt.

Options

OptionWhat it does
--file <path>include a workspace file as trusted context; repeatable
-p, --printnon-interactive; reads piped stdin as quarantined context
--traceprint the audit trail to stderr
-h, --helpshow the help
-V, --versionshow the version

-p may lead, as it does for other agents: bravebot -p "task".

import-leo-creds

bravebot import-leo-creds [stable|beta|nightly|development] [--forget]

Without a channel, stable is what importing means. --forget removes what was imported. See Leo Premium.

Interactive keys

KeyWhat it does
EnterSend
Shift-Enter, Ctrl-JNew line without sending
Ctrl-GCompose in $VISUAL or $EDITOR
Ctrl-VPaste, including screenshots
Ctrl-TToggle the audit trail
Ctrl-OOpen the scroller over the transcript
Up / DownWalk back through sent prompts
Wheel, PageUp / PageDownScroll the transcript
Home / EndJump to the start or the latest
EscCancel a running turn, or clear the input
Ctrl-CStop the nearest thing; leave when there is nothing left

The full behaviour is in Interactive mode, and the scroller's own keys are in Reading the transcript.

Interactive commands

CommandWhat it does
/statusReport this session, what it may touch, and what it has spent
/modelChoose which model to think with
/add-dir <path>Open another directory, and trust it for this session
/rename <name>Call this conversation something else
/compactSummarise the conversation so far, keeping the recent part
/clearStart a new session here, keeping this one resumable
/exitLeave
@<path>Include a workspace file as trusted context
!<line>Run a line in your own shell

See Slash commands.

The version string

bravebot 0.1.0 (f2a6e1a, modified)

The commit is what the binary was compiled from, and modified means the tree had uncommitted changes at that point. Every session record carries the same string, which matters when reading a transcript back: a session that behaved oddly is usually being read against code that has moved since. A build with no git available says (no git) rather than naming a commit it cannot see.

Exit codes

A failure exits non-zero: a configuration error, a refused argument, and a turn that could not run all fail rather than exiting successfully with an explanation on stdout.

Streams

Stdout carries the reply and nothing else. Progress, errors and the audit trail go to stderr, so a one-shot run is pipeable.

Limits

piped input10 MiB, refused rather than truncated past that
a pasted picture10 MB
tool rounds in one turn40, after which the planner answers with what it has
default context budget24,000 prompt tokens before compaction