Installation
nittle ships as a single self-contained binary. It embeds its own web client and needs no checkout, no Node, and no sidecar files. The only prerequisite is git on your PATH.
Install
Section titled “Install”curl -fsSL https://nittle.dev/install | shirm https://nittle.dev/install.ps1 | iexThe installer downloads the binary for your OS and architecture, verifies its SHA-256 against the published checksum manifest, and installs it to ~/.nittle/bin. It adds that directory to your PATH for you.
If you have a diffle install
Section titled “If you have a diffle install”Run the same installer. After it installs nittle, it runs nittle --version once, and the binary’s own first-run migration moves everything over: the data directory, the install directory and PATH entry, the agent plugins and MCP configs, and the browser prefs. Then it removes the diffle leftovers.
The installer also finds a diffle that was installed to a custom directory. It reads the directory from the old # >>> diffle >>> block in your rc file or from PATH, and only trusts a directory that really holds a diffle binary.
If the migration can’t finish, nittle keeps both copies, prints what is left, and tries again on the next run. Details are in Migrating from diffle.
Set up your coding agents
Section titled “Set up your coding agents”On a terminal, the installer finishes by asking Set up nittle for your coding agents? [Y/n] and runs nittle setup. It detects the agents you have installed, shows exactly what it will change, and asks before applying. You can run it any time, and nittle setup --remove undoes it. See Agent feedback.
nittle setupThe prompt is skipped when there’s no terminal, with NITTLE_DRY_RUN, or with NITTLE_NO_SETUP=1.
Verify
Section titled “Verify”-
Open a new terminal so
PATHchanges take effect. -
Check the version:
Terminal window nittle --version -
From any git repository, start a review:
Terminal window nittlenittle prints a
http://127.0.0.1:<port>URL and opens it in your browser.
Keep it current
Section titled “Keep it current”nittle updatenittle update downloads the latest release, verifies its checksum, and swaps the binary in place (on Windows the swap completes as the process exits). If a package manager installed nittle, it prints that manager’s upgrade command instead.
nittle also announces a new release in one line when you launch a review (at most one check a day). Set NITTLE_NO_UPDATE_CHECK=1 to silence it, or run nittle update --check to ask on demand.
Uninstall
Section titled “Uninstall”The uninstaller removes the binary and its PATH entry, and any diffle leftovers too. On a terminal, it first runs nittle setup --remove so agents you wired up with nittle setup stop pointing at the deleted binary. Cancelling that stops the uninstall with the binary still in place. Set NITTLE_NO_SETUP=1 to skip it. Without a terminal, run nittle setup --remove yourself before uninstalling.
It only removes empty directories. Your review records and settings stay in ~/.nittle until you delete them.
curl -fsSL https://nittle.dev/install | sh -s -- --uninstall # binary + PATH blockrm -rf ~/.nittle # also removes review records + settingsThe uninstall step removes the # >>> nittle >>> block from your rc file (and the old # >>> diffle >>> block, if there is one) and leaves the rest byte-identical. If you already have the script on disk, sh install.sh --uninstall does the same thing. NITTLE_UNINSTALL=1 works too.
$env:NITTLE_UNINSTALL = 1 # the binary, and its user PATH entryirm https://nittle.dev/install.ps1 | iexRemove-Item -Recurse -Force ~/.nittle # also removes review records + settingsFrom source (contributors)
Section titled “From source (contributors)”nittle’s server, CLI, and MCP runtime run on Bun. The client is a built Svelte SPA.
git clone https://github.com/codywilliamson/difflecd difflebun installbun run dev # backend + Vite with /api proxied