A general-purpose AI agent harness for multi-repo development — launch Claude Code or OpenCode from a single directory and work across any number of sibling repositories via project profiles.
agent-harness is a coordination layer that sits alongside your development repositories. You start the AI coding session here and point it at whichever sibling repo you want to work on — the harness wires up memory, code intelligence, and library documentation automatically via three MCP servers.
It ships a named multi-agent team (Noctis, Ignis, Gladiolus, Prompto) that can run spec-driven delivery workflows end to end: propose a change, implement with TDD, review, verify manually, archive, and open a PR. You can also invoke agents individually for one-off tasks.
- Two MCP servers wired at startup: Serena code intelligence and Context7 library docs
- Named agent team with distinct roles: orchestrator, strategist, implementer, and recon
- OpenSpec integration — spec-driven planning and task tracking per project
- Dual AI tool support — works with Claude Code CLI and OpenCode
Tip
The quickest path is to start Claude Code from this directory and run /setup-harness.
It automates steps 1–4 below (prerequisite checks, plugin install, MCP enablement, and
OpenSpec setup) and walks you through the few interactive steps. See docs/setup.md.
| Tool | Version | Purpose |
|---|---|---|
| Git | any | Repository cloning |
| Node.js | 22+ | MCP launchers and npm tools |
| Python | 3.11 | Serena MCP server (must be 3.11, not 3.12+) |
| uv | latest | Runs Serena via uvx |
| Claude Code CLI | latest | Primary AI coding interface |
Install uv on Windows:
winget install --id astral-sh.uv -eInstall uv on WSL / Linux:
curl -LsSf https://astral.sh/uv/install.sh | shFor the full list of recommended tools (zellij, rg, openspec, etc.), see docs/recommended-tool-installation.md.
git clone https://github.com/atman-33/agent-harness.git
cd agent-harnessInstall the MCP servers used by the harness:
npm install -g @upstash/context7-mcpSerena runs via uvx automatically — no separate install needed.
Create .claude/settings.local.json at the repository root:
{
"permissions": { "allow": [] },
"enabledMcpjsonServers": ["serena", "context7"]
}claudeInside the session, run /mcp. Both servers should show connected:
serena ✓ connected
context7 ✓ connected
Two plugins from atman-marketplace are recommended for this harness.
Step 4a — Add the atman-marketplace:
claude plugin marketplace add atman-33/atman-marketplaceStep 4b — Install the engineering plugin at project scope:
claude plugin install engineering@atman-marketplace --scope projectThis ships the role-based sub-agents (Ignis, Gladiolus, Prompto, etc.) and git workflow skills used by the harness. Install at project scope so the team shares the same tooling.
Step 4c — Install the productivity plugin at user scope:
claude plugin install productivity@atman-marketplace --scope userThis provides productivity commands (/create-readme, /create-claude-md, and the skill installer) available across every project on your machine.
Tip
user scope makes the plugin available in every Claude Code session across all projects — install once and forget about it. After installing, run /install-recommended-skills inside a session to bootstrap the rest of your skill setup in one step.
For the full list of available plugins and scopes, see the atman-marketplace README.
The agent team supports spec-driven delivery workflows end to end. For example, the idea-to-openspec-dev workflow runs the full cycle:
- spec (Noctis) — clarifies the idea with you and creates OpenSpec artifacts
- implement (Gladiolus) — implements with TDD in thin vertical slices
- review (Ignis) — verifies implementation against specs and runs tests
- manual-verification (Ignis) — guides you through a verification checklist
- archive (Prompto) — archives the change and opens a PR
You can also invoke agents directly for ad-hoc work without a workflow.
agent-harness/
├── .github/
│ └── agents/ # Agent persona definitions (Noctis, Ignis, Gladiolus, Prompto)
├── docs/
│ ├── setup.md # Full machine setup guide
│ └── recommended-tool-installation.md
└── openspec/ # OpenSpec changes for the harness itself (git-ignored)
The harness ships four named agents inspired by Final Fantasy XV, each with a defined role and session model:
| Agent | Role | Session | Persona |
|---|---|---|---|
| Noctis | Orchestrator / executor | Persistent | Mission lead, blunt, laid-back |
| Ignis | Strategist / reviewer | Task-scoped | Analytical, perfectionist |
| Gladiolus | Implementer / guardian | Task-scoped | Straightforward, highest standards |
| Prompto | Recon / reporting | Task-scoped | Casual, fast, thorough |
Agent definitions live in .github/agents/. Noctis is the primary contact; the other three receive delegated tasks and report back via send_report.
Python 3.12 for Windows has a known OpenSSL bug. The MCP launcher pins --python 3.11 to work around it. If you see -32000 errors after updating uv:
- Open the Serena launcher:
.opencode/mcp/serena-mcp-launcher.mjsfor OpenCode, or the engineering plugin's launcher at~/.claude/plugins/cache/atman-marketplace/engineering/<version>/mcp/serena-mcp-launcher.mjsfor Claude Code. - Confirm the
--pythonargument reads'3.11', not'3.12'or later. - Run
/mcpin Claude Code to reconnect.
Ensure .claude/settings.local.json exists at the repo root and contains both server names in enabledMcpjsonServers.
- Setup guide — detailed step-by-step machine setup
- Recommended tools —
zellij,rg,openspec, and more - Claude Code CLI