On this page
Install Haarness
One command installs haarness, which gives you the terminal UI and the CLI, and then the Desktop
app. Both run on your machine and need no account or administrator rights.
You need: a terminal (PowerShell on Windows). Next you will: connect a model.
Install with one command
On macOS or Linux:
curl -fsSL https://haarness.ai/install.sh | shOn Windows, in PowerShell:
irm https://haarness.ai/install.ps1 | iexThe installer picks the builds for your system, checks each download's SHA-256 checksum, and
prints Installed Haarness <version> with the path it used. If anything fails, what you had
before is left unchanged.
| System | CLI | Desktop |
|---|---|---|
| macOS | ~/.local/bin/haarness |
/Applications/Haarness.app (~/Applications if you cannot write to /Applications) |
| Linux | ~/.local/bin/haarness |
~/.local/bin/Haarness.AppImage, with a haarness-desktop command and a menu entry |
| Windows | %LOCALAPPDATA%\Haarness\bin\haarness.exe |
Desktop's setup wizard opens; afterwards, start it from the Start menu |
If haarness is not found afterwards: on macOS and Linux the installer prints an
export PATH=… line when the folder is not on your PATH. Add it to your shell profile and open
a new terminal. On Windows the installer adds the folder to your user PATH itself (set
HAARNESS_NO_MODIFY_PATH=1 first to leave it alone); open a new terminal.
Install only the CLI
curl -fsSL https://haarness.ai/install.sh | sh -s -- --no-desktop$env:HAARNESS_NO_DESKTOP='1'; irm https://haarness.ai/install.ps1 | iexOn Linux the installer also skips Desktop when there is no graphical session (over SSH, in a container), and prints the command that adds it later. If Desktop fails to install, the CLI stays installed and the installer says how to retry.
Which systems are supported?
- macOS: Apple silicon and Intel.
- Windows: Windows 10 and 11, x64 and ARM64. Nothing else needs to be installed.
- Linux: x64 and ARM64 with glibc 2.17 or newer, which covers every maintained distribution,
including Ubuntu 18.04+, Debian 10+, RHEL and Rocky 8+ and Amazon Linux 2. Haarness does not
need Git, but HTTPS needs your distribution's
ca-certificatespackage, which minimal container images leave out. musl systems such as Alpine are not supported yet. Desktop starts faster when FUSE 2 is installed (libfuse2, orlibfuse2t64on Ubuntu 24.04 and later); the installer reminds you when it is missing.
Check that it works
haarness --version
haarness doctordoctor checks the terminal library and the ripgrep search tool that ship inside Haarness, and
shows the folders where it keeps your settings and data. On Linux it also counts the trusted
certificates it found. It stops with an error if a check fails.
Open or add the Desktop app
haarness desktopThis opens Desktop, and installs it first if you skipped it. To install only Desktop:
curl -fsSL https://haarness.ai/install.sh | HAARNESS_PRODUCT=desktop sh$env:HAARNESS_PRODUCT='desktop'; irm https://haarness.ai/install.ps1 | iexDesktop includes its own copy of Haarness, so it works without the CLI. See Install and first run for what happens next.
Let agents use your Chrome
The haarness command and Desktop both include Haarness for Chrome, the extension that lets
agents work in your own Google Chrome, signed in as you. Run haarness browser setup, then load
the extension in Chrome as the command explains. Use your Chrome
walks through it.
Update Haarness
haarness --updateThis replaces the haarness command in place with the latest stable release, after checking its
checksum. The terminal UI tells you on a new chat when there is one. haarness upgrade does the
same and takes --channel preview for the preview channel, or --version <version> for a
specific release.
Desktop updates itself: it downloads a new version in the background and shows Restart to update in the sidebar when it is ready (Updates). Desktop 0.1.5 and earlier do not; run the install command again once to get a version that does.
Install a preview or a specific version
Set these before the install command:
| Variable | Effect |
|---|---|
HAARNESS_CHANNEL=preview |
Install the preview channel instead of stable |
HAARNESS_VERSION=<version> |
Install that exact published version |
HAARNESS_PRODUCT=cli or desktop |
Install only that one |
HAARNESS_NO_DESKTOP=1 |
Install only the CLI (same as --no-desktop) |
HAARNESS_INSTALL_DIR=<folder> |
Install the CLI somewhere else (Desktop, with HAARNESS_PRODUCT=desktop) |
HAARNESS_DESKTOP_DIR=<folder> |
Install Desktop somewhere else (macOS and Linux) |
curl -fsSL https://haarness.ai/install.sh | HAARNESS_CHANNEL=preview shThe download page shows the exact commands for each channel.
Verify a download yourself
The download page lists every build with its version, size and SHA-256 checksum. CLI downloads are single executables, not archives. Compare the checksum before you run the file:
shasum -a 256 haarness-macos-arm64All checksums are also listed on one page for offline checking.
Build from source
You need the Rust toolchain pinned in the repository (rustup installs it on first use). Nothing else: the terminal library and ripgrep are included.
git clone https://github.com/haarness/haarness
cd haarness
cargo build --release
./target/release/haarness doctorWhere does Haarness keep its files?
| Path | What is there |
|---|---|
~/.config/haarness/haarness.json |
Your settings (Configure Haarness) |
~/.config/haarness/config.toml |
Terminal UI settings, such as shortcuts |
~/.local/share/haarness/ |
Chats, logs, and provider credentials in auth.json, readable only by you |
<project>/.haarness/ |
Settings, agents, commands and skills for one project |
The same folders are used on Windows, under your user folder. haarness logs prints where the
logs are, and haarness logs --tail 50 shows the latest lines.
Where Haarness keeps its files has the
full list, including HAARNESS_HOME.
Your chats and code are not uploaded. Haarness shares a daily summary of usage counts unless you turn it off; see What Haarness shares.
Uninstall Haarness
- Quit Desktop and any terminal UI. In a project where Haarness may still be working,
haarness serve --stopends its background server. - Turn off what runs without you. Your operating system starts schedules on their own:
haarness schedule listshows them andhaarness schedule remove <id>deletes each one. If you connected this computer to Haarness Cloud,haarness remote statusshows its connector andhaarness remote revoke <id>takes its access away. - If you set up Haarness for Chrome, run
haarness browser removeand remove the extension in Chrome. - If you will delete your data too, sign out first with
haarness logout, and remove any MCP secret you stored in the system keychain withhaarness mcp secret remove <name>. - Delete the programs: the files in the install table. On Linux,
also delete
~/.local/bin/haarness-desktop,~/.local/share/applications/haarness-desktop.desktopand~/.local/share/icons/haarness-desktop.png. On Windows, remove Desktop under Settings → Apps. - To delete your settings, chats and stored keys, delete these folders. This cannot be undone.
~/.config/haarness,~/.local/share/haarness,~/.local/state/haarnessand~/.cache/haarnessin your home folder, on every system.- Desktop's own folder:
~/Library/Application Support/Haarnesson macOS,%APPDATA%\Haarnesson Windows,~/.config/Haarnesson Linux. On macOS, also~/Library/Application Support/dev.haarness.haarnessif it exists.
Next
Connect a provider so Haarness has a model to talk to.