Quick start
1. Choose a model
Section titled “1. Choose a model”Run the setup once:
garuda setupPick the provider (Claude, OpenRouter, or a local server such as Ollama) and the model, and paste
the key (the input is hidden; a local model needs no key). Garuda checks the key with one free
request, then stores the model as your default and the key in ~/.garuda/credentials, which only
you can read. garuda setup --show shows what is set.
Environment variables work too, and win over the stored values:
export ANTHROPIC_API_KEY=...export GARUDA_MODEL=claude-sonnet-5See Models for other providers.
2. Start a chat in your project
Section titled “2. Start a chat in your project”cd ~/my-projectgaruda # from a source build: node ~/garuda/dist/cli/index.jsAsk for a task, for example “Fix the failing test in src/cart.ts”. Garuda reads files with no question. It shows the diff of each edit and asks first. Commands run in the sandbox with no question; a command outside the sandbox asks, unless one of your allow rules covers it.
Useful in the chat:
@pathattaches a file:explain @src/cart.ts.!commandruns a command yourself, in the sandbox./planswitches to plan mode: Garuda only reads, and ends with a plan./undotakes back the last turn, with its file changes./helplists every command.
3. Run one task and exit
Section titled “3. Run one task and exit”garuda -p "Run the tests and tell me the result"garuda -p "Fix the lint errors" --output-format jsonThe JSON output has the fields of Claude Code’s headless mode, so the same scripts work.
4. Set your rules
Section titled “4. Set your rules”Put rules in .garuda/settings.json in the project. Deny rules always win:
{ "permissions": { "allow": ["bash(pnpm test*)", "edit_file(src/**)"], "deny": ["bash(git push*)"] }}Next: the security model, then the user guide.