# BranchPy CLI Canon
Purpose and scope
- Establish the CLI as the canonical control surface for BranchPy operations (analysis, SDK management, patches, policy gates, observability hooks).
- Define what the CLI owns: command semantics, global flags/options, exit codes, runtime paths.
- Keep UI panels and automations as consumers of this contract (they wrap the CLI; they do not redefine it).
Ownership and boundaries
- CLI owns: command inventory, syntax, options, exit codes, runtime locations (.branchpy dirs, logs, caches), JSON/JSONL output modes.
- CLI defers to other domains for deeper semantics: authentication/licensing, analysis engines, telemetry policy, and deployment.
Entry point
- Start with the authoritative command reference: Technical/cli/cli.md.
- Supporting references:
- Configuration and env: Technical/cli/configuration.md
- Troubleshooting: Technical/cli/troubleshooting.md
- Quick reference: Technical/cli/quick-reference.md