Getting started
Install
hav is a single binary with no runtime dependencies. Building it requires a Rust toolchain (developed against 1.94).
From crates.io
cargo install hav # installs `hav` into ~/.cargo/bin
hav --versionFrom source
From the repository root:
cargo install --path . # installs `hav` into ~/.cargo/bin
hav --versionOr, for development:
cargo build --release # binary at target/release/hav
cargo test # unit + CLI integration testsPlatforms
| Platform | Status |
|---|---|
| macOS | Developed and tested here. |
| Linux | Same code paths. |
| Windows | Builds and is fully supported in design (the exec bit is preserved from tracked history, since NTFS can't represent it). |
The shell snippets in these docs assume a POSIX shell. Use Git Bash or WSL on Windows.
Before the first capture on a real project
hav ships no ignore rules of its own, and every file not ignored gets captured. Before pointing hav at an existing project:
- Run
hav preview, which shows exactly what a capture would ingest, with a per-directory breakdown, without reading or storing anything. - Write a
.havignore(gitignore syntax) covering build output and dependencies:target/,node_modules/,.venv/,.git/, …
If you skip this, the first capture counts the tree before storing anything, and asks for confirmation when the tree looks like an unignored dependency tree (≥5000 files or ≥100 MB). See Capture.
Where next
- hav in 5 minutes: a hands-on first run on a toy project.
- hav for git users: if your fingers already speak git.
- Status and limits: what to trust hav with today.