Plugins / Marketplace#
Plugins let you share and reuse ECA configuration across projects and teams. A plugin source is a git repository or local directory containing a marketplace of plugins, each providing any combination of skills, agents, commands, rules, hooks, MCP servers, and config overrides.
How it works#
flowchart TD
A[ECA has a 'plugins' in config.json] --> B{Git URL or local path?}
B -->|git| C[Clone to ~/.eca/cache/plugins]
B -->|local| D[Use directory directly]
C --> E[Read .eca-plugin/marketplace.json]
D --> E
E --> F[Read plugins from 'install']
F --> G[Merge into final ECA config]
- You register one or more sources (git URL or local path) and list plugin names in
install. - ECA resolves each source — cloning git repos to a local cache or using the local path directly.
- Each source provides a marketplace (
.eca-plugin/marketplace.json) listing its available plugins. - ECA matches
installnames against the marketplace, then discovers components from each matched plugin directory. - All components are merged into the config waterfall — user config always takes precedence on conflicts.
Commands#
/plugins#
Lists all available plugins from your configured marketplaces. Plugins that are already installed are marked with ✅.
/plugins
/plugin-install#
Installs a plugin by adding it to the install list in your global config.
/plugin-install <plugin-name>
/plugin-install <plugin-name@marketplace>
Use <plugin-name@marketplace> to disambiguate when multiple sources provide a plugin with the same name. After installing, restart ECA for the plugin to take effect.
Pointing to a plugin source / marketplace#
Add a plugins key to your config with one or more named sources and an install array:
{
"plugins": {
"my-org": {
"source": "https://github.com/my-org/eca-plugins.git"
},
"install": ["code-review", "security-scanner"]
}
}
{
"plugins": {
"local-dev": {
"source": "/home/user/my-eca-plugins"
},
"install": ["my-plugin"]
}
}
ECA searches all registered sources when resolving install entries:
{
"plugins": {
"company": {
"source": "https://github.com/company/eca-plugins.git"
},
"community": {
"source": "https://github.com/community/shared-plugins.git"
},
"install": ["company-standards", "linter-setup", "shared-skills"]
}
}
Creating a plugin source (Plugins marketplace)#
A plugin source is a directory (typically a git repo) with a .eca-plugin/marketplace.json file that lists available plugins.
Marketplace file#
{
"plugins": [
{
"name": "code-review",
"description": "Agents and skills for thorough code review",
"source": "plugins/code-review"
},
{
"name": "security-scanner",
"description": "Security-focused rules and hooks",
"source": "plugins/security-scanner"
}
]
}
Each plugin entry has:
| Field | Description |
|---|---|
name |
Unique plugin name (used in install) |
description |
Human-readable description |
source |
Relative path from the repo root to the plugin directory |
Plugin directory structure#
Each plugin directory can contain any combination of:
plugins/code-review/
├── skills/
│ └── review-checklist/
│ └── SKILL.md
├── agents/
│ └── reviewer.md
├── commands/
│ └── review.md
├── rules/
│ └── code-standards.md
├── hooks/
│ └── hooks.json
├── .mcp.json
└── eca.json
| Path | What it provides | Details |
|---|---|---|
skills/ |
Skill definitions | Each subfolder follows the agentskills.io spec with a SKILL.md |
agents/*.md |
Agent definitions | Markdown files with YAML frontmatter, same format as local agents |
commands/*.md |
Custom commands | Markdown command files, same format as local commands |
rules/** |
Rule files | Any files under rules/ are loaded as rules |
hooks/hooks.json |
Hooks | ECA hook format |
.mcp.json |
MCP server definitions | Standard {"mcpServers": {...}} format |
eca.json |
Config overrides | Arbitrary ECA config keys deep-merged into config |
All paths are optional — include only what your plugin needs.
plugins/gif-maker/
└── skills/
└── gif-generator/
├── SKILL.md
└── scripts/
└── generate.py
plugins/security-scanner/
├── hooks/
│ └── hooks.json
└── .mcp.json
plugins/team-defaults/
└── eca.json
plugins/company-standards/
├── skills/
│ └── internal-api/
│ └── SKILL.md
├── agents/
│ └── reviewer.md
├── commands/
│ └── deploy.md
├── rules/
│ └── coding-standards.md
├── hooks/
│ └── hooks.json
├── .mcp.json
└── eca.json