{"id":"e134b36c-1173-4c01-b202-799e4e506228","slug":"graphyloop","kind":"mcp","name":"graphyloop","summary":"One-command agentic workflow kit for AI coding agents: wires Claude Code, OpenCode, Codex, Cursor, Gemini CLI, Oh My Pi and DeepSeek Harness with a 25-agent squad, parallel wave planning, persistent m","owner":"chadixearth","repoUrl":"https://github.com/chadixearth/graphyloop","license":"MIT","licenseTier":"permissive","trust":"community","stars":3,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-08-14T01:04:54.000Z","addedAt":"2026-10-21T04:58:53.597Z","logoUrl":"https://avatars.githubusercontent.com/u/164905891?u=0c495b6a447ba94dd2c1823aa82faa72c566754f&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","cloud-infra","memory-knowledge"],"tags":["agentic-workflow","ai","ai-agents","claude-code","cli","codex","cursor","developer-tools"],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T02:29:12.700Z","sample":false,"url":"https://conduits.dev/tools/graphyloop","language":"Python","transports":["stdio"],"install":{"npm":"graphyloop"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<div align=\"center\">\n\n<picture>\n  <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/chadixearth/graphyloop/main/assets/logo-dark.svg\">\n  <img src=\"https://raw.githubusercontent.com/chadixearth/graphyloop/main/assets/logo.svg\" alt=\"GraphyLoop\" width=\"320\">\n</picture>\n\n[![GraphyLoop](https://img.shields.io/badge/_GraphyLoop-any%20harness-6366f1?style=for-the-badge)](https://github.com/chadixearth/graphyloop)\n[![npm version](https://img.shields.io/npm/v/graphyloop?label=npx%20graphyloop&style=for-the-badge&logo=npm&color=cb3837)](https://www.npmjs.com/package/graphyloop)\n[![CI — Win/macOS/Linux × Node 20/22/24](https://github.com/chadixearth/graphyloop/actions/workflows/ci.yml/badge.svg)](https://github.com/chadixearth/graphyloop/actions/workflows/ci.yml)\n[![MIT License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)](LICENSE)\n\n# GraphyLoop\n\n</div>\n\nGraphyLoop is a one-command agentic workflow kit for AI coding agents: it wires Claude Code, OpenCode, Codex, Cursor, Gemini CLI, Oh My Pi and DeepSeek Harness with a 25-agent squad, parallel wave planning, persistent memory and an MCP server. Zero dependencies.\n\n[Landing page](https://chadixearth.github.io/graphyloop/) · [npm](https://www.npmjs.com/package/graphyloop) · [Harness guide](docs/harnesses.md) · [Reference](docs/reference.md) · [llms.txt](llms.txt)\n\n## Quick Start\n\n```bash\nnpx graphyloop        # a bare command installs — it wires every harness it detects\n# restart your harness, open a real project, then ask your agent:\n/chadi-init\n```\n\nRequires Node.js ≥ 20. On a fresh machine with no harness yet, GraphyLoop wires all seven so you are ready whichever one you open first. Target specific ones with `--harness claude,omp`. Nothing is written into your workspace — everything lives in your home config (`~/.graphyloop/` plus each harness's own directory).\n\n### Supported harnesses\n\n| Harness | `--harness` | Detected when | How GraphyLoop wires it | Start the workflow |\n|---|---|---|---|---|\n| **OpenCode** | `opencode` | `~/.config/opencode/` | plugin (`graphyloop_*` tools) + 26 agents + 15 `/chadi-*` commands + AGENTS.md | `/chadi-init` |\n| **Claude Code** | `claude` | `~/.claude/` or `~/.claude.json` | MCP server + 26 agents + 15 commands + AGENTS.md | `/chadi-init` |\n| **Codex** | `codex` | `~/.codex/` | MCP server + 15 prompts + AGENTS.md | `/prompts:chadi-init` |\n| **Cursor / Windsurf** | `cursor` | `~/.cursor/` | MCP server + AGENTS.md rule | ask: \"run the graphyloop workflow init\" |\n| **DeepSeek Harness** | `dsh` | `~/.dsh/` or `$DSH_HOME` | MCP server + 26 role prompts + `graphyloop-squad` skill + AGENTS.md | load the `graphyloop-squad` skill |\n| **Oh My Pi** | `omp` | `~/.omp/` | MCP server in `~/.omp/agent/mcp.json` + 26 squad agents + skills; AGENTS.md only if you have none | ask: \"run the graphyloop workflow init\" |\n| **Gemini CLI** | `gemini` | `~/.gemini/` | MCP server in `~/.gemini/settings.json` + `/chadi-*` TOML commands + bundled skills in `~/.gemini/skills/`; GEMINI.md only if you have none | `/chadi-init` |\n\nPer-harness file locations, verification and dsh notes: [docs/harnesses.md](docs/harnesses.md).\n\n### Setup with any AI assistant (copy-paste)\n\nPaste the block below into your AI harness — it installs, verifies (`GRAPH_LOOP_DOCTOR_OK`), and reports on its own. Raw copy: [`docs/SETUP-PROMPT.md`](docs/SETUP-PROMPT.md).\n\n```\nYou are setting up GraphyLoop (github.com/chadixearth/graphyloop, npm package `graphyloop`) — a one-command agentic workflow kit for AI coding agents: a 25-agent squad, parallel wave planning, persistent memory, a harness-neutral workflow and an MCP server that works in any harness. Zero dependencies.\n\nGoal: install it for THIS machine's harness(es), verify the install actually works, and report. Do NOT edit any config file by hand — run only the installer. Do NOT run npm publish, npm login, or anything unrelated.\n\nSteps:\n1. Prerequisites:\n   - Run `node --version` — must be 20 or newer. If older, tell the user to install Node.js 20+ and stop there.\n   - Detect which harnesses exist on this machine (check for any of): ~/.config/opencode/  (OpenCode), ~/.claude.json or ~/.claude/  (Claude Code), ~/.codex/  (Codex), ~/.cursor/  (Cursor / Windsurf), ~/.dsh/ or $DSH_HOME  (DeepSeek Harness / `dsh`), ~/.omp/  (Oh My Pi / `omp`), ~/.gemini/  (Gemini CLI). On Windows, ~ = %USERPROFILE%.\n2. Install:\n   - Run:  npx --yes graphyloop\n     (a bare `graphyloop` is the install command: it wires every detected harness, or all 7 on a fresh machine.)\n   - To target specific harnesses:  npx --yes graphyloop --harness claude,omp   (names: opencode, claude, codex, cursor, dsh, omp, gemini)\n   - If npx asks \"Ok to proceed?\", answer yes. If npx is missing, stop and tell the user to install Node.js 20+ (npx ships with npm).\n3. Verify — every applicable check must pass:\n   - `npx --yes graphyloop doctor` prints one row per harness (present / wired) and its LAST line must be GRAPH_LOOP_DOCTOR_OK. If it prints GRAPH_LOOP_DOCTOR_ISSUES <n>, run the `fix:` command it shows for each unwired row, then run doctor again.\n   - Core engine files exist: ~/.graphyloop/graphyloop/cli.mjs , ~/.graphyloop/mcp-server.mjs , ~/.graphyloop/lib/mcp.mjs , ~/.graphyloop/lib/engine.mjs .\n   - OpenCode (if present): ~/.config/opencode/opencode.json contains plugin entries \"./plugins/graphyloop/plugin.js\" and \"./plugins/server-guard/plugin.js\", and ~/.config/opencode/agents/ contains 26 .md files.\n   - Claude Code (if present): ~/.claude.json has an mcpServers.graphyloop entry, and ~/.claude/agents/ is populated.\n   - Codex (if present): ~/.codex/config.toml contains a [mcp_servers.graphyloop] section.\n   - Cursor (if present): ~/.cursor/mcp.json has a \"graphyloop\" entry.\n   - DeepSeek Harness (if present): ~/.dsh/cordis.patch.yml contains a row `id: graphyloop-mcp` naming '@deepseek-ai/dsh-mcp-client', ~/.dsh/AGENTS.md exists, and ~/.dsh/skills/ holds graphyloop-squad. Optional deeper check: `dsh --profile headless --dump-config` prints that row. In dsh the tools are namespaced — call them as mcp__graphyloop__<name> (e.g. mcp__graphyloop__swarm_state).\n   - Oh My Pi (if present): ~/.omp/agent/mcp.json has mcpServers.graphyloop, and ~/.omp/agent/agents/ holds the squad .md files. An existing ~/.omp/agent/AGENTS.md is intentionally kept — the workflow then loads from the bundled skill graphyloop-workflow.\n   - Gemini CLI (if present): ~/.gemini/settings.json has mcpServers.graphyloop, ~/.gemini/commands/chadi-init.toml exists, and ~/.gemini/skills/graphyloop-workflow/ exists. An existing ~/.gemini/GEMINI.md is intentionally kept.\n   - If any check fails: re-run the install with --force (automatic backups) and re-verify. Still failing? Report the exact error and stop.\n4. Wrap up: tell the user to RESTART their harness (close/reopen the terminal or editor), open a real project (not their home directory), and start the workflow: ask for /chadi-init (OpenCode, Claude Code, Gemini CLI), /prompts:chadi-init (Codex), or \"run the graphyloop workflow init\" (Oh My Pi, Cursor, Windsurf). In the DeepSeek Harness there are no slash commands: ask the agent to load the `graphyloop-squad` skill instead. Give a one-line summary of what was installed.\n\nDo not ask permission for reversible steps — proceed. Stop only for: Node < 20, an install failure, or a prompt you cannot answer.\n```\n\n## How the workflow works\n\n**Workflow v2** is harness-neutral: the same rules run in OpenCode, Claude Code, Codex, Cursor, Windsurf, DeepSeek Harness, Oh My Pi and Gemini CLI.\n\n```mermaid\nflowchart LR\n  A[Recall<br/>memory_search] --> B{Size the work}\n  B -- \"≤ 3 known files\" --> I[Inline edit<br/>no dispatch]\n  B -- \"4+ files or unmapped\" --> C[Context pack<br/>ctx-slug.md<br/>+ frozen contract]\n  C --> D[One wave<br/>parallel lanes, disjoint files]\n  D --> E[Verify<br/>run it, not just tests]\n  I --> E\n  E --> F[Report<br/>Changed / Files / Verified / Skills / Blocked]\n  F --> G[Record<br/>memory_store]\n```\n\n1. **Recall first, record last** — `memory_search` before planning, `memory_store` after.\n2. **Size the work** — ≤ 3 known files is an inline edit; 4+ files or unmapped code is a build.\n3. **Context pack before dispatch** — one batched read pass writes `ctx-<slug>.md` (path:line, current code, pattern to copy) so lanes start editing instead of rediscovering.\n4. **Freeze the contract** — `contract-<slug>.md` is the only cross-lane dependency.\n5. **One wave** — all independent lanes in one parallel dispatch, one lane per layer (data / backend / frontend / tests / UI), strictly disjoint file ownership, max 4 concurrent by default.\n6. **Turn economy** — lanes batch reads, make the first edit by turn 5 and finish by about turn 25.\n7. **No polling** — servers, builds and deploys run in the background; never a sleep loop.\n8. **Verify by running** — smoke the changed path; tests alone are not proof; UI in a real browser; artifacts by viewing the rendered file.\n9. **Audit wave only when needed** — reviewer/security for auth, data, tenant, payment, or a diff you cannot read end to end.\n10. **Artifact wave** for posters, decks, PDFs and video — freeze `brief-<slug>.md`, hero piece first, one lane per artifact.\n11. **Evidence-first report** — Changed / Files / Verified (verbatim output) / Skills / Blocked.\n\nThe `plan_feature` MCP tool does steps 3–5 for you: it returns the wave plan, writes the contract and context pack, and ends every builder lane brief with the turn-economy footer (the wave-0 lane that writes the contract and the integration/verify/deploy lanes get two shorter variants).\n\n## Features\n\n| Capability | Description |\n|---|---|\n| 🐝 **Swarm orchestration** | Spawn, distribute, and track agents with a hierarchical swarm topology — zero API keys, state in `<project>/.graphyloop/state.json` |\n| 🧠 **Persistent memory** | Store decisions, patterns, lessons, and events; keyword-search across sessions. Survives restarts and compactions |\n| 🤖 **25-agent squad** | Specialized agents for exploration, backend, frontend, testing, security, review, refactoring, docs, data, performance, and more (26 agent files including the driver; see [The squad](#the-squad-25-agents)) |\n| 🌊 **Wave planner** | One call turns \"I want an inventory system\" into context pack + contract → **database ∥ backend ∥ frontend ∥ tests** → integration → **test ∥ typecheck ∥ security ∥ performance ∥ review** → gated deploy, with file ownership and dependencies the engine enforces |\n| 🔌 **Universal MCP bridge** | The same 15 graphyloop tools work in all 7 harnesses — any MCP-capable harness |\n| 📋 **15 slash commands** | `chadi-init` · `chadi-fast` · `chadi-review` · `chadi-plan` · `chadi-waves` · `chadi-db` · `chadi-deploy` · `chadi-audit` · `chadi-release` · `chadi-research` · `chadi-confusing` · `chadi-discuss` · `chadi-go` · `chadi-recall` · `chadi-skills` |\n| 🔑 **Supabase + Vercel credentials** | Store keys once per project (chmod 600, git-ignored before the first write), sync them into the env file the framework reads, and preflight database/deploy work. Values are never returned to the model |\n| 📚 **70 bundled skills** | Contract-first waves, API hardening, frontend security, accessibility, web performance, dependency audit, Supabase, Vercel, secrets, memory, the workflow itself, plus a curated library of design, research, GSAP and three.js packs. A skill you already have is never overwritten ([details](docs/reference.md#configuration)) |\n| 🔒 **Config safety** | Timestamped backups before every write, never overwrites your config keys, idempotent re-runs, uninstall removes only byte-identical copies |\n| 🪟 **Windows hang guard** | `npm run dev` inside an agent session no longer freezes the turn: server-guard starts the server without inheriting the tool's stdout pipe, so the call returns in milliseconds while the server keeps serving |\n| ⚡ **Zero dependencies** | Pure Node (≥ 20), no npm packages at runtime, no shell scripts — installs the same on every platform. MIT licensed |\n\n### Harness alone vs + GraphyLoop\n\n| Capability | Harness alone | + GraphyLoop |\n|---|---|---|\n| Agent collaboration | Isolated sessions | Swarm with shared memory |\n| Orchestration | Manual | Workflow v2: context pack, frozen contract, one parallel wave, 25-agent squad |\n| Memory | Session-only | Persistent, searchable, survives restarts |\n| Multi-harness | One tool, one rules file | Same workflow in 7 harnesses |\n| Delivery discipline | Ad hoc | Verify-by-running and evidence-first reports |\n| Setup | Hand-written rules per tool | `npx graphyloop` |\n| Safety | — | Backup-first config merges, content-matched uninstall |\n\n## FAQ\n\n### What is GraphyLoop?\nGraphyLoop is a one-command agentic workflow kit for AI coding agents. It installs a 25-agent squad, parallel wave planning, persistent memory and an MCP server into the harnesses you already use. It is open source (MIT) with zero runtime dependencies.\n\n### Does GraphyLoop work with Claude Code, Cursor and Gemini CLI?\nYes. For Claude Code it registers an MCP server in `~/.claude.json`, installs 26 agent files and 15 `/chadi-*` slash commands, and adds the workflow rules. For Cursor and Windsurf it adds the MCP server to `~/.cursor/mcp.json` and the rules to `~/.cursor/rules/`. For Gemini CLI (since 0.5.0) it adds the MCP server to `~/.gemini/settings.json` and installs the commands as TOML files in `~/.gemini/commands/`; an existing `GEMINI.md` is never overwritten.\n\n### Which other harnesses are supported?\nSeven in total: OpenCode, Claude Code, Codex, Cursor, DeepSeek Harness (`dsh`), Oh My Pi (`omp`) and Gemini CLI. Anything else that speaks MCP can use the same server via `npx graphyloop mcp`. See docs/harnesses.md for what is written where.\n\n### Is GraphyLoop free?\nYes. It is MIT licensed and free to use, fork and modify. It uses the model your harness already has; GraphyLoop itself adds no subscription or usage fee.\n\n### Does GraphyLoop need API keys?\nNo. The swarm, memory and MCP tools run locally with no API keys. The only optional key is `DEEPSEEK_API_KEY`, for letting the engine call DeepSeek directly, and nothing requires it.\n\n### How is it different from a plain AGENTS.md or CLAUDE.md?\nA rules file is static text that one tool reads. GraphyLoop adds a live engine behind an MCP server (persistent memory, a wave planner that writes the contract and context pack, task and file-ownership tracking) and a 25-agent squad, and installs the same workflow into seven harnesses instead of one.\n\n### How do I uninstall GraphyLoop?\nRun `npx graphyloop uninstall`. It removes the core in `~/.graphyloop/`, the MCP entries it added, and agents, commands, skills and rules files that are still byte-identical to what it shipped. Anything you edited, and all backups, stay.\n\n### Does GraphyLoop send my data anywhere, and does it work on Windows?\nIt sends nothing anywhere: state and memory are plain files in `<project>/.graphyloop/`, the MCP server runs locally over stdio, and stored credentials are chmod 600 and never returned to the model. It works on Windows, macOS and Linux; CI runs all three on Node 20, 22 and 24, and on Windows a server-guard keeps `npm run dev` from hanging an agent session.\n\n---\n\n## MCP tools\n\nOnce installed, any MCP-capable harness can call:\n\n| Tool | Purpose |\n|---|---|\n| `agent_spawn` | Spawn a swarm agent — `coder`, `tester`, `reviewer`, `architect`, `explorer`, `security`, `coordinator`, `frontend`, `data` |\n| `agent_list` | List swarm agents |\n| `plan_feature` | Turn a feature request into a **wave plan** — contract → parallel builders → integration → parallel verifiers → gated deploy, with per-lane file ownership, acceptance checks and `dependsOn` |\n| `task_distribute` | Distribute tasks across the swarm. Honours `wave` + `dependsOn`, and answers with `dispatchNow` (safe to fan out) vs `blocked` (with `waitingOn`) |\n| `task_record` | Record a task result (updates agent metrics, reports what the result unblocked) |\n| `swarm_state` | Swarm status + memory count + ready/blocked tasks per wave |\n| `memory_store` | Persist a memory entry — `decision`, `pattern`, `lesson`, `event`, `task` |\n| `memory_search` | Keyword-search stored memories — ranked by match quality with a recency bias, optional `type` filter |\n| `memory_forget` | Delete one memory by id, so a wrong lesson can be corrected instead of recalled forever |\n| `secrets_status` | Masked readiness report for Supabase/Vercel credentials — which keys exist, where each comes from, what is missing. **Never returns a value** |\n| `secrets_set` | Store one credential in `<project>/.graphyloop/secrets.json` (chmod 600, git-ignored before the first write) |\n| `env_sync` | Write stored credentials into the env file the framework reads, add public aliases for public keys only, refresh a values-free `.env.example`, guard `.gitignore` |\n| `preflight` | Readiness check + ordered command plan for `db` / `deploy` — blockers, warnings, and gates on every destructive step. Executes nothing |\n| `skills_status` | Which skills are actually installed (project + OpenCode + Claude roots), which bundled ones are present, which referenced ones are missing — so an agent states a gap instead of faking a skill |\n| `shutdown` | Gracefully stop the swarm |\n\nState and performance details: [docs/reference.md](docs/reference.md#mcp-server-internals). Verify the connection any time:\n\n```bash\nnpx graphyloop doctor   # ends with GRAPH_LOOP_DOCTOR_OK when every present harness is wired\nclaude mcp list         # look for: graphyloop ... √ Connected\ncodex mcp list          # look for: graphyloop ... enabled\n```\n\n## The squad (25 agents)\n\n| Role | Agents |\n|---|---|\n| **Conductor** | `agent-chadi` — the primary agent running the 5-gate workflow |\n| **Exploration** | `chadi-explorer` · `graphcrew-investigator` |\n| **Implementation** | `chadi-backend` · `chadi-frontend` · `chadi-integrator` · `graphcrew-builder` · `graphcrew-fixer` · `chadi-refactor` |\n| **Verification** | `chadi-test` · `chadi-quality` · `chadi-reviewer` · `graphcrew-reviewer` |\n| **Security** | `chadi-security` |\n| **Architecture & Planning** | `chadi-architect` · `chadi-think` · `chadi-council` |\n| **Data & DevOps** | `chadi-data` · `chadi-devops` |\n| **Docs & Media** | `chadi-docs` · `chadi-vision` · `story-video-automator` |\n| **Memory & Meta** | `chadi-memory` · `chadi-agent-writer` · `chadi-performance` |\n\n---\n\n## CLI reference\n\n```\nnpx graphyloop                      # same as: install — wires every detected harness\nnpx graphyloop install [--harness opencode|claude|codex|cursor|dsh|omp|gemini|all]   # comma list ok: --harness claude,omp\n                       [--force] [--skip-agents] [--skip-workflow]\n                       [--no-config-merge] [--config-dir DIR] [--graphyloop-dir DIR]\nnpx graphyloop update [--check]     # refresh an existing install in place\nnpx graphyloop doctor               # per harness: present / wired / fix: — ends GRAPH_LOOP_DOCTOR_OK\nnpx graphyloop status [--json]      # swarm status via the graphyloop engine\nnpx graphyloop uninstall            # remove only what graphyloop added\nnpx graphyloop mcp                  # run the MCP server directly (stdio)\n```\n\n| Flag | Meaning |\n|---|---|\n| `--harness` | `opencode` / `claude` / `codex` / `cursor` / `dsh` / `omp` / `gemini` / `all`, or a comma list — default: every detected harness (all seven on a fresh machine) |\n| `--home DIR` | Install into a different home directory (testing, containers). Also wins over `$DSH_HOME`, so a sandboxed run cannot reach a real harness home |\n| `--force` | Overwrite existing graphyloop files (previous copies backed up as `*.bak-<timestamp>`) |\n| `--check` | `update` only: report version/file drift and exit without writing. `install` has no dry-run — `install --check` / `--dry-run` exit 1; preview with `graphyloop doctor` |\n| `--skip-agents` / `--skip-workflow` | Skip agents/prompts or the rules file |\n| `--no-config-merge` | Never touch `opencode.json`, `.claude.json`, `config.toml`, `mcp.json`, `settings.json`, `cordis.patch.yml` |\n\nWith no command, bare install flags (`--home`, `--harness`, `--force`, …) still install, but any other flag (`--check`, `--dry-run`, `--json`, a typo like `--doctor`) exits 1 with `unknown option … (no command given)` and writes nothing; name the command (`graphyloop doctor`, `graphyloop update --check`). Next to an explicit command, unknown flags are ignored.\n\n**Safety guarantees** (all covered by tests):\n\n- Never overwrites your existing config keys — plugin lists, commands, MCP servers, `default_agent`, models preserved exactly.\n- Every write is preceded by a timestamped backup.\n- Re-running is always safe (idempotent).\n- Uninstall removes **only** files byte-identical to the shipped copies — anything you edited is left alone.\n- An existing Oh My Pi `AGENTS.md` or Gemini CLI `GEMINI.md` is kept, even with `--force`; the workflow then loads from the bundled `graphyloop-workflow` skill.\n\n## Updates\n\n```bash\nnpx -y graphyloop@latest update           # refresh the install in place\nnpx graphyloop update --check             # report the drift, write nothing\nnpx graphyloop doctor                     # installed core version vs this package\n```\n\n`update` overwrites graphyloop-owned files (timestamped backup first), repairs a core tree that is missing newer modules, and leaves your config keys, your own plugins and your edited files alone. `--check` prints `up-to-date` / `update-available` / `incomplete` / `not-installed` (add `--json` for a machine-readable answer) without touching anything. Check `doctor` first when a graphyloop tool \"does not exist\" in a harness that is otherwise wired correctly.\n\n## Uninstall\n\n```bash\nnpx graphyloop uninstall\n```\n\nRemoves the core (`~/.graphyloop/`), agents/prompts/commands it installed, and the MCP entries it added — while keeping your config keys, your own files, and all backups.\n\n---\n\n## More documentation\n\n| Doc | Contents |\n|---|---|\n| [docs/harnesses.md](docs/harnesses.md) | Per-harness file locations, next steps, verification, dsh notes |\n| [docs/reference.md](docs/reference.md) | MCP server internals and benchmarks, configuration, skills, troubleshooting, development, releasing, full version history |\n| [docs/SETUP-PROMPT.md](docs/SETUP-PROMPT.md) | Copy-paste setup prompt for any AI harness |\n| [llms.txt](llms.txt) | Machine-readable site summary for AI answer engines |\n| [CHANGELOG.md](CHANGELOG.md) · [CONTRIBUTING.md](CONTRIBUTING.md) | Release notes · how to contribute |\n\n**New in 0.5.0 — Workflow v2:** bare `npx graphyloop` installs; Oh My Pi and Gemini CLI join as harnesses 6 and 7; `doctor` reports present/wired per harness with a one-line fix; `plan_feature` writes a context pack next to the contract. Full history in [docs/reference.md](docs/reference.md#whats-new).\n\n## Why this exists\n\nGraphyLoop started as a personal setup — the agents, rules and glue used every day to keep AI coding sessions disciplined, first in OpenCode and then in Claude Code too. It lived in one home directory, copied by hand from machine to machine, and was never meant to leave it.\n\nIt got useful enough that keeping it private stopped making sense. This repository is that setup, packaged so it installs anywhere in one command instead of being reassembled by hand — same workflow, same squad, same memory, now shared. Use it, fork it, or take the parts you like. Issues and PRs are welcome.\n\n## Support\n\n| Resource | Link |\n|---|---|\n| Source & issues | [github.com/chadixearth/graphyloop](https://github.com/chadixearth/graphyloop) |\n| Landing page | [chadixearth.github.io/graphyloop](https://chadixearth.github.io/graphyloop/) |\n| Package | [npmjs.com/package/graphyloop](https://www.npmjs.com/package/graphyloop) |\n| Setup prompt (any AI) | [docs/SETUP-PROMPT.md](docs/SETUP-PROMPT.md) |\n| Install | `npx graphyloop` |\n\n## License\n\nMIT © 2026 Richard Legaspi ([@chadixearth](https://github.com/chadixearth))\n"}