Installation

Ninja ships as a single static binary (~6 MB compressed download). No Node, Python, or runtime service required.

One-line install

Linux / macOS

curl -sfL https://ninja-cli.btaskee.work/install.sh | bash

Mirror (same deploy):

curl -sfL https://ninja-cli.pages.dev/install.sh | bash

Installs to ~/.local/bin/ninja. Pin a version:

NINJA_VERSION=v0.1.0-beta.1 curl -sfL https://ninja-cli.btaskee.work/install.sh | bash

Windows (PowerShell)

irm https://ninja-cli.btaskee.work/install.ps1 | iex

Installs to %LOCALAPPDATA%\ninja and adds it to user PATH. Open a new terminal afterward.

Git Bash / MSYS / WSL can use the bash installer.

macOS Gatekeeper

If macOS blocks the binary:

xattr -d com.apple.quarantine ~/.local/bin/ninja

Manual download

Compressed artifacts under https://ninja-cli.btaskee.work/releases/latest/:

Platform File
Linux amd64 ninja-linux-amd64.gz
Linux arm64 ninja-linux-arm64.gz
macOS Apple Silicon ninja-darwin-arm64.gz
macOS Intel ninja-darwin-amd64.gz
Windows amd64 ninja-windows-amd64.exe.zip
Windows arm64 ninja-windows-arm64.exe.zip

Unix example:

curl -sfL -o ninja.gz https://ninja-cli.btaskee.work/releases/latest/ninja-linux-amd64.gz
gzip -dc ninja.gz > ninja && chmod +x ninja
mv ninja ~/.local/bin/ninja

Verify install

ninja --version
ninja doctor    # config, model endpoint, MCP, session dir

doctor works even before a model is reachable (it will report endpoint status).

Uninstall / remove

Ninja is a single binary plus optional config and session data. There is no

package manager entry to reverse — delete the paths you care about.

Linux / macOS — binary only

rm -f ~/.local/bin/ninja

Linux / macOS — full remove (binary + config + sessions)

# Binary
rm -f ~/.local/bin/ninja

# Config, MCP, user skills, allowlists, cloudflare.env, …
# Linux:  ~/.config/ninja
# macOS:  ~/Library/Application Support/ninja
rm -rf ~/.config/ninja
rm -rf "$HOME/Library/Application Support/ninja"   # macOS only if present

# Saved sessions (Linux / macOS)
rm -rf ~/.local/share/ninja

Project-local data (optional — only in repos where you ran Ninja):

# From a project root
rm -rf .ninja

Windows (PowerShell) — binary only

Remove-Item -Force "$env:LOCALAPPDATA\ninja\ninja.exe" -ErrorAction SilentlyContinue
# Optional: remove install dir if empty of other files
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\ninja" -ErrorAction SilentlyContinue

If the installer added %LOCALAPPDATA%\ninja to your user PATH, remove

that entry in *Settings → System → About → Advanced system settings →

Environment Variables*, or:

$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
$installDir = Join-Path $env:LOCALAPPDATA "ninja"
$parts = $userPath -split ";" | Where-Object { $_ -and ($_ -ne $installDir) }
[Environment]::SetEnvironmentVariable("Path", ($parts -join ";"), "User")

Windows — full remove

Remove-Item -Recurse -Force "$env:LOCALAPPDATA\ninja" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:APPDATA\ninja" -ErrorAction SilentlyContinue
# Project-local (from each repo):
# Remove-Item -Recurse -Force .ninja -ErrorAction SilentlyContinue

What each path is

Path Contents
~/.local/bin/ninja or %LOCALAPPDATA%\ninja\ninja.exe The binary
Config dir (~/.config/ninja, macOS Application Support, or %APPDATA%\ninja) config.json, mcp_config.json, user skills, allowlists, optional Cloudflare env
~/.local/share/ninja/sessions (Unix) Saved chat sessions
.ninja/ in a project Project skills, allowlists, MCP override

Builtin Ninjaskills live inside the binary only (not on disk). Removing the

binary is enough to drop them; user skills under the config skills dir are

removed with the config directory.

Next