> ## Documentation index
> Fetch the complete documentation index at: https://haarness.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 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:

```sh
curl -fsSL https://haarness.ai/install.sh | sh
```

On Windows, in PowerShell:

```powershell
irm https://haarness.ai/install.ps1 | iex
```

The 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

```sh
curl -fsSL https://haarness.ai/install.sh | sh -s -- --no-desktop
```

```powershell
$env:HAARNESS_NO_DESKTOP='1'; irm https://haarness.ai/install.ps1 | iex
```

On 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-certificates` package, which minimal container
  images leave out. musl systems such as Alpine are not supported yet. Desktop starts faster when
  FUSE 2 is installed (`libfuse2`, or `libfuse2t64` on Ubuntu 24.04 and later); the installer
  reminds you when it is missing.

## Check that it works

```sh
haarness --version
haarness doctor
```

`doctor` 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

```sh
haarness desktop
```

This opens Desktop, and installs it first if you skipped it. To install only Desktop:

```sh
curl -fsSL https://haarness.ai/install.sh | HAARNESS_PRODUCT=desktop sh
```

```powershell
$env:HAARNESS_PRODUCT='desktop'; irm https://haarness.ai/install.ps1 | iex
```

Desktop includes its own copy of Haarness, so it works without the CLI. See
[Install and first run](https://haarness.ai/docs/desktop/install.md) 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](https://haarness.ai/docs/desktop/use-your-chrome.md)
walks through it.

## Update Haarness

```sh
haarness --update
```

This 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](https://haarness.ai/docs/desktop/install.md#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) |

```sh
curl -fsSL https://haarness.ai/install.sh | HAARNESS_CHANNEL=preview sh
```

The [download page](https://haarness.ai/download) shows the exact commands for each channel.

## Verify a download yourself

The [download page](https://haarness.ai/download) 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:

```sh
shasum -a 256 haarness-macos-arm64
```

[All checksums](https://haarness.ai/download/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.

```sh
git clone https://github.com/haarness/haarness
cd haarness
cargo build --release
./target/release/haarness doctor
```

## Where does Haarness keep its files?

| Path | What is there |
| --- | --- |
| `~/.config/haarness/haarness.json` | Your settings ([Configure Haarness](https://haarness.ai/docs/cli/configuration.md)) |
| `~/.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](https://haarness.ai/docs/cli/troubleshooting.md#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](https://haarness.ai/docs/cli/stats-and-insights.md#what-does-haarness-share-with-haarness-cloud).

## Uninstall Haarness

1. Quit Desktop and any terminal UI. In a project where Haarness may still be working,
   `haarness serve --stop` ends its background server.
2. Turn off what runs without you. Your operating system starts schedules on their own:
   `haarness schedule list` shows them and `haarness schedule remove <id>` deletes each one. If
   you connected this computer to Haarness Cloud, `haarness remote status` shows its connector
   and `haarness remote revoke <id>` takes its access away.
3. If you set up Haarness for Chrome, run `haarness browser remove` and remove the extension in
   Chrome.
4. If you will delete your data too, sign out first with `haarness logout`, and remove any MCP
   secret you stored in the system keychain with `haarness mcp secret remove <name>`.
5. Delete the programs: the files in the [install table](#install-with-one-command). On Linux,
   also delete `~/.local/bin/haarness-desktop`,
   `~/.local/share/applications/haarness-desktop.desktop` and
   `~/.local/share/icons/haarness-desktop.png`. On Windows, remove Desktop under
   **Settings → Apps**.
6. To delete your settings, chats and stored keys, delete these folders. This cannot be undone.
   - `~/.config/haarness`, `~/.local/share/haarness`, `~/.local/state/haarness` and
     `~/.cache/haarness` in your home folder, on every system.
   - Desktop's own folder: `~/Library/Application Support/Haarness` on macOS,
     `%APPDATA%\Haarness` on Windows, `~/.config/Haarness` on Linux. On macOS, also
     `~/Library/Application Support/dev.haarness.haarness` if it exists.

## Next

[Connect a provider](https://haarness.ai/docs/start/connect-a-provider.md) so Haarness has a model to talk to.
