Skip to content

agentsync

Define your MCP servers, memory, skills, and plugins once. Run 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.

greenfield setup
agentsync init # create ~/.agentsync/
agentsync agent add claude # register the agents you use
agentsync agent add opencode
agentsync mcp add github \ # add a server once…
--command npx --args "-y,@modelcontextprotocol/server-github"
agentsync apply # …it fans out to every agent

That github MCP server now lives in both ~/.claude.json and ~/.config/opencode/opencode.json, each in its own native shape.

AgentStatusComponent coverage
Claude Code✓ adapterMCP, memory, skills, subagents, commands, hooks. LSP skipped unless provided by Claude plugins.
OpenCode✓ adapterMCP, memory, skills, subagents, commands. Hooks + LSP skipped.
Codex CLI✓ adapterMCP (TOML config.toml), memory, skills, subagents (◐), slash commands (◐), hooks (◐) + plugin import. No LSP concept.
Cursor✓ adapterMCP (.cursor/mcp.json), memory (◐, project-scope AGENTS.md), skills, subagents (◐), slash commands (◐), hooks (◐). No LSP concept.
Gemini CLI✓ adapterMCP + hooks (◐) in .gemini/settings.json, memory (GEMINI.md), subagents (◐), slash commands (◐, TOML). No skills (uses extensions) or LSP concept.
Continue✓ adapterMCP (.continue/mcpServers/), memory (.continue/rules/), slash commands (◐, .continue/prompts/). No skills/subagents/hooks/LSP concept.
Windsurf✓ adapterMCP (~/.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✓ adapterMCP (.roo/mcp.json, project scope), memory (.roo/rules/) + slash commands (◐, .roo/commands/) at both scopes. No skills/subagents/hooks/LSP concept.
Cline✓ adapterMCP (~/.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.