v0.16.1 Set up once, sign in from your editor →

A coding agent that works inside the lines.

Garuda reads, edits and runs your code from the terminal, with the model you choose. Commands run in an OS sandbox that writes only in your project, temp folders and caches, edits ask first, and every decision goes to an audit log.

npm install -g @garuda-agent/garuda
A session, simplified.

Safety first

The model proposes. Your rules decide.

A coding agent runs commands and edits files for a model. Garuda puts each of those actions through checks that the model cannot turn off.

An OS sandbox for commands

Seatbelt on macOS, bubblewrap on Linux. Commands write only in the project, temp folders and package caches. Home secrets stay unreadable, and there is no network by default. Without a sandbox, each command asks first, unless your allow rule covers it.

Edits ask first

An edit shows its diff: allow it once, for the session, or not at all, or accept single hunks. Commands in the sandbox run with no question, inside its limits; a command outside it asks unless your allow rule covers it. /undo restores the files in its snapshot. Plan mode only reads.

A network allowlist

When you open the network, commands reach only the hosts you list, through Garuda's own proxy. Any other host asks first. IP addresses and private addresses are refused.

A team policy that projects cannot loosen

A managed file and ~/.garuda set denied commands and paths, a required sandbox, allowed models and step and token limits. They also hold for subagents and hooks.

A hash-chained audit log

Every permission decision, tool run and hook goes to a log outside the project. Secrets are redacted. /audit verify finds a changed, removed or inserted line.

Consent for project content

Hooks, MCP servers, slash commands, skills, agents and settings that loosen safety ask once. The answer is pinned to a hash, so a change asks again.

Read the security model →

Everyday work

A full agent, not only a guard rail.

The safety model costs you nothing in the daily flow. Commands in the sandbox run without a question.

Chat or headlessAn Ink chat with @files, !commands, /diff and sessions. Or -p with JSON output in Claude Code's headless format.
Any modelClaude, or open models through Ollama, LM Studio, llama.cpp, vLLM, OpenRouter or any OpenAI-compatible server.
Plan mode and undoPlan first, then build. /undo and /redo restore the files and the conversation of a turn.
ExtensionsMCP servers (stdio and remote, with OAuth), skills, custom agents, slash commands and hooks.
Code intelligenceA local index for TypeScript, Python, Java, Go and Rust: symbols, references, callers and impact.
Overnight jobsPlan now, build later on a job branch with an approval list. Proof of work: tests before and after, and a review.
EvalsBuilt-in task suites, and a benchmark made from your own repository's history.
DiagnosticsLanguage-server errors after each edit, and formatters, both opt-in.

Reviewed by itself

Before 0.14.0, Garuda read its own code.

Garuda reviewed seven areas of its code in plan mode, read only. Each finding was checked by hand, and each fix came with a test that fails without it. One finding was high: after Ctrl-C at an approval question, every later message of the chat failed.

How the review went →
7
areas reviewed, one run each
≈ $30
of model time for all runs
1
high-severity bug, found and fixed
800+
tests, with no internet and no API key

Get started

Up and running in a minute.

Install it with Homebrew or npm (Node 22 or later). Garuda runs on macOS and Linux, and is open source under the Apache-2.0 license.

# install it with npm
npm install -g @garuda-agent/garuda

# or with Homebrew
brew tap madhu-sv/garuda
brew trust --formula madhu-sv/garuda/garuda
brew install garuda

# once: choose a model and enter its key
garuda setup

# use it in your project
cd ~/my-project && garuda