[!IMPORTANT]
Receipt-Driven Development (RDD) is the supported stable path, and it is opt-in.v2.2.0was the historical release where that path became supported after RDD began inv1.47.0: small work stays direct, broader implementation is delegated, SDD stays optional, and once RDD is enabled every route converges on structural proof, bounded review, an exact receipt, and delivery authorization. RDD is off until you enable it withgentle-ai review mode enable --scope global.The current stable release is
v2.3.0.@latestis the stable channel:bashgo install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@latestTo opt into the current prerelease,
v2.4.0-rc.1, install its exact tag:bashgo install github.com/gentleman-programming/gentle-ai/v2/cmd/[email protected]Use
@mainonly for unreleased development changes. See the full RDD version policy.Note the
/v2suffix: Go requires it for major version 2 and above. Releases beforev2.0.0use the unsuffixed import path.
What It Does
Gentle-AI is NOT an AI agent installer. It adapts the agent runtime(s) already on your machine; it never installs one for you. If a selected agent isn't detected, Gentle-AI refuses and names the exact command you'd run yourself instead. It is an ecosystem configurator that equips the AI coding agent(s) you already use with persistent memory, Spec-Driven Development (SDD), curated skills, MCP servers, model routing, a teaching-oriented persona, and bounded native review.
Before: "I installed Claude Code / OpenCode / Cursor, but it's just a chatbot that writes code."
After: Your agent now has memory, skills, workflow, MCP tools, and a persona that actually teaches you.
Supported Agent Integrations
| Agent | Delegation Model | Key Feature |
|---|---|---|
| Claude Code | Full (Task tool) | Sub-agents, output styles |
| OpenCode | Full (multi-mode overlay) | Per-phase model routing |
| Kilo Code | Full (multi-mode overlay) | OpenCode-compatible config in ~/.config/kilo |
| Gemini CLI | Full (experimental) | Custom agents in ~/.gemini/agents/ |
| Cursor | Full (native subagents) | 10 SDD agents in ~/.cursor/agents/ |
| VS Code Copilot | Full (runSubagent) | Parallel execution |
| Codex | Solo-agent | CLI-native, TOML config |
| Windsurf | Solo-agent | Plan Mode, Code Mode, native workflows |
| Antigravity | Solo-agent + Mission Control | Built-in Browser/Terminal sub-agents |
| Kimi Code | Full (native custom agents) | Modular prompt templates in ~/.kimi |
| Kiro IDE | Full (native subagents) | Native ~/.kiro/agents/ + steering orchestration |
| Qwen Code | Full (native sub-agents) | Slash commands, ~/.qwen/commands/, auto_edit mode |
| OpenClaw | Solo-agent | Workspace-first AGENTS.md / SOUL.md with global MCP config |
| Trae | Solo-agent | Desktop app by ByteDance; ~/.trae/skills/ + OS-specific rules |
| Pi | Full (package-managed subagents) | First-class gentle-pi harness with Pi-native persona/models, SDD, and Engram memory |
| Hermes | Detect-only | YAML MCP config, SOUL.md persona; install manually first |
Pi is package-managed, not just configured. Selecting Pi installs the first-class
gentle-piharness, which owns Pi-native persona and model controls, SDD assets, chains, and memory wiring.
Note: This project supersedes Agent Teams Lite (now archived). Everything ATL provided is included here with better installation, automatic updates, and persistent memory.
Organic Routing and Review Boundaries
Every configured agent receives the same outcome-first routing, even when the optional SDD component is not selected. Ask for the outcome; the agent uses exactly one implementation route and reviews the candidate only after implementation.
| Situation | Expected behavior |
|---|---|
| Understanding needs 1-3 files, or one mechanical file change is already understood | Keep the bounded action direct and inline. |
| Understanding needs 4+ files, reading prepares a write, broad research is needed, or a writer changes 2+ non-trivial files | Delegate the narrow exploration or one focused writer without creating SDD state. |
| Durable proposal, spec, design, and task artifacts would materially reduce substantial ambiguity | Offer optional SDD; select it only after an explicit request or an accepted proposal. |
| A candidate is ready for review | Freeze the exact bytes and derive review effort from evidence, never size alone. Interactive starts ask once per clone before reviewer work; non-interactive tier-1/tier-2 starts proceed without prompting and report how to disable review mode. |
| Commit, push, PR, or release | Validate the same content-bound receipt at the applicable delivery gate; never silently reopen review or create another budget. |
| Scope changes or an operation is interrupted | Use provider-owned status, recovery, and reconciliation; do not infer authority or replay safety from narration. |
Implementation routing does not decide review strength, and per-action test, build, install, or review workers do not change the selected route. Native commands own repository identity, candidate scope, lifecycle transitions, receipts, and safe continuations. See Organic Implementation Routing, the Organic RDD architecture, and the review authority threat model.
Quick Start
Install (recommended)
[!NOTE]
gentle-ai installrequires Node.js 18+ and npm on every platform (it warns if either is missing). See Prerequisites for your distro's install hint.
macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Gentleman-Programming/gentle-ai/main/scripts/install.sh | bashWindows (PowerShell)
go install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@latest[!WARNING]
Windows source builds and CI/runtime tests remain supported, but official Windows binary distribution and Scoop are temporarily unavailable. Windows installation and upgrades require Go 1.25.10+ and fail closed to source-install guidance; they never download an unsigned Gentle AI executable or execute a remote update script.
[!IMPORTANT]
After replacing or upgrading thegentle-aibinary, rungentle-ai syncto refresh its managed assets. See the sync and upgrade reference.
Configure project context
Once your agents are configured, open your AI agent in a project and run these two commands to register the project context:
| Command | What it does | When to re-run |
|---|---|---|
/sdd-init |
Detects stack, testing capabilities, activates Strict TDD Mode if available | When your project adds/removes test frameworks, or first time in a new project |
gentle-ai skill-registry refresh |
Scans installed skills and project conventions, builds the registry | After installing/removing skills, or first time in a new project |
These are not required for basic usage. The SDD orchestrator runs /sdd-init automatically if it detects no context. Startup hooks normally keep the skill registry fresh for agents that support hooks, including Codex, Claude Code, OpenCode, and Pi through gentle-pi. If you start Pi with pi -ns, startup skill loading/hooks are skipped, so run the registry refresh manually when you need updated project rules.
Run gentle-ai doctor at any time for a read-only health check of your ecosystem (tool binaries, state.json, Engram reachability, disk space).
Alternative install and scope options
Homebrew (macOS / Linux)
brew tap Gentleman-Programming/homebrew-tap
brew trust --formula gentleman-programming/tap/gentle-ai # one-time, for Homebrew tap trust
brew install gentle-aiGo install: stable channel (any platform with Go 1.25.10+)
go install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@latestNote the /v2 in the module path: Go requires it for major version 2 and
above. Releases before v2.0.0 use the unsuffixed path.
Scoop (Windows) โ temporarily unavailable while official Windows binary distribution is held for public-trust Authenticode signing. Use the Windows go install command above.
By default, gentle-ai install writes agent-scoped files to each selected agent's global config directory. To keep the Gentleman stack isolated to one project, run:
gentle-ai install --scope=workspaceWorkspace scope applies to selected agents for agent-scoped files such as system prompts, skills, SDD agents, and persona files. Global-only integrations remain global by design.
Unreleased development channel (main) โ use only to test changes that are not part of a release. The managed beta installer tracks main; it requires Go 1.25.10+:
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/Gentleman-Programming/gentle-ai/main/scripts/install.sh | bash -s -- --channel beta
# Windows (PowerShell)
$env:GENTLE_AI_CHANNEL="beta"; go install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@mainRDD version policy
Receipt-Driven Development (RDD) started in gentle-ai v1.47.0 on 2026-07-10, with the first bounded native review transactions, and became the supported stable path in v2.2.0. Those are historical milestones; the negotiated public review contract was published in v2.1.6.
The current stable release is v2.3.0. The current prerelease is v2.4.0-rc.1. main is unreleased development.
Stable channel (@latest, currently v2.3.0)
go install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@latest
gentle-ai versionPrerelease channel (v2.4.0-rc.1)
go install github.com/gentleman-programming/gentle-ai/v2/cmd/[email protected]
gentle-ai versionUnreleased development (main)
go install github.com/gentleman-programming/gentle-ai/v2/cmd/gentle-ai@main
gentle-ai versionThe managed installer tracks the channel's latest version and does not accept an arbitrary release pin. Use go install when reproducibility requires an exact version.
Core Workflow
- Install and configure. Run the installer, select the agents and components you want, then open your agent in a project.
- Use the smallest implementation route. Keep bounded work direct, delegate actions that need fresh context, and use SDD only after an explicit request or an accepted proposal. SDD artifacts can live in Engram for cross-session memory, OpenSpec for versioned files, or hybrid for both.
- Build with discipline.
/sdd-initdetects project testing capabilities; when Strict TDD is active, SDD apply works test-first. SDD verify audits RED/GREEN evidence and runs verification. Agents that support delegation use focused subagents instead of one growing conversation. - Review one candidate. After implementation, bounded native review freezes the candidate and issues one content-bound receipt. Commit, push, and PR validate that same receipt. Releases validate native authority and its receipt, unless the protected-main fast path has the exact tag/current
origin/mainSHA, exact-SHA successful CI, a remote-head recheck, and no fresh risk.
Trust what the system can derive, not agent narration. Chapter 21 โ Verifiable Trust explains the mental model: agents assess the candidate; native authority and delivery gates independently derive what may be trusted.
Upgrade, then sync. Refresh the binary and the managed agent assets together:
bashgentle-ai upgrade gentle-ai sync
The flow at a glance
Once you enable it, both implementation routes converge on RDD: a bounded native review freezes the candidate and issues the one receipt that every delivery gate validates โ review is never reopened for unchanged content. RDD is opt-in, so with it off both routes deliver under ordinary repository policy instead.
Organic route (no SDD) โ the agent picks the smallest useful route and RDD enters at the end, over the frozen candidate:
flowchart TD
A["User requests a change(Claude Code ยท OpenCode ยท Codex...)"] --> B{"Implementationroute"}
B -->|"decide/verify1โ3 files"| C["Direct inline"]
B -->|"4+ file explorationor 2+ non-trivial writes"| D["Delegated direct(one bounded worker)"]
C --> E["Implementation + tests"]
D --> E
E --> F{"RDD enabled?(user-owned, opt-in)"}
F -->|"off (default)"| Z["Ordinary deliveryreports disabled/unmanaged"]
F -->|"on (explicitly enabled)"| G["review status --next-transition(provider-owned negotiated route)"]
G --> H{"Risk frozenat START"}
H -->|"low"| I["Structural readback0 lenses ยท silent"]
H -->|"standard"| J["1 focus lens+ consent"]
H -->|"high"| K["Canonical 4R + consent + forecastRisk ยท Readability ยท Reliability ยท Resilience"]
J --> L["Reviewers inspect the immutable candidate(review inspect-candidate)"]
K --> L
L --> M{"Severe candidate-causedfindings?"}
I --> N["Receipt: approved"]
M -->|"no"| N
M -->|"yes"| O["One bounded correction(frozen budget)"]
O --> P["Fix validator(read-only, immutable trees)"]
P -->|"passes"| N
P -->|"fails with evidence"| Q["Escalated"]
P -->|"no access to the diff"| R["Inconclusive: attempt notconsumed, capture again"]
R --> P
Q --> S["review recover(authorized successor)"]
N --> T["Delivery gatespre-commit โ pre-push โ pre-prvalidate the SAME receipt"]
T --> U["Commit โ Push โ PR"]
Z --> U
style N fill:#2D4F67,color:#fff
style Q fill:#B8860B,color:#fff
style U fill:#2D4F67,color:#fffSDD route โ durable planning artifacts first, then apply, with RDD reviewing the candidate before verify and archive requiring the receipt:
flowchart TD
A["User: sdd-new / sdd-explore(or sdd-ff to fast-forward planning)"] --> B["Exploreinvestigate codebase and approaches"]
B --> C["Proposeintent ยท scope ยท approach"]
C --> D{"User approvesthe proposal?"}
D -->|"no"| B
D -->|"yes"| E["Specrequirements + scenarios"]
E --> F["Designarchitecture decisions"]
F --> G["Tasksordered deliverable checklist"]
G --> H["Applysub-agent implements against specs(sdd-attempt acquire/settle ยท CAS ยท budgets)"]
H --> I["RDD over the frozen candidate"]
subgraph RDD["RDD โ same machine as the organic route"]
I --> J{"Risk"}
J -->|"low"| K["Structural readback"]
J -->|"standard / high"| L["1 lens or 4R + consent"]
L --> M{"Severe findings?"}
M -->|"yes"| N["One bounded correction+ fix validator"]
M -->|"no"| O["Receipt: approved"]
K --> O
N -->|"validates"| O
N -->|"fails"| P["Escalated โ recover"]
end
O --> Q["Verifyindependent verification againstspec ยท design ยท tasks"]
Q -->|"passes"| R["Archivemerge delta-specs ยท close the cycle(requires reviewGate allow or disabled)"]
Q -->|"fails"| H
R --> S["Delivery gatesvalidate the same receipt"]
S --> T["Commit โ Push โ PR"]
style O fill:#2D4F67,color:#fff
style P fill:#B8860B,color:#fff
style T fill:#2D4F67,color:#fffSize, file count, or perceived risk never select SDD on their own โ only an explicit request or an accepted proposal does. Either way, one candidate gets one review, one possible correction, and one receipt.
Control receipt-driven development
Review mode is user-owned and available independently of the review lifecycle. Receipt-driven development is opt-in: it is off until you turn it on.
gentle-ai review mode status --cwd .
gentle-ai review mode enable --scope global --cwd .
gentle-ai review mode disable --cwd .status is read-only. With no source expressing an opinion the effective mode is off, reported as decided by default; only an explicit global enable turns review on. Any global or clone-local disabled source wins; a clone can opt out with --scope clone but cannot force review on, so --scope global is the only way in. Enabling applies only to future candidates, while declining a one-candidate review prompt does not change the mode. When review is off, existing exact governing receipts remain authoritative; otherwise native review gates report disabled/unmanaged and defer delivery to ordinary repository policy without fabricating approval.
Historical note: v2.2.2 introduced the native delivery-gate disabled/unmanaged disposition. Current SDD status does not use that disposition: with review disabled, it skips review authority, emits no reviewGate, and pre-verify continues without routing to a review that cannot start. Archive proceeds under ordinary repository policy when reviewGate is absent; a present reviewGate.result: allow is required only for discovered review activity. This differs from native delivery gates, which report disabled/unmanaged when review is disabled.
Release verification
Official macOS and Linux release archives require an authenticated checksums.txt. The built-in upgrader verifies its Minisign signature, its exact Gentleman-Programming/gentle-ai + release-tag binding, and the selected archive checksum before replacing the installed binary. Release archives are capped at 128 MiB, including chunked or unknown-length responses. Missing, oversized, malformed, untrusted, or placeholder key material fails closed without changing the installed binary.
To verify a release manually, obtain the production public-key payload and fingerprint from a maintainer-controlled channel, then download checksums.txt and checksums.txt.minisig from the same release:
minisign -VQm checksums.txt -x checksums.txt.minisig -P "$GENTLE_AI_MINISIGN_PUBLIC_KEY"
# Expected output: repo=Gentleman-Programming/gentle-ai;tag=vX.Y.Z
sha256sum --check --strict --ignore-missing checksums.txtDo not bootstrap trust from a public key downloaded only beside the artifacts it verifies. See Release signing and key rotation for the first-signed-release procedure, exact CI injection points, and rotation runbook.
Windows archives and Scoop publication remain omitted until publicly trusted RSA Authenticode signing is provisioned (prefer managed OIDC with Azure Artifact Signing), both amd64 and arm64 executables are signed before archive and checksum generation, and release verification fails if either executable is unsigned.
Review a focused staged candidate
For a monorepo or shared worktree, explicitly review exactly what is in the Git index:
git add apps/my-service
git diff --cached
gentle-ai review start --projection stagedThe staged projection freezes the complete existing index, including all previously staged paths. It starts review but does not itself issue an approved receipt; unstaged and untracked worktree content is excluded. The default workspace projection remains the complete workspace review, and an existing authority is never auto-converted between projections. See the review authority threat model for delivery and base-ref details.
Backups
Every install, sync, and upgrade automatically snapshots your config files. Backups are compressed (tar.gz), deduplicated (identical configs are not re-backed up), and auto-pruned (keeps the 5 most recent). Pin important backups via the TUI (p key) to protect them from pruning.
See Backup & Rollback Guide for details.
Key Features You Should Know About
OpenCode SDD Profiles
Assign different AI models to different SDD phases -- a powerful model for design, a fast one for implementation, a cheap one for exploration. OpenCode uses gentle-orchestrator as the base SDD conductor, and generated named profiles still appear as sdd-orchestrator-{name} entries.
# Via CLI
gentle-ai sync --profile cheap:openrouter/qwen/qwen3-30b-a3b:free
gentle-ai sync --profile-phase cheap:sdd-design:anthropic/claude-sonnet-4-20250514
# Or via TUI: gentle-ai โ "OpenCode SDD Profiles" โ CreateAfter creating a profile, open OpenCode and press Tab to switch between gentle-orchestrator (default) and your custom profiles.
| What you need | Use this |
|---|---|
| Default SDD conductor | gentle-orchestrator |
| Legacy configs | sdd-orchestrator is migrated to gentle-orchestrator on sync |
| Named model profiles | sdd-orchestrator-cheap, sdd-orchestrator-premium, etc. |
Full guide: OpenCode SDD Profiles
Engram (Persistent Memory)
Your AI agent automatically remembers decisions, bugs, and context across sessions. You don't need to do anything -- but when you do:
engram projects list # See all projects with memory counts
engram projects consolidate # Fix name drift ("my-app" vs "My-App")
engram search "auth bug" # Find a past decision from the terminal
engram tui # Visual memory browserFull reference: Engram Commands
Documentation
| Your task | Start here |
|---|---|
| Understand the Gentle-AI mental model | Intended Usage |
| Choose direct, delegated, or optional SDD routing | Organic Implementation Routing |
| Plan substantial work with SDD | Intended Usage and OpenSpec Config |
| Configure a supported agent | Agents for the feature matrix and per-agent notes |
| Use the Pi package harness | Pi Agent for packages, Pi-native commands, models, and troubleshooting |
| Configure OpenCode phase models | OpenCode SDD Profiles |
| Review or deliver a change safely | Review Integration Contract for provider consumers; Review Authority Threat Model for technical boundaries; Chapter 21 โ Verifiable Trust for the mental model |
| Find or share persistent context | Engram Commands |
| Refresh or troubleshoot an installation | Usage, Backup & Rollback, and Platforms |
| Extend or contribute to Gentle AI | Codebase Guide, Components, Skills & Presets, Skill Registry, and Architecture & Development |
| Understand how agent behavior is tested | Testing Agents Deterministically for the real-agent E2E and its model fixture |
Community Highlights
This project gets better when the community builds on top of it.
Community Integrations
- sub-agent-statusline โ optional OpenCode TUI plugin that shows sub-agent activity, status, elapsed time, and token/context usage when OpenCode exposes it.
- sdd-engram-plugin โ optional OpenCode TUI plugin to manage SDD profiles and browse Engram memories directly from OpenCode, with runtime profile activation and no restart required.
When you select OpenCode in the installer, Gentle-AI asks whether to register each community plugin and offers a browser shortcut to review the repository first. Gentle-AI only ensures ~/.config/opencode/tui.json exists and adds the plugin package names to its plugin array; OpenCode installs/loads those packages the next time it starts. Once OpenCode has materialized a plugin under ~/.config/opencode/node_modules/, gentle-ai update can compare its local package.json version with the plugin's GitHub releases.
Contributors
This project exists because of the community. See CONTRIBUTORS.md for the full list.
Next Steps
- Just installed? Read Intended Usage for the mental model, then run
gentle-ai doctorif anything looks wrong. - Starting work? Read Organic Implementation Routing to understand direct, delegated, and optional SDD behavior.
- Reviewing a focused change? Start with the Organic RDD architecture and review authority threat model.
- Maintaining Gentle AI? Use the Codebase Guide to find package ownership and review boundaries.
- Using Pi? Read Pi Agent for the
gentle-piharness, Pi commands, persona, and model assignments. - Ready to contribute? Start at the Community Roadmap โ everything labelled
up-for-grabsis scoped, approved and unclaimed. Then read CONTRIBUTING.md.