Skip to content
Workflow · AI agents

Guarded Ralph loop

Run an agent in a Ralph-style loop with guard rails: a fresh process per pass, state in files, iteration and no-progress limits, and a check it cannot fake.

Verified install Not agent-tested v1.0.0 MIT updated anybashgit
Equips
  • 1 1 Rules
  • 1 1 Skills
  • – 0 MCP

The Ralph loop (one prompt, re-run in a fresh agent process until the work is done) went mainstream this autumn: Claude Code and Codex both shipped /goal, and practitioners noticed that plugin versions often keep one long context instead of clearing it. This loadout keeps the original idea and adds the limits people learnt the hard way: a branch-only runner, a check command run outside the agent every pass, a false DONE removed, an edited prompt ending the loop, iteration, timeout and no-progress caps, and a STOP file. A self-test drives the runner with fake agents through every exit path.

What's in it

  • Fresh agent process per pass; plan, progress and prompt live in .ralph/
  • DONE only counts when the check passes outside the agent
  • Iteration, per-pass timeout and no-progress limits, plus a STOP file
  • Refuses to run on main or master; never pushes or merges
  • Works with claude -p, codex exec and agy -p; /goal compared honestly

You'll need

  • Tools: bash, git
Level 1 · automated

Verification

Verified install

Checked at commit 03c1b98 · 9 passed, 0 failed, 1 not applicable

CheckResultWhat we found
Listinglisting.yaml matches the schema and declares every file in the folder. Pass
Schema valid; 7 files declared, none missing or extra
  • tested.status: untested (agent tests are separate from Level 1)
Files parseJSON parses; SKILL.md and .mdc front matter is valid YAML with the fields each agent needs; code fences are closed. Pass All 7 files parse; front matter valid
AdaptersCLAUDE.md imports @AGENTS.md, GEMINI.md imports @./AGENTS.md, and both match the generator. Pass
CLAUDE.md and GEMINI.md import AGENTS.md and are up to date
  • CLAUDE.md: matches the generator
  • GEMINI.md: matches the generator
Install pathsEvery file lands where each agent documents it, with no collisions, and the laid-out project is re-discovered correctly. Pass
Correct paths for all 6 agents; layouts re-discovered
  • Claude Code: 6 files, 1 skill in .claude/skills/
  • Codex CLI: 5 files, 1 skill in .agents/skills/
  • Cursor: 5 files, 1 skill in .agents/skills/
  • Gemini CLI: 6 files, 1 skill in .agents/skills/
  • Antigravity CLI: 5 files, 1 skill in .agents/skills/
  • GitHub Copilot: 5 files, 1 skill in .agents/skills/
MCP configmcp.json is structurally valid, converts to each agent's format, declares no literal secrets, and referenced packages exist on npm/PyPI. Not applicable No MCP servers in this loadout
Safety scanThe intake scanner finds no credentials, risky shell, hidden Unicode or prompt-injection wording, and the listing's network flag is honest. Pass
Clean: no credentials, risky shell or hidden text
  • Scanner intake-precheck/1: verdict clean; network no (listing says yes)
ReferencesLinks and file paths between the loadout's files resolve, including for each agent's installed layout. Pass 2 references between files resolve for every agent
Size limitsFile count and sizes are within the submission limits; SKILL.md bodies stay under 500 lines. Pass
7 files, 10.6 KB total; largest skills/ralph-loop/SKILL.md 3.1 KB
  • Limits: 30 files, 32 KB per file, 128 KB total, 500 lines per skill or rule
LicenceA recognised SPDX licence, with the licence text available. Pass MIT, by Agent Loadout; text in the repository LICENSE
Starter buildA minimal fixture project with the loadout applied installs and builds or type-checks, and the loadout's own code examples compile. Pass
The installed runner passes its self-test against fake agents in both skill layouts: every exit path, the false-DONE check, prompt tampering, the STOP file and the per-pass timeout
  • Applied 11 loadout files at every agent's paths
  • ✓ bash -n on the scripts: bash -c for f in .claude/skills/ralph-loop/scripts/*.sh; do bash -n "$f" || exit 1; done; echo syntax ok
  • ✓ self-test (Claude Code layout): bash .claude/skills/ralph-loop/scripts/selftest.sh
  • ✓ self-test (.agents layout): bash .agents/skills/ralph-loop/scripts/selftest.sh
  • Covers: Refuses to start on main (exit 5)
  • Covers: An idle agent stops on no progress (exit 3); a busy one stops at the iteration limit (exit 2)
  • Covers: DONE with a green check exits 0; a false DONE is removed and logged
  • Covers: A pass that edits the prompt ends the loop; the STOP file ends it; a hung pass is timed out and logged

What this means: a script checked the files themselves: they parse, they install where each agent looks, any MCP config is sound, the safety scan is clean, references between files resolve, and, where a free and repeatable fixture exists, a small starter project builds with the loadout applied. No AI agent was run. Per-agent results ("tested with agent") are separate and stay untested until an agent actually runs.

Install

Choose your agent. Run the commands from your project root, or download a zip already laid out in the right folders.

Claude Code reads CLAUDE.md (imports AGENTS.md with @AGENTS.md) and skills from .claude/skills/.

Download zip
curl -fsSL --create-dirs -o AGENTS.md https://loadout.jnw-it.com/raw/ralph-loop-guarded/1.0.0/AGENTS.md
curl -fsSL --create-dirs -o CLAUDE.md https://loadout.jnw-it.com/raw/ralph-loop-guarded/1.0.0/CLAUDE.md
curl -fsSL --create-dirs -o .claude/skills/ralph-loop/SKILL.md https://loadout.jnw-it.com/raw/ralph-loop-guarded/1.0.0/skills/ralph-loop/SKILL.md
curl -fsSL --create-dirs -o .claude/skills/ralph-loop/references/PROMPT.md https://loadout.jnw-it.com/raw/ralph-loop-guarded/1.0.0/skills/ralph-loop/references/PROMPT.md
curl -fsSL --create-dirs -o .claude/skills/ralph-loop/scripts/ralph.sh https://loadout.jnw-it.com/raw/ralph-loop-guarded/1.0.0/skills/ralph-loop/scripts/ralph.sh
curl -fsSL --create-dirs -o .claude/skills/ralph-loop/scripts/selftest.sh https://loadout.jnw-it.com/raw/ralph-loop-guarded/1.0.0/skills/ralph-loop/scripts/selftest.sh
FileGoes to
AGENTS.mdAGENTS.md
CLAUDE.mdCLAUDE.md
skills/ralph-loop/SKILL.md.claude/skills/ralph-loop/SKILL.md
skills/ralph-loop/references/PROMPT.md.claude/skills/ralph-loop/references/PROMPT.md
skills/ralph-loop/scripts/ralph.sh.claude/skills/ralph-loop/scripts/ralph.sh
skills/ralph-loop/scripts/selftest.sh.claude/skills/ralph-loop/scripts/selftest.sh

Already have an AGENTS.md or CLAUDE.md? The commands above overwrite it — download the file instead and merge the sections you want.

Files

Rules AGENTS.md Per-pass rules for an agent running in a loop. 23 lines
Download Raw
# AGENTS.md: guarded agent loop (Ralph style)

This repository may be worked on by an agent running in a loop: the same prompt, a fresh context each pass,
progress kept in files. These rules apply on every pass.

## Each pass
- Read `.ralph/prompt.md`, then `.ralph/plan.md` and the last 20 lines of `.ralph/progress.md`. Nothing else carries over.
- Pick ONE unchecked item from the plan. Do only that item.
- Run the check command from the prompt before you finish. Do not tick an item while checks fail.
- Tick the item in `.ralph/plan.md` and append one line to `.ralph/progress.md`: date, item, result, next step.
- Commit with a message naming the item. One item, one commit.
- When every item is ticked and checks pass, create `.ralph/DONE` containing one line of evidence (the check output summary).

## Never
- Never edit `.ralph/prompt.md`, the check command, CI config or tests you were not asked to change, to make a pass look green.
- Never delete or skip a failing test. Fix it, or write the blocker into `.ralph/progress.md` and stop.
- Never push, deploy, merge or touch the default branch. The loop runs on its own branch; a human lands it.
- Never install new dependencies unless the plan item says so.
- If the same item fails twice in a row, write `BLOCKED: <reason>` in `.ralph/progress.md` and stop without creating `.ralph/DONE`.

## Starting a loop
Use the `ralph-loop` skill. It sets up `.ralph/`, a branch and the guarded runner with limits.
Adapter CLAUDE.md Imports AGENTS.md for Claude Code. 10 lines
Download Raw
# CLAUDE.md

@AGENTS.md

## Claude Code notes
- Skills from this loadout live in `.claude/skills/`: `ralph-loop`. Use them when their description matches the task.
- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.

<!-- From the Agent Loadout "Guarded Ralph loop" v1.0.0 — https://loadout.jnw-it.com/loadouts/ralph-loop-guarded/ -->
Adapter GEMINI.md Imports AGENTS.md for Gemini CLI. 10 lines
Download Raw
# GEMINI.md

@./AGENTS.md

## Gemini CLI notes
- Skills from this loadout live in `.agents/skills/`: `ralph-loop`. Use them when their description matches the task.
- Follow AGENTS.md above; where this file and AGENTS.md disagree, AGENTS.md wins.

<!-- From the Agent Loadout "Guarded Ralph loop" v1.0.0 — https://loadout.jnw-it.com/loadouts/ralph-loop-guarded/ -->
Skill skills/ralph-loop/SKILL.md Set up, run and review a guarded loop. 54 lines
Download Raw
---
name: ralph-loop
description: Set up and run a guarded Ralph-style loop (fresh agent process per pass, state in files, iteration and no-progress limits, independent check). Use when a task is a long list of similar, checkable steps.
---

# Guarded Ralph loop

A Ralph loop re-runs one prompt in a fresh agent process until the work is done. Fresh context each pass is the point:
state lives in files, not in the conversation. The guard rails stop the classic failures: endless loops, a pass that
"fixes" the tests, and quiet drift.

## When to use it
- Good fit: migrations, porting, test backfill, lint clean-up, one checklist item per pass, each provable by a command.
- Bad fit: design work, anything without a check command, anything touching production.

## Set up
1. Create a branch: `git switch -c ralph/<task>`. The runner refuses to start on main, master or a detached HEAD.
2. `mkdir -p .ralph` and copy `references/PROMPT.md` to `.ralph/prompt.md`. Fill in the goal, constraints and check command.
3. Write `.ralph/plan.md` as a checklist, one small item per line (`- [ ] ...`). Ask the human to approve it.
4. Copy `scripts/ralph.sh` into the repository (for example `scripts/ralph.sh`) and make it executable.
5. Add `.ralph/log/` to `.gitignore`. Keep `prompt.md`, `plan.md` and `progress.md` committed.

## Run
Set the agent command and the check, then start. The prompt file path is in `$RALPH_PROMPT`.

    AGENT_CMD='claude -p --permission-mode acceptEdits --max-budget-usd 3 < "$RALPH_PROMPT"' \
    CHECK_CMD='npm test' MAX_ITER=15 scripts/ralph.sh

Other agents (one process per pass in each case):
- Codex: `AGENT_CMD='codex exec --sandbox workspace-write - < "$RALPH_PROMPT"'`
- Antigravity CLI: `AGENT_CMD='agy -p "$(cat "$RALPH_PROMPT")" --cwd .'`

Limits (environment variables): `MAX_ITER` (default 10), `MAX_NO_PROGRESS` passes without a new commit or diff
(default 2), `PASS_TIMEOUT` seconds per pass (default 1800). Create `.ralph/STOP` to stop after the current pass.

Exit codes: 0 done and checks green, 2 iteration limit, 3 no progress, 4 stopped by `.ralph/STOP`, 5 refused to start.

## Guard rails the runner enforces
- `.ralph/DONE` only counts if `CHECK_CMD` passes after the pass. A false DONE is removed and logged.
- The check runs outside the agent, every pass. The agent cannot mark its own homework.
- `.ralph/prompt.md` is hashed at start; a pass that edits it ends the loop (exit 5).
- Each pass's output goes to `.ralph/log/pass-N.txt` for review.

## In-session alternatives
Claude Code `/goal` and Codex `/goal` keep one session working towards a condition, judged by a separate evaluator
(Claude) or the goal tracker (Codex). They are convenient, but the context is not cleared between turns. Use this runner
when you want a clean context per pass and limits enforced outside the agent; use `/goal` for shorter jobs.

## After the loop
Review `git log --oneline` and `.ralph/progress.md`, run the full test suite yourself, and open a pull request. Never let
the loop merge its own work.

Self-test: `bash scripts/selftest.sh` runs the runner against fake agents and checks every exit path.
Skill file skills/ralph-loop/references/PROMPT.md Loop prompt template for .ralph/prompt.md. 17 lines
Download Raw
# Loop prompt (copy to .ralph/prompt.md)

Goal: <one sentence: the end state>

Read first: AGENTS.md, .ralph/plan.md, the last 20 lines of .ralph/progress.md.

Each pass:
1. Pick the first unchecked item in .ralph/plan.md. Do only that item.
2. Run the check: <command, for example npm test>. It must pass before you tick the item.
3. Tick the item, append one line to .ralph/progress.md (date, item, result, next step) and commit.
4. If every item is ticked and the check passes, write the check summary to .ralph/DONE.

Constraints:
- Do not edit .ralph/prompt.md, tests you were not asked to change, CI config or lockfiles.
- No new dependencies unless the item says so. No pushes, deploys or merges.
- If the item fails twice, append "BLOCKED: <reason>" to .ralph/progress.md and stop.
Skill file skills/ralph-loop/scripts/ralph.sh The guarded runner with limits and exit codes. 56 lines
Download Raw
#!/usr/bin/env bash
# Guarded Ralph loop: one fresh agent process per pass, state in .ralph/, hard limits, check run outside the agent.
# Exit codes: 0 done, 2 iteration limit, 3 no progress, 4 stopped by .ralph/STOP, 5 refused to start or prompt edited.
set -uo pipefail

: "${AGENT_CMD:?set AGENT_CMD, for example: claude -p --permission-mode acceptEdits < \"\$RALPH_PROMPT\"}"
: "${CHECK_CMD:?set CHECK_CMD, for example: npm test}"
MAX_ITER="${MAX_ITER:-10}"
MAX_NO_PROGRESS="${MAX_NO_PROGRESS:-2}"
PASS_TIMEOUT="${PASS_TIMEOUT:-1800}"
DIR=".ralph"
export RALPH_PROMPT="$DIR/prompt.md"

say() { printf 'ralph: %s\n' "$*"; }
log() { printf '%s %s\n' "$(date -u +%Y-%m-%dT%H:%M:%SZ)" "$*" >> "$DIR/progress.md"; }
state() { printf '%s %s' "$(git rev-parse HEAD 2>/dev/null)" "$(git status --porcelain=v1 -- . ":(exclude)$DIR/log" | sha256sum | cut -c1-16)"; }

git rev-parse --is-inside-work-tree >/dev/null 2>&1 || { say "not a git repository"; exit 5; }
branch="$(git symbolic-ref --quiet --short HEAD || true)"
case "$branch" in
  ""|main|master) say "refusing to run on '${branch:-detached HEAD}'; create a ralph/<task> branch first"; exit 5 ;;
esac
[ -f "$RALPH_PROMPT" ] || { say "missing $RALPH_PROMPT"; exit 5; }
mkdir -p "$DIR/log"
prompt_hash="$(sha256sum "$RALPH_PROMPT" | cut -c1-64)"
no_progress=0

for ((i = 1; i <= MAX_ITER; i++)); do
  if [ -f "$DIR/STOP" ]; then say "stop file found before pass $i"; log "stopped by .ralph/STOP"; exit 4; fi
  before="$(state)"
  say "pass $i/$MAX_ITER"
  timeout "$PASS_TIMEOUT" bash -c "$AGENT_CMD" > "$DIR/log/pass-$i.txt" 2>&1
  rc=$?
  [ "$rc" -eq 124 ] && log "pass $i timed out after ${PASS_TIMEOUT}s"

  if [ "$(sha256sum "$RALPH_PROMPT" | cut -c1-64)" != "$prompt_hash" ]; then
    say "pass $i edited $RALPH_PROMPT; stopping"; log "pass $i edited the prompt; loop stopped"; exit 5
  fi

  if [ -f "$DIR/DONE" ]; then
    if bash -c "$CHECK_CMD" > "$DIR/log/check-$i.txt" 2>&1; then
      say "done after $i pass(es); check passed"; log "done after $i passes; check passed"; exit 0
    fi
    say "pass $i wrote DONE but the check fails; removing DONE"; rm -f "$DIR/DONE"; log "pass $i: false DONE removed (check failed)"
  fi

  if [ "$(state)" = "$before" ]; then
    no_progress=$((no_progress + 1))
    say "no change in pass $i ($no_progress/$MAX_NO_PROGRESS)"
    if [ "$no_progress" -ge "$MAX_NO_PROGRESS" ]; then log "no progress for $no_progress passes; loop stopped"; exit 3; fi
  else
    no_progress=0
  fi
done
say "iteration limit ($MAX_ITER) reached"; log "iteration limit $MAX_ITER reached"; exit 2
Skill file skills/ralph-loop/scripts/selftest.sh Drives the runner with fake agents through every exit path. 48 lines
Download Raw
#!/usr/bin/env bash
# Runs ralph.sh against fake agents in throwaway repositories and checks every exit path.
set -u
here="$(cd "$(dirname "$0")" && pwd)"
runner="$here/ralph.sh"
pass=0; failed=0

repo() {
  local d; d="$(mktemp -d)"
  ( cd "$d" && git init -q -b main && git config user.email t@example.com && git config user.name t \
    && mkdir .ralph && echo "goal" > .ralph/prompt.md && echo "- [ ] a" > .ralph/plan.md && : > .ralph/progress.md \
    && git add -A && git commit -qm init && git switch -qc ralph/test )
  echo "$d"
}
expect() { # name, want-exit, dir, env...
  local name="$1" want="$2" d="$3"; shift 3
  ( cd "$d" && env MAX_ITER=4 PASS_TIMEOUT=20 "$@" bash "$runner" > out.txt 2>&1 ); local got=$?
  if [ "$got" -eq "$want" ]; then pass=$((pass + 1)); else failed=$((failed + 1)); echo "FAIL: $name (exit $got, wanted $want)"; cat "$d/out.txt"; fi
}

d="$(repo)"; ( cd "$d" && git switch -q main )
expect "refuses main" 5 "$d" AGENT_CMD=true CHECK_CMD=true

d="$(repo)"
expect "idle agent stops on no progress" 3 "$d" AGENT_CMD=true CHECK_CMD=true

d="$(repo)"
expect "busy agent hits the iteration limit" 2 "$d" 'AGENT_CMD=date +%s%N >> work.txt && git add work.txt && git commit -qm pass' CHECK_CMD=true

d="$(repo)"
expect "DONE with a green check exits 0" 0 "$d" 'AGENT_CMD=echo ok > .ralph/DONE' CHECK_CMD=true

d="$(repo)"
expect "false DONE is removed and the loop goes on" 3 "$d" 'AGENT_CMD=echo ok > .ralph/DONE' CHECK_CMD=false
grep -q "false DONE removed" "$d/.ralph/progress.md" && pass=$((pass + 1)) || { failed=$((failed + 1)); echo "FAIL: false DONE not logged"; }

d="$(repo)"
expect "editing the prompt stops the loop" 5 "$d" 'AGENT_CMD=echo cheat >> .ralph/prompt.md' CHECK_CMD=true

d="$(repo)"; touch "$d/.ralph/STOP"
expect "STOP file stops the loop" 4 "$d" AGENT_CMD=true CHECK_CMD=true

d="$(repo)"
expect "a pass that hangs is timed out" 3 "$d" 'AGENT_CMD=sleep 30' CHECK_CMD=true PASS_TIMEOUT=1
grep -q "timed out" "$d/.ralph/progress.md" && pass=$((pass + 1)) || { failed=$((failed + 1)); echo "FAIL: timeout not logged"; }

if [ "$failed" -eq 0 ]; then echo "ok: $pass cases"; else echo "failed: $failed of $((pass + failed))"; exit 1; fi

All files: source zip · Licence MIT · By Agent Loadout · First listed

Installing and testing

How do I install Guarded Ralph loop in Claude Code?

From your project root, put AGENTS.md, CLAUDE.md, skills/ralph-loop/SKILL.md at .claude/skills/ralph-loop/SKILL.md, skills/ralph-loop/references/PROMPT.md at .claude/skills/ralph-loop/references/PROMPT.md, skills/ralph-loop/scripts/ralph.sh at .claude/skills/ralph-loop/scripts/ralph.sh, skills/ralph-loop/scripts/selftest.sh at .claude/skills/ralph-loop/scripts/selftest.sh. The "Claude Code" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ralph-loop-guarded/claude-code.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.

How do I install Guarded Ralph loop in Codex CLI?

From your project root, put AGENTS.md, skills/ralph-loop/SKILL.md at .agents/skills/ralph-loop/SKILL.md, skills/ralph-loop/references/PROMPT.md at .agents/skills/ralph-loop/references/PROMPT.md, skills/ralph-loop/scripts/ralph.sh at .agents/skills/ralph-loop/scripts/ralph.sh, skills/ralph-loop/scripts/selftest.sh at .agents/skills/ralph-loop/scripts/selftest.sh. The "Codex CLI" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ralph-loop-guarded/codex.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.

How do I install Guarded Ralph loop in Cursor?

From your project root, put AGENTS.md, skills/ralph-loop/SKILL.md at .agents/skills/ralph-loop/SKILL.md, skills/ralph-loop/references/PROMPT.md at .agents/skills/ralph-loop/references/PROMPT.md, skills/ralph-loop/scripts/ralph.sh at .agents/skills/ralph-loop/scripts/ralph.sh, skills/ralph-loop/scripts/selftest.sh at .agents/skills/ralph-loop/scripts/selftest.sh. The "Cursor" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ralph-loop-guarded/cursor.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.

How do I install Guarded Ralph loop in Gemini CLI?

From your project root, put AGENTS.md, GEMINI.md, skills/ralph-loop/SKILL.md at .agents/skills/ralph-loop/SKILL.md, skills/ralph-loop/references/PROMPT.md at .agents/skills/ralph-loop/references/PROMPT.md, skills/ralph-loop/scripts/ralph.sh at .agents/skills/ralph-loop/scripts/ralph.sh, skills/ralph-loop/scripts/selftest.sh at .agents/skills/ralph-loop/scripts/selftest.sh. The "Gemini CLI" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ralph-loop-guarded/gemini-cli.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.

How do I install Guarded Ralph loop in Antigravity CLI?

From your project root, put AGENTS.md, skills/ralph-loop/SKILL.md at .agents/skills/ralph-loop/SKILL.md, skills/ralph-loop/references/PROMPT.md at .agents/skills/ralph-loop/references/PROMPT.md, skills/ralph-loop/scripts/ralph.sh at .agents/skills/ralph-loop/scripts/ralph.sh, skills/ralph-loop/scripts/selftest.sh at .agents/skills/ralph-loop/scripts/selftest.sh. The "Antigravity CLI" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ralph-loop-guarded/antigravity-cli.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.

How do I install Guarded Ralph loop in GitHub Copilot?

From your project root, put AGENTS.md, skills/ralph-loop/SKILL.md at .agents/skills/ralph-loop/SKILL.md, skills/ralph-loop/references/PROMPT.md at .agents/skills/ralph-loop/references/PROMPT.md, skills/ralph-loop/scripts/ralph.sh at .agents/skills/ralph-loop/scripts/ralph.sh, skills/ralph-loop/scripts/selftest.sh at .agents/skills/ralph-loop/scripts/selftest.sh. The "GitHub Copilot" tab on this page has the curl commands, or download https://loadout.jnw-it.com/download/ralph-loop-guarded/copilot.zip, which is already laid out. Do not overwrite an existing AGENTS.md or CLAUDE.md; merge it.

Has Guarded Ralph loop been tested?

It passed the Level 1 automated install checks on 2026-10-17: the files parse, install to each agent's documented paths, and pass the safety scan. No AI agent has run it yet, so no agent pass or fail is claimed.

More for Claude Code, Codex, Cursor, Gemini CLI, Antigravity CLI and GitHub Copilot.