Edit once, apply everywhere
Add an MCP server or install a plugin a single time. It’s projected into each agent’s native config — fully where the agent has the concept, lossily but reported where it doesn’t, skipped (never silently) where it can’t.
agentsync apply. They land — correctly translated — in every AI coding agent on your machine.If you use more than one AI coding agent, you keep re-entering the same config in each one’s native format, you forget to install a plugin everywhere, and your configs quietly drift apart. agentsync fixes the fan-out.
Edit once, apply everywhere
Add an MCP server or install a plugin a single time. It’s projected into each agent’s native config — fully where the agent has the concept, lossily but reported where it doesn’t, skipped (never silently) where it can’t.
Bidirectional, chezmoi-style
When an agent edits its own config, agentsync detects the drift and offers a merge: adopt the edit into your source, or re-impose the source. Nothing is overwritten behind your back.
Secrets stay secret
Reference ${secret:github.token}. agentsync resolves it
at apply time from an age-encrypted vault and never writes the cleartext
back into your (committable) source.
Offline & reproducible
apply never touches the network — it renders from a local cache.
Only update reaches out. Fast, deterministic, CI-friendly.
agentsync init # create ~/.agentsync/agentsync agent add claude # register the agents you useagentsync agent add opencodeagentsync mcp add github \ # add a server once… --command npx --args "-y,@modelcontextprotocol/server-github"agentsync apply # …it fans out to every agentThat github MCP server now lives in both ~/.claude.json and
~/.config/opencode/opencode.json, each in its own native shape.
| Agent | Status | Component coverage |
|---|---|---|
| Claude Code | ✓ adapter | MCP, memory, skills, subagents, commands, hooks. LSP skipped unless provided by Claude plugins. |
| OpenCode | ✓ adapter | MCP, memory, skills, subagents, commands. Hooks + LSP skipped. |
| Codex CLI | ✓ adapter | MCP (TOML config.toml), memory, skills, subagents (◐), slash commands (◐), hooks (◐) + plugin import. No LSP concept. |
| Cursor | ✓ adapter | MCP (.cursor/mcp.json), memory (◐, project-scope AGENTS.md), skills, subagents (◐), slash commands (◐), hooks (◐). No LSP concept. |
| Gemini CLI | ✓ adapter | MCP + hooks (◐) in .gemini/settings.json, memory (GEMINI.md), subagents (◐), slash commands (◐, TOML). No skills (uses extensions) or LSP concept. |
| Continue | ✓ adapter | MCP (.continue/mcpServers/), memory (.continue/rules/), slash commands (◐, .continue/prompts/). No skills/subagents/hooks/LSP concept. |
| Windsurf | ✓ adapter | MCP (~/.codeium/windsurf/mcp_config.json, user scope), memory (.windsurf/rules/ + global memories/global_rules.md) + slash commands (◐, .windsurf/workflows/ + global global_workflows/) at both scopes. No skills/subagents/hooks/LSP concept. |
| Roo Code | ✓ adapter | MCP (.roo/mcp.json, project scope), memory (.roo/rules/) + slash commands (◐, .roo/commands/) at both scopes. No skills/subagents/hooks/LSP concept. |
| Cline | ✓ adapter | MCP (~/.cline/mcp.json CLI, user scope), memory (◐, .clinerules/) + slash commands (◐, .clinerules/workflows/) at project scope. No skills/subagents/hooks/LSP concept. |
Plus a breadth tier of 22 more agents via one data-driven generic adapter
(memory for all, MCP where the agent reads a JSON server-map, and Agent Skills
where the agent natively scans a SKILL.md directory): amp, goose, qwen,
warp, jules, junie, openhands, amazonq, zed, kilocode, kiro, trae, jetbrains,
firebase, antigravity, augmentcode, copilot, copilot-cli, crush, factory, pi,
mistral. See the capability matrix → Breadth tier.