rtb-cli 0.9.5

CLI application scaffolding, clap integration, and built-in commands. Part of the phpboyscout Rust toolkit.
Documentation
# rtb-cli

> Part of the [phpboyscout Rust toolkit]https://rust.phpboyscout.uk:
> small, framework-free crates extracted from
> [rust-tool-base]https://gitlab.com/phpboyscout/rust-tool-base.

The CLI runtime family: a four-crate workspace sharing one version
line. `rtb-cli` builds the application; the other three each register
a built-in command into the same link-time registry:

- **`rtb-cli`**: the entry-point crate every downstream tool's
  `main()` touches: `Application::builder` typestate, clap
  integration of `BUILTIN_COMMANDS`, tracing + miette wiring, signal
  binding, and the built-in command suite (`version`, `doctor`,
  `init`, `config`, `credentials`, `telemetry`).
- **`rtb-docs`**: interactive docs browser (`ratatui` two-pane TUI),
  a `docs serve` HTML server (loopback by default, not restricted to it),
  `tantivy` full-text search, and
  a streaming AI Q&A seam (`ai` feature → `rtb-chat`).
- **`rtb-update`**: signature-verified self-update: select,
  download, verify (prehashed minisign, plus SHA-256 when the tool
  names a checksums asset), self-test, atomically swap. Composes on
  `rtb-forge`.
- **`rtb-mcp`**: Model Context Protocol server (via the official
  `rmcp` SDK) exposing `mcp_exposed` commands as MCP tools.

```rust
use rtb_cli::prelude::*;

#[tokio::main]
async fn main() -> miette::Result<()> {
    Application::builder()
        .metadata(ToolMetadata::builder().name("mytool").summary("a tool").build())
        .version(version_info!())
        .build()?
        .run()
        .await
}
```

- **Docs:** <https://cli.rust.phpboyscout.uk> ·
  [tutorial]https://cli.rust.phpboyscout.uk/tutorials/build-a-cli-tool/ ·
  [how-to]https://cli.rust.phpboyscout.uk/how-to/ ·
  [reference]https://cli.rust.phpboyscout.uk/reference/ ·
  [limitations]https://cli.rust.phpboyscout.uk/explanation/limitations/
- **API reference:** <https://docs.rs/rtb-cli> ·
  <https://docs.rs/rtb-docs> · <https://docs.rs/rtb-update> ·
  <https://docs.rs/rtb-mcp>
- **Crates:** <https://crates.io/crates/rtb-cli> ·
  <https://crates.io/crates/rtb-docs> ·
  <https://crates.io/crates/rtb-update> ·
  <https://crates.io/crates/rtb-mcp>

## Development

`just ci` runs the full local gate (fmt, clippy, nextest, doc, deny),
including `--all-features` clippy + test passes that exercise
rtb-docs' `ai` feature. Tests include a cucumber BDD suite
(`crates/rtb-cli/tests/bdd.rs`) and trybuild compile-fail fixtures
(run in isolation by `.config/nextest.toml`, so use nextest rather than
`cargo test`).
Releases are cut by colophon from Conventional Commits; do not
tag manually.

## License

MIT