Planner · coder · reviewer
A lean orchestrator plans the work. Fresh coders take one task at a time. Reviewers check the result before it lands.
// terminal agent · built for small models
Ninja-CLI is a multi-agent coder for your terminal. Plan with whatever model you trust, ship with a small local one — or stay fully offline on a consumer GPU or Mac mini. One-line install. No accounts, no background service, no monorepo checkout.
$ curl -sfL https://ninja-cli.btaskee.work/install.sh | bash
$ curl -sfL https://ninja-cli.pages.dev/install.sh | bash
$ cd your-project && ninja
▄▀▀▀▀▀▀▀▀▄ ▄▀██████████▀▄ ████████████████ ████▀▀▀██▀▀▀████ ▄▄ ███▀▀▀▄▀▀▀▄▀▀███▄█▀▀▀▄ ████████████████▀▀▀▀▀ ▀█▀██████████▀█▀▀▀▀ ▄▄█▀▀▀██████▀▀▀███ █▀██████▀█████████▀█ ▄▀███▀▀▀█▀▀▀████████▀▄ █████▀▀█████▀▀▀▀▀█████ █▀▀████▀█▀▀███▀████▀▀█ ██▀████▀▀▀█▀▀█▀▀▀███████ ▀▄█▀██▀▀█████▀▀▀██ ▀▀ ▄█▀▀████▀████▀█████ ███▀ ███▀██████████ ▄██████████████▄ ██▀▀▀▀▀██▀▀▀▀▀██
Built for the model that fits on your desk — not the one that requires a cloud bill. Multi-agent by default, local-first by design.
A lean orchestrator plans the work. Fresh coders take one task at a time. Reviewers check the result before it lands.
Built so a 7B–14B coder on consumer hardware can ship real changes — not just chat about them.
Plan with a strong model, execute with a fast local one. Mix cloud and home lab per role if you want.
~18 MB. No Node, no Python, no daemon. Drop it on PATH and go.
Every shell command is screened before it runs. Dangerous patterns are denied — even with auto-approve.
Edits are snapshotted first. If a run goes sideways, rewind restores files without archaeology.
A real TUI for approvals, status, and session flow — not a web wrapper pretending to be a CLI.
MCP servers as tools. Builtin skills seed on first run; full text loads only when activated.
Serper-backed search and page fetch, a researcher agent, and parallel fan-out for multi-angle questions.
Optional git worktrees keep concurrent agents on separate branches so contexts stay clean.
Fan a goal across several models with different lenses, then synthesize one plan you can actually ship.
Run with -p for scripts and pipelines. Text or NDJSON out; policy gate still applies.
Most agents share one crowded context for every retry and side quest. Ninja-CLI keeps planning, coding, and review in separate lanes so each step stays focused — and small models stay useful.
you ──▶ orchestrator ──▶ plan │ ├─▶ coder (fresh context · one task) │ │ │ ▼ ├─▶ reviewer (approve / fix loop) │ │ │ ▼ ├─▶ researcher (web_search · read_url · optional deep_research fan-out) │ └─▶ land (or rewind if it went sideways) // shell commands always pass a hard safety gate first // optional: plan with a panel of models, then synthesize // optional: deep_research fans 2–6 questions to parallel researchers
Implementation work runs in short-lived agents that only see the task they were given — then they’re gone.
Code is checked, not one-shot. Fix rounds exist so a small model can recover instead of shipping the first miss.
Reads can auto-flow; mutations ask. Trust lists and approval modes match how carefully you want to run.
Point Ninja-CLI at llama.cpp, Ollama, LM Studio, or a cloud API. Defaults aim at a local server so you can start without an account.
| Setup | Example |
|---|---|
| 12 GB VRAM GPU | 7B–14B coder (Qwen, DeepSeek-Coder, Gemma class) via llama.cpp / Ollama / LM Studio |
| 16 GB Apple Silicon | Same model class on unified memory — Mac mini friendly |
| Hybrid | Strong model plans; small local model codes and reviews |
| Cloud only | Any OpenAI-compatible API — set base URL, key, model |
$ export OPENAI_BASE_URL=http://localhost:8080 $ export OPENAI_MODEL=your-local-model $ ninja
# optional: different model for subagents $ export NINJA_SUBAGENT_MODEL=your-small-coder $ export NINJA_SUBAGENT_BASE_URL=http://localhost:8080
Small models are less predictable. Ninja-CLI is built so you can still let them work — with a safety net that doesn’t rely on the model being careful.
One curl and ninja is on your PATH. Point it at your model server and open a project. First run writes an annotated config example and seeds builtin skills under your config dir (loadable via activate_skill — not injected into every prompt).
$ curl -sfL https://ninja-cli.btaskee.work/install.sh | bash
$ curl -sfL https://ninja-cli.pages.dev/install.sh | bash
$ cd your-project && ninja