Other coding agents
AGENTS.md is the single canonical source — every tool’s config is
generated from it (plus rules/, references/, agents/). Claude Code has
its own plugin/marketplace path (see Getting started);
Cursor, Kiro, and Codex CLI are synced by install.sh + sync_tools.py
instead, driven by the declarative mapping in tools.config.json.
Install
git clone <this-repo> ~/src/addit-harness && cd ~/src/addit-harness
./install.sh # auto-detect: sync every supported agent found on this machine
./install.sh --target X # force one: claude|cursor|kiro|codex
./install.sh --link # symlink instead of copy, so edits track git
./install.sh --plugins # claude only: also register marketplaces + install official plugins
install.sh checks each tool’s CLI on PATH or home directory
(~/.cursor, ~/.kiro, ~/.codex) and syncs config into whichever it
finds. It merges per-file into each tool’s home, never clobbering the whole
directory, so projects/, history, and existing hooks are preserved.
Re-running backs up anything it replaces to
<tool-home>/.install-backups/<timestamp>/.
Claude Code is no longer synced by a plain ./install.sh run (it uses the
plugin path); --target claude still works if you’d rather use the
copy-based install — it backs up and replaces ~/.claude/settings.json too,
so merge any custom permissions/hooks back from the backup.
Cursor
- Baseline:
~/.cursor/rules/global.mdc(alwaysApply) - Language conventions:
~/.cursor/rules/*.mdc(globs) - Subagents: Cursor 2.4+ reads
~/.claude/agents/*.mdnatively — only if that directory is populated. Plugin-only Claude Code installs no longer write there; runinstall.sh --target claude(or a future Cursor-native plugin, see Roadmap) if you want Cursor to pick these up too.
Kiro
- Baseline:
~/.kiro/steering/global.md(inclusion: always) - Language conventions:
~/.kiro/steering/*.md(inclusion: fileMatch) - Subagents:
~/.kiro/agents/*.md— tool names remapped to Kiro’s category tags (read/write/shell/web/…).
Codex CLI
- Baseline:
~/.codex/AGENTS.md(native filename, no rename needed) - Language conventions: folded into the same
AGENTS.md - Subagents:
~/.codex/agents/*.toml— converted to TOML; tool-restriction becomes a derivedsandbox_mode(read-onlyvsworkspace-write), since Codex has no per-tool allowlist.
Per-tool coverage
| Tool | Baseline (AGENTS.md + engineering loop) |
Language conventions | Subagents (agents/*.md) |
|---|---|---|---|
| Claude Code | Plugin: agents//skills/ auto-discovered. /addit-harness:setup: ~/.claude/CLAUDE.md (@import) |
/addit-harness:setup: ~/.claude/rules/*.md (auto-load via paths:) |
Plugin, auto-discovered — invoke as @addit-harness:<name> |
| Cursor | ~/.cursor/rules/global.mdc (alwaysApply) |
~/.cursor/rules/*.mdc (globs) |
Reads ~/.claude/agents/*.md natively (2.4+), only if populated |
| Kiro | ~/.kiro/steering/global.md (inclusion: always) |
~/.kiro/steering/*.md (inclusion: fileMatch) |
~/.kiro/agents/*.md, remapped tool names |
| Codex CLI | ~/.codex/AGENTS.md |
folded into the same AGENTS.md |
~/.codex/agents/*.toml |
| GitHub Copilot | (planned — see Roadmap) |
Vendored prose that hardcodes a ~/.claude/references/... path (e.g.
rules/go.md) is rewritten per tool to that tool’s own reference path
(~/.cursor/references/..., etc.) so the pointer actually resolves.
MCP is not auto-synced
mcp.example.json is a disabled, human-curated catalogue by design — pick an
entry, fill in credentials by hand, and paste it into the tool’s real MCP
config yourself (install.sh’s footer prints the right target path per tool
after every run). See Enabling MCP for the Claude Code specifics.
Skills
Skills (/adr, /save-plan, etc.) are placed as files for the other tools
today, but porting them with correct per-tool invocation semantics (Cursor
commands, Kiro manual steering, Codex prompts, Copilot prompt files) is
planned, not yet implemented — see Roadmap.
Next
- Getting started — the Claude Code plugin path.
- Roadmap — native plugin packaging for these three tools.