Quartermaster is a Rust CLI for mapping a codebase into a local, browsable workspace.
Run it against a repository and it will:
- scan the project tree
- detect languages, frameworks, and tooling
- extract dependency relationships
- generate versioned developer docs in
./.quartermaster - open a local dashboard for exploring code, docs, notes, and graph data
Build locally:
cargo build --releaseInstall from crates.io:
cargo install quartermaster-cliRun the interactive flow in the current repository:
cargo run --bin quartermasterChart a repository directly:
quartermaster chart .
quartermaster chart github.com/rust-lang/rust
qm analyze .Quartermaster writes a local workspace alongside the repository being analyzed:
.quartermaster/
├── current.txt
├── notes/
└── versions/
└── <version-id>/
├── manifest.json
├── README.md
└── dev_docs/
The generated workspace separates durable notes from generated output:
notes/is for human-authored notes that persist across runsversions/<version-id>/contains generated docs and manifests for a specific scancurrent.txtpoints the dashboard at the active generated version
Start the interactive flow:
quartermasterAnalyze a local path or GitHub repository:
quartermaster chart .
quartermaster chart path/to/repo
quartermaster chart github.com/owner/repoCommon flags:
quartermaster chart . --no-open
quartermaster chart . --non-interactive
quartermaster chart . --include-root src,tests
quartermaster chart . --port 4310
quartermaster chart . --track-workspace
quartermaster chart . --no-gitignoreThere is also a short alias binary:
qm analyze .After generation, Quartermaster can start a localhost server and open a browser dashboard.
The dashboard is designed around three content sources:
- embedded static UI assets bundled with the CLI
- generated workspace files from
./.quartermaster - repository files from the checked-out source tree
That makes the CLI self-contained at runtime while still letting the browser inspect the current repository and generated docs on one local origin.
cli/
├── Cargo.toml
├── build.rs
├── src/
├── static/
│ ├── dashboard/index.html
│ ├── assets/...
│ └── glyph_logo.svg
├── docs/
└── scripts/
Useful local checks:
cargo fmt
cargo test
cargo package --list --allow-dirtyFurther reading:
- Architecture: docs/architecture.md
MIT