Marketplaces & plugins
This is where agentsync earns its keep. A plugin is a bag of components — MCP servers, skills, subagents, commands, hooks, LSP servers. Install it once and every enabled agent gets the components it understands.
Install a plugin
Section titled “Install a plugin”-
Add a marketplace (a registry of plugins):
Terminal window agentsync marketplace add github:anthropics/claude-plugins-official -
Install a plugin from it:
Terminal window agentsync plugin add atlassian@anthropic -
Fetch from the network —
plugin outdatedis the polling verb of the daily loop:Terminal window agentsync plugin outdated -
Apply — renders from the local cache to all agents:
Terminal window agentsync apply
The translation report
Section titled “The translation report”Each component in a plugin is projected independently per agent — fully, lossily, or skipped — and the report tells you exactly which:
plugin: atlassian@anthropic claude ✓ full (1 mcp, 5 commands) opencode ◐ partial (1 mcp; 5 commands → projected)Inspect a plugin’s coverage without applying:
agentsync plugin explain atlassian@anthropicagentsync plugin explain atlassian@anthropic --jsonControlling per-plugin fan-out
Section titled “Controlling per-plugin fan-out”Two keys in a plugin’s TOML decide which agents its components render to:
[plugin]id = "atlassian@anthropic"agents = ["claude"] # only fan this plugin out to Claude# native_agents = ["claude"] # OMIT unless an agent installs this itself (see below)agents is your allowlist — ["*"], or omitted, means every enabled agent. It
is a deliberate, security-relevant choice: a plugin’s MCP servers, hooks, and
skills can carry ${secret:…} credentials, so agents = ["claude"] keeps that
blast radius scoped to Claude only.
native_agents is different in kind — not a preference but a fact about your
machine. An agent whose own plugin manager installs a plugin (you ran
/plugin install in Claude Code) already serves its components. agentsync never
disables a plugin inside another tool’s plugin manager, so projecting the same
components into that agent’s standalone paths would simply duplicate them: two
of every skill, subagent and command, and every hook firing twice. Listing the
agent here stops the projection for that agent only.
A component renders for an agent when agents targets it and
native_agents does not claim it.
Plugin lifecycle
Section titled “Plugin lifecycle”agentsync plugin add <id[@marketplace]>agentsync plugin upgrade <id[@marketplace]>agentsync plugin enable <id[@marketplace]>agentsync plugin disable <id[@marketplace]>agentsync plugin remove <id[@marketplace]>agentsync plugin listdisable/enable flip only the disabled bit and install refreshes only the
fetched fields — so your agents and native_agents targeting survives the
full lifecycle untouched.