cli-bot "Ping google five times"You can also omit the quotes and let cli-bot join the free arguments into one request:
cli-bot ping google five timesPackage-related requests use the resolved OS and package manager context.
cli-bot "Install btop"If the planner cannot safely resolve a request into a shell command, cli-bot can fall back to a plain text response:
cli-bot "spell mantainence"If you run cli-bot without a request string, it prompts you to type one interactively.
cli-botcli-bot --dry-run "Show disk usage for the current directory"cli-bot --quiet "Show disk usage for the current directory"--quiet hides cli-bot informational output such as:
Selected command:Why:- benchmark summaries
- successful
--checkoutput
The selected shell command still writes directly to the terminal.
Plain text responses, such as spelling corrections, are still shown because they are the primary result.
cli-bot --print-plan "List the ten largest files here"cli-bot --benchmark --dry-run "Ping google five times"This prints:
model: the Ollama model used for this invocationplanning_ms: time spent waiting for Ollama to return a planexecution_ms: time spent running the selected shell command, orskippedin--dry-runtotal_ms: end-to-end elapsed time for the CLI invocation
cli-bot --models-benchmarkOr write the Markdown report directly to a file:
cli-bot --models-benchmark docs/models-benchmark-report.mdYou can also use:
cli-bot --models-benchmark=docs/models-benchmark-report.mdThis mode:
- reads
[models_benchmark].modelsand[models_benchmark].queriesfromcli-bot.toml - runs every query against every configured model
- captures planner time and text-fallback time when unresolved
- includes host system details at the top of the report, including GPU VRAM when it can be detected
- prints a Markdown report with a query-vs-model summary table, per-model summary, ranking, and detailed responses
- writes to stdout by default, or to the provided Markdown filename when one is passed to
--models-benchmark
Commands are never executed in this mode. It is for comparing model behavior and response quality.
The current published benchmark report is available at Models Benchmark Report, and it documents why lfm2:latest is the default model.
cli-bot --color always --checkAvailable values:
auto: enable ANSI colors only when the output stream is a terminalalways: always emit ANSI colorsnever: disable ANSI colors
If the NO_COLOR environment variable is set, color output is disabled.
cli-bot --model lfm2:latest --benchmark --dry-run "Ping google five times"--model overrides ollama.model from the config file for that single invocation. It also affects --check.
cli-bot --auto-select-best "Ping google five times"When multiple commands are returned, --auto-select-best uses the command marked by the LLM as recommended: true.
The same behavior can be enabled by default with ui.auto_select_recommended = true in cli-bot.toml.
cli-bot --model lfm2.5-thinking:latest --verbose --benchmark "Ping google five times"--verbose prints:
- resolved config path, model, and preferred editor
- whether the planner marked the request as unresolved before the text fallback
- the natural-language request
- the full Ollama generate request body
- the full raw Ollama HTTP response body
- the generated text extracted from the Ollama response
- the extracted planner JSON before deserialization
This is intended for debugging model-specific formatting errors.
cli-bot --checkThis verifies:
- the config file can be found and parsed
- the Ollama service is reachable
- the configured model is available in Ollama
- the resolved OS and distro
- the detected and effective package manager
- the preferred editor resolves from config or
$EDITORand is available - the terminal environment is suitable for interactive prompts and command selection
After installing the release binary, you can run:
cli-bot "Ping google five times"Without --config, the installed CLI checks ${HOME}/.config/cli-bot/cli-bot.toml first and /etc/cli-bot.toml second.
If preferred_editor = "nvim" or $EDITOR=nvim, a request like this should guide the planner toward nvim:
cli-bot "Edit my git config file"- If the planner returns one command,
cli-botselects it automatically. - If the planner returns multiple commands,
cli-botpresents an interactive selector unless--auto-select-bestorui.auto_select_recommended = trueis enabled. - If no request string is provided,
cli-botprompts for one interactively. - If the planner marks a request as unresolved,
cli-botmakes a second LLM request for a plain text response instead of guessing a command. - Package-related requests use the resolved environment and effective package manager.
- The LLM is required to return
potentially_destructive: true | falsefor each command. - The LLM is also asked to mark the best command with
recommended: true. - If the selected command is marked or detected as destructive,
cli-botrequests explicit approval.