Frostholm ships as a single static binary with no runtime dependencies. Pick whichever method fits your workflow.

go install (recommended)

Requires Go 1.21 or later.

go install github.com/e-var/frostholm/cmd/fh@latest

This places fh in your $GOPATH/bin. Make sure that's on your $PATH.

Homebrew (macOS / Linux)

brew tap e-var/tap
brew install frostholm

The tap is updated automatically when new versions are tagged.

Pre-built binary

Download from the GitHub releases page. Binaries are available for:

  • linux/amd64
  • linux/arm64
  • darwin/arm64 (Apple Silicon)
  • darwin/amd64 (Intel Mac)
  • windows/amd64
# Example: Linux amd64
curl -Lo fh https://github.com/e-var/frostholm/releases/download/v0.4.2/fh-linux-amd64
chmod +x fh
sudo mv fh /usr/local/bin/

Verify the SHA256 checksum against checksums.txt in the same release.

Install script

curl -fsSL https://frostholm.fun/install.sh | sh

The script detects your OS and architecture, downloads the matching binary, verifies the checksum, and places it in /usr/local/bin. Inspect the script before piping to sh — it's straightforward.

Five-minute quickstart

Once fh is on your PATH:

1. Initialize a repository

# Local repository on an external drive
fh init --repo /Volumes/MyDrive/frostholm-home

# You'll be prompted for a repository password.
# Store it somewhere safe — there's no recovery if you lose it.

2. Run your first backup

export FH_REPO_PASSWORD="your-passphrase"
fh backup --repo /Volumes/MyDrive/frostholm-home ~/Documents ~/Pictures

# Output:
# scanning... 14,822 files (23.4 GB)
# new chunks: 8,201 (21.1 GB)
# deduped:    6,621 (2.3 GB)
# snapshot a4f9c12e saved in 4m 32s

3. List snapshots

fh snapshots --repo /Volumes/MyDrive/frostholm-home

# ID        Date                  Size       Files   Tags
# a4f9c12e  2026-04-12 09:14:03   23.4 GB    14,822  -

4. Verify integrity

fh check --repo /Volumes/MyDrive/frostholm-home

# checking index... ok
# spot-checking chunks (5%)... ok
# all checks passed
Run fh check --full occasionally (weekly or monthly) to verify every chunk. Spot-check is fast but samples only 5% of pack files.

5. Restore a file

# Restore a single file from the latest snapshot
fh restore --repo /Volumes/MyDrive/frostholm-home \
    --snapshot latest \
    --include "Documents/taxes/2025.pdf" \
    --target /tmp/recovered

# Or restore everything
fh restore --repo /Volumes/MyDrive/frostholm-home \
    --snapshot a4f9c12e \
    --target /tmp/full-restore

Automate with cron

# Add to crontab (crontab -e)
# Daily backup at 02:30
30 2 * * * FH_REPO_PASSWORD="passphrase" /usr/local/bin/fh backup \
    --repo /Volumes/MyDrive/frostholm-home \
    ~/Documents ~/Pictures \
    >> /var/log/frostholm.log 2>&1

See the full documentation for retention policies, multiple repositories, and backend configuration.