Context
The first runnable binary. charon loads .env (via dotenvy), initializes structured logging, parses CLI args via clap, and loads + validates the config. This is the shell every later subcommand plugs into.
Scope
charon-cli/src/main.rs with #[tokio::main]
- clap derive-based CLI:
--config / -c flag + listen subcommand
dotenvy::dotenv() loads .env silently if present
tracing_subscriber with EnvFilter (defaults to INFO, overridable via RUST_LOG)
- Loads config via
Config::load() and logs a one-line summary on success
Acceptance criteria
References
- Delivered in commit
9a5b67a
- PRD section 3c (CLI bootstrap)
Context
The first runnable binary.
charonloads.env(viadotenvy), initializes structured logging, parses CLI args viaclap, and loads + validates the config. This is the shell every later subcommand plugs into.Scope
charon-cli/src/main.rswith#[tokio::main]--config/-cflag +listensubcommanddotenvy::dotenv()loads.envsilently if presenttracing_subscriberwithEnvFilter(defaults to INFO, overridable viaRUST_LOG)Config::load()and logs a one-line summary on successAcceptance criteria
cargo run -- --config config/default.toml listenworkscargo run -- --helpprints a usage summarycargo run -- --versionprints the version fromCargo.tomlRUST_LOGReferences
9a5b67a