Skip to content

Garuda documentation

This page is generated from docs/README.md in the repository.

Garuda is a terminal coding agent in TypeScript on Node. This folder describes how it is built. The website shows these documents at https://madhu-sv.github.io/garuda/docs/design/ (generated from this folder at each deploy).

Document What it answers
Architecture What the parts are, how they depend on each other, where the trust boundaries are, and why.
High-level design How a task flows through the system: start, turns, tool calls, approvals, sandbox, sessions, extensions.
Low-level design One document per component: its types, algorithms, limits and tests.
Release How a version goes to npm (trusted publishing) and to the Homebrew tap.

Low-level design documents:

Component Source Document
CLI and chat src/cli/ cli.md
Runtime and agent loop src/app/, src/loop/ runtime-and-loop.md
Models and providers src/model/ model.md
Tools src/tools/ tools.md
Permissions src/permissions/ permissions.md
Sandbox (Executor) src/sandbox/ sandbox.md
Sessions src/session/ session.md
Context (prompt, memory, compaction) src/context/ context.md
Code index src/knowledge/ knowledge.md
MCP client src/mcp/ mcp.md
Web fetch and web search src/web/, src/net/, src/tools/webFetch.ts, src/tools/webSearch.ts web.md
Hooks src/hooks/ hooks.md
Language profiles src/lang/ languages.md
Subagents (explore, custom agents, MoE language specialists) src/agents/ agents.md
Custom slash commands src/commands/ commands.md
LSP diagnostics src/lsp/ lsp.md
Undo src/undo/, src/session/undo.ts undo.md
Init and migration src/init/ init.md
Skills src/skills/ skills.md
Evals src/evals/ evals.md
Scheduled jobs (0.7), proof of work and the night shift (0.11) src/jobs/, src/cli/jobCommand.ts, src/cli/nightCommand.ts jobs.md
Formatters (0.10) src/format/, afterWrite in src/tools/types.ts format.md
Editors over ACP (0.15) src/acp/, src/cli/acpCommand.ts acp.md
Bounded changes (0.17, planned): staged commands, job write scopes, strict profile, audit checkpoint, shared budget src/sandbox/, src/permissions/, src/jobs/, src/audit/, src/agents/, src/knowledge/ bounded-changes.md
Setup and stored keys (0.16) src/model/credentials.ts, src/model/providers.ts, src/cli/setupCommand.ts setup.md

The requirements doc defines the IDs used here: F1–F26 (functional) and N1–N8 (non-functional). The code, the tests and the commits use the same IDs. The documents describe version 0.16.1 (garuda setup and the editor sign-in; editors over ACP since 0.15.0; on top of 0.14.1: the 0.14–0.17 branches after the merge gate and Garuda’s own review of nine areas).