Installation
dothaven ships as a single static Go binary built with Cobra. There is no interpreter, runtime, or package manager to install alongside it — pick one of the methods below and you have a working dothaven command.
Install
Install from the tap. Homebrew resolves the right binary for your platform:
brew install doguyilmaz/tap/dothavenUpdating
dothaven upgradeupgrade (also spelled update) works out how dothaven was installed and runs that installer’s own upgrade — brew update && brew upgrade --cask dothaven for a Homebrew install, go install …@latest for a Go one. Pass --check to see what is available without changing anything.
dothaven never replaces its own binary: Homebrew tracks the version it installed, so overwriting that file behind its back leaves brew outdated describing something that is no longer there.
On a terminal, dothaven also checks once a day for a newer release and prints a one-line notice on stderr. Set DOTHAVEN_NO_UPDATE_CHECK=1 to turn that off. See the update notice for exactly what it requests.
Supported platforms
Release builds are static (CGO_ENABLED=0) and cross-compiled for:
| OS | Architectures |
|---|---|
| macOS (darwin) | amd64, arm64 |
| Linux | amd64, arm64 |
Building from source with the Go or Source method works on any platform the Go toolchain targets, but the packaged Homebrew/release artifacts cover the matrix above.
Verify the install
Confirm the binary is on your PATH and prints a version:
dothaven --versiondothaven version 0.2.0A source or go install build that wasn’t stamped at release time reports dev:
dothaven version devThe release version is embedded into the binary at build time via -ldflags -X main.version; source builds fall back to the default dev value.
Runtime dependencies
Running dothaven itself needs nothing else — the binary is self-contained. Discovery, audit, and reporting commands (collect, doctor, scan, security, status, diff, compare, list, backup, restore) work out of the box.
Two commands reach into the storage/encryption layer and need additional tooling:
See Encryption for setting up an age key and the chezmoi integration.
Where reports are written
Commands that emit JSON snapshots resolve the output directory in this order:
- An explicit
-o/--outputflag wins. - Otherwise,
<cwd>/reportswhen the current directory is inside a git repository. - Otherwise,
~/.local/share/dothaven.
dothaven collect -o ./snapshotsShell completion
Cobra provides a built-in completion command that generates completion scripts for bash, zsh, fish, and PowerShell. Print the script for your shell:
dothaven completion zshTo load completions in the current session:
source <(dothaven completion zsh)Run dothaven completion --help for per-shell instructions on installing the script permanently.