# How to Install no-mistakes: Complete Setup Guide for macOS, Linux, and Windows

> Install no-mistakes effortlessly on macOS Linux and Windows with our simple setup guide. Get the CLI daemon and agent skill running in one step. Perfect for beginners.

- Repository: [Kun Chen/no-mistakes](https://github.com/kunchenguid/no-mistakes)
- Tags: getting-started
- Published: 2026-06-28

---

**Run `curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | sh` on macOS/Linux or `irm https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.ps1 | iex` on Windows to install the no-mistakes CLI, daemon, and agent skill in one step.**

`no-mistakes` is a Go-based CLI from the `kunchenguid/no-mistakes` repository that orchestrates Git workflows through a background daemon and agent-readable skills. Learning how to install no-mistakes requires placing three components—the binary, the daemon, and the skill file—into the correct locations on your system. This guide covers automated scripts, Go toolchain installation, and manual compilation methods.

## Installation Methods

### One-Liner Script (macOS and Linux)

The fastest way to install no-mistakes on Unix-like systems uses the installer script at [`docs/install.sh`](https://github.com/kunchenguid/no-mistakes/blob/main/docs/install.sh). This script queries the GitHub Releases API for the newest tag, downloads the tarball, and configures the binary.

```bash
curl -fsSL https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.sh | sh

```

According to lines 31-40 of [`docs/install.sh`](https://github.com/kunchenguid/no-mistakes/blob/main/docs/install.sh), the script builds the download URL dynamically based on your architecture. Lines 48-55 copy the binary to `$HOME/.no-mistakes/bin`, while lines 63-74 create a symlink in `$HOME/.local/bin` or `/usr/local/bin`, using `sudo` only if the target directory requires root access.

### PowerShell Script (Windows)

Windows users can use the equivalent PowerShell script located at `docs/install.ps1`.

```powershell
irm https://raw.githubusercontent.com/kunchenguid/no-mistakes/main/docs/install.ps1 | iex

```

This performs the same steps as the Unix installer: downloading the release, extracting the binary, adding it to your PATH, and restarting the daemon service.

### Go Install (Cross-Platform)

If you have a recent Go toolchain, use `go install` to build locally without embedded telemetry IDs. This compiles the entry point at [`cmd/no-mistakes/main.go`](https://github.com/kunchenguid/no-mistakes/blob/main/cmd/no-mistakes/main.go) directly.

```bash
go install github.com/kunchenguid/no-mistakes/cmd/no-mistakes@latest
export PATH=$HOME/go/bin:$PATH

```

This method places the binary in `$HOME/go/bin` rather than `$HOME/.no-mistakes/bin`, but functions identically once added to your PATH.

### Build from Source

Clone the repository and use the Makefile to build and install. This method is ideal for developers modifying [`internal/daemon/manager.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/daemon/manager.go) or [`internal/skill/skill.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/skill/skill.go).

```bash
git clone https://github.com/kunchenguid/no-mistakes.git
cd no-mistakes
make build
make install

```

The `Makefile` targets (lines 45-49) build the binary and execute `daemon stop/start` to ensure the new version is active.

## What the Installer Configures

The installation process places three distinct pieces:

- **Binary**: The `no-mistakes` executable from [`cmd/no-mistakes/main.go`](https://github.com/kunchenguid/no-mistakes/blob/main/cmd/no-mistakes/main.go) that drives the Git proxy, TUI, and `axi` interface. Installed to `$HOME/.no-mistakes/bin`.
- **Daemon**: A long-running process defined in [`internal/daemon/manager.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/daemon/manager.go) that manages disposable worktrees, runs the pipeline, and serves the `axi` API. Platform-specific service installers live in `internal/daemon/service_*.go`.
- **Skill**: An agent-readable text file sourced from [`internal/skill/skill.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/skill/skill.go) and stored at [`skills/no-mistakes/SKILL.md`](https://github.com/kunchenguid/no-mistakes/blob/main/skills/no-mistakes/SKILL.md) that the daemon registers with the `axi` layer.

As implemented in lines 31-80 of [`docs/install.sh`](https://github.com/kunchenguid/no-mistakes/blob/main/docs/install.sh), the installer:
1. Downloads the latest release tarball
2. Copies the binary to `$HOME/.no-mistakes/bin`
3. Symlinks to a directory in your `$PATH`
4. Executes `"$BIN_PATH" daemon restart` (line 80) to activate the background service

## Prerequisites

Before installing no-mistakes, ensure you have:

- **Git** – Required for all installation methods
- **LLM Agent binary** – One of `claude`, `codex`, `opencode`, `pi`, `copilot`, or an `acp:<target>` endpoint
- **Provider CLIs** (optional) – `gh`, `glab`, or Bitbucket environment variables if you intend to push to GitHub, GitLab, or Bitbucket

## Verify Installation

Confirm the binary is accessible and restart the daemon to ensure the latest version is running:

```bash
which no-mistakes

# Output: ~/.local/bin/no-mistakes

no-mistakes daemon restart

```

Initialize your first repository gate to complete setup:

```bash
no-mistakes init

```

This creates a bare repository at `~/.no-mistakes/repos/<hash>.git` for gate management and registers the skill with your local agent.

## Summary

- **One-liner scripts** at [`docs/install.sh`](https://github.com/kunchenguid/no-mistakes/blob/main/docs/install.sh) and `docs/install.ps1` provide the fastest installation on macOS, Linux, and Windows
- **Three components** are installed: the CLI binary ([`cmd/no-mistakes/main.go`](https://github.com/kunchenguid/no-mistakes/blob/main/cmd/no-mistakes/main.go)), the daemon ([`internal/daemon/manager.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/daemon/manager.go)), and the agent skill ([`internal/skill/skill.go`](https://github.com/kunchenguid/no-mistakes/blob/main/internal/skill/skill.go))
- **Go install** builds locally without telemetry IDs using `go install github.com/kunchenguid/no-mistakes/cmd/no-mistakes@latest`
- **Source builds** use the `Makefile` targets `build` and `install` for development workflows
- **Prerequisites** include Git and at least one supported LLM agent binary

## Frequently Asked Questions

### Where does the installer put the no-mistakes binary?

The script copies the binary to `$HOME/.no-mistakes/bin` and creates a symlink in `$HOME/.local/bin` or `/usr/local/bin`. According to lines 63-74 of [`docs/install.sh`](https://github.com/kunchenguid/no-mistakes/blob/main/docs/install.sh), if the target directory requires elevated permissions, the installer prompts for `sudo` access during the symlink creation phase.

### Can I install no-mistakes without root privileges?

Yes. The default installation to `$HOME/.local/bin` does not require root. The installer only uses `sudo` if it cannot write to the target directory in your PATH, falling back to user-owned directories when possible.

### What is the difference between the script install and `go install`?

The script install downloads pre-compiled release binaries from GitHub with embedded telemetry IDs, while `go install` compiles the binary locally from [`cmd/no-mistakes/main.go`](https://github.com/kunchenguid/no-mistakes/blob/main/cmd/no-mistakes/main.go) without telemetry. Both methods result in a functional `no-mistakes` CLI, but `go install` requires a Go toolchain and places the binary in `$HOME/go/bin` by default.

### How do I update an existing no-mistakes installation?

Run the same install command again. The [`docs/install.sh`](https://github.com/kunchenguid/no-mistakes/blob/main/docs/install.sh) script downloads the latest release and restarts the daemon automatically via line 80 (`"$BIN_PATH" daemon restart`). Alternatively, if you built from source, run `make install` again to trigger the daemon restart logic defined in the `Makefile`.