hav
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 --version

From source

From the repository root:

cargo install --path .        # installs `hav` into ~/.cargo/bin
hav --version

Or, for development:

cargo build --release         # binary at target/release/hav
cargo test                    # unit + CLI integration tests

Platforms

PlatformStatus
macOSDeveloped and tested here.
LinuxSame code paths.
WindowsBuilds 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:

  1. Run hav preview, which shows exactly what a capture would ingest, with a per-directory breakdown, without reading or storing anything.
  2. 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

On this page