One-Line Summary: A harness plugin is a packaged directory of extensions (sub-agents, hooks, slash commands, skills, MCP servers) that can be installed into a harness as a unit; a marketplace is the discovery layer that turns plugins into a distributed ecosystem — ruflo's marketplace and Claude Code's plugin system are the reference implementations in 2026.
Prerequisites: Sub-agents as primitives, hooks and lifecycle events, slash commands, settings and configuration files
What Is a Plugin? What Is a Marketplace?
A plugin is the unit of redistributable harness extension. Concretely, a plugin is a directory that follows a known layout — typically .claude-plugin/plugin.json (or equivalent manifest) plus subdirectories for agents/, commands/, hooks/, skills/, and possibly an MCP server. Installing a plugin amounts to dropping its directory in the right place and the harness picking up its extensions on next startup.
A marketplace is a registry of plugins with discovery (search, categories), versioning, ratings, and an install command. Ruflo runs a marketplace at ruvnet.github.io/ruflo with 32 native plugins plus 21 npm-distributed ones. Claude Code supports installing from any marketplace via /plugin marketplace add <repo> — a deliberately decentralized model.
How They Work
In Claude Code's model, a plugin is structured as:
my-plugin/
├── .claude-plugin/
│ └── plugin.json # Manifest: name, version, what it provides
├── agents/ # Sub-agent definitions
├── commands/ # Slash commands
├── hooks/ # Hook scripts
├── skills/ # Skill bundles
├── mcp/ # Optional bundled MCP servers
└── README.mdThe user installs via /plugin install <name>@<marketplace>. The harness clones the plugin into .claude/plugins/<name>/ and merges its extensions into the active set. Updates pull a new version; uninstalls remove the directory.
Marketplace plugins are usually git repositories. Versioning is git tags. A ruflo-core@0.7.2 install resolves to "checkout tag v0.7.2 of the ruflo-core plugin from the registered marketplace." The simplicity is deliberate — it means plugins do not need a centralized registry server, and a private marketplace is just a private git repo.
Why It Matters
Plugins are the path from "I built a useful agent extension" to "anyone can use it without copying files by hand." That path being short is what made ruflo's ecosystem grow. Plugins also make harness configurations modular: a team can install ruflo-security-audit and inherit a security-review pipeline without authoring it; another team installs ruflo-sparc and inherits a methodology.
The second-order effect is that the plugin format becomes a de facto standard for sharing agent patterns. Reading plugin source is now the fastest way to learn how someone else solved a problem — better than blog posts, more complete than gists.
Key Technical Details
- Plugin manifests declare what they provide: agents, hooks, skills, commands, MCP servers. The harness uses this to render a UI ("This plugin will install 3 sub-agents and 2 hooks") and to refuse to install if a name conflict would silently overwrite.
- Permissions are inherited from the harness: A plugin's hooks run with the user's privileges. Treating plugin install as analogous to
npm install(with comparable supply-chain risk) is the right mental model. - Plugins can depend on other plugins: Ruflo's
ruflo-loop-workersdepends onruflo-core. Dependency resolution is shallow but real. - Versioning is git-tag driven in Claude Code's model; semver convention is recommended but not enforced.
- Cross-harness portability is partial: An MCP server inside a plugin is portable; a slash command file is mostly portable; hooks may need to be retargeted.
- Marketplaces can be private: A team can run a private marketplace by pointing
/plugin marketplace addat an internal git host.
How Harnesses & Frameworks Implement This
| Harness / Framework | Plugin system | Marketplace |
|---|---|---|
| Claude Code | Native, decentralized | Add any git repo as a marketplace |
| Claude Agent SDK | Code-level, no marketplace | N/A |
| ruflo | Native, marketplace-driven | ruvnet.github.io/ruflo (32 native + 21 npm) |
| LangGraph | npm packages | npm |
| AutoGen | npm/PyPI | PyPI |
| CrewAI | PyPI | PyPI |
| OpenAI Agents SDK | npm/PyPI | npm/PyPI |
| Codex CLI | Limited | Limited |
| Cursor | VS Code-style extensions (limited agent surface) | Cursor / VS Code marketplace |
Connections to Other Concepts
sub-agents-as-primitives.md,slash-commands.md,hooks-and-lifecycle-events.md,skills-vs-tools.md— Each plugin component, expanded.mcp-as-the-universal-tool-bus.md— MCP servers are often distributed as plugins.agent-definitions-and-personas.md— Sub-agents bundled in plugins.permission-and-tool-scoping-primitives.md— Plugin install as a supply-chain decision.
Further Reading
- ruvnet, ruflo Plugin Marketplace — Browse and install plugins; reading their source is excellent learning.
- Anthropic, Claude Code Plugins documentation.