Extensions
Extensions are the add-ons your agents use. HarnessKit lists every agent’s extensions in one table, where you switch each one on or off, install it on another agent, or delete it.
The five kinds
Section titled “The five kinds”- Skill. A folder with a
SKILL.mdfile, or a single Markdown file, holding instructions the agent loads when a task needs them. - MCP server. A program the agent starts, or a URL it connects to, that gives the agent more tools. It is an entry in the agent’s config file.
- Plugin. A package in one agent’s own plugin format. It can carry skills, commands, hooks or servers, and it works only in that agent.
- Hook. A shell command the agent runs on an event, such as before a tool call.
- CLI. A command-line tool on your computer that skills call. HarnessKit lists it with the skills and MCP servers that came with it.
Skills, MCP servers, hooks and CLIs can be installed on another agent. For a CLI, HarnessKit installs the skills and MCP servers that came with it, not the tool itself. Plugins stay with their agent.
| Agent | Skills | MCP servers | Plugins | Hooks | CLIs |
|---|---|---|---|---|---|
| Claude Code | ✓ | ✓ | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ | ✓ |
| Gemini CLI | ✓ | ✓ | ✓ | ✓ | ✓ |
| Cursor | ✓ | ✓ | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | — | — | ✓ |
| Copilot | ✓ | ✓ | ✓ | ✓ | ✓ |
| Devin Desktop | ✓ | ✓ | — | ✓ | ✓ |
| OpenCode | ✓ | ✓ | ✓ | — | ✓ |
| Hermes | ✓ | ✓ | ✓ | ✓ | ✓ |
| Kiro | ✓ | ✓ | — | ✓ | ✓ |
| Oh My Pi | ✓ | ✓ | ✓ | — | ✓ |
| DeepSeek Harness | ✓ | ✓ | ✓ | — | ✓ |
| Grok Build | ✓ | ✓ | ✓ | ✓ | ✓ |
| Qoder CN | ✓ | ✓ | ✓ | ✓ | ✓ |
| OpenClaw | ✓ | ✓ | — | — | ✓ |
| PenguinHarness | ✓ | — | — | — | — |
| Pi | ✓ | ✓ | ✓ | — | ✓ |
A dash (—) means HarnessKit does not manage this extension type for the agent yet.
The table
Section titled “The table”Each row is one extension. The same skill on three agents is one row, and so is the same MCP server in Global and in a project. Install New, at the top, opens the Marketplace.
- Filter. Pick a kind, an agent in All Agents, or a source in All Sources. Extensions from the same repository form a pack, and each pack is a source.
- Search. The search box matches names and descriptions.
- Hide built-in. This button appears only when DeepSeek Harness’s built-in extensions are present, and hides them.
- Sort. Click a column header to sort by it. The Permissions column doesn’t sort.
- Audit. This column shows the trust score, or
--if the extension hasn’t been audited yet. See Security audit.
Detail panel
Section titled “Detail panel”Click a row to open its panel.
- Header. The kind and, once the extension has been audited, its trust score and View Audit, which opens the Audit page at this extension. Update appears when an update is available.
- Status and source. Enabled or Disabled switches the extension. Next to it is the source repository, or + Bind source.
- Info, Agents and Paths. When it was installed, its scopes, the agents that have it in the current scope, and where each copy is on disk.
- Install to Agent. See Install to another agent.
- Permissions. What HarnessKit found the extension can reach.
- CLI Details and Associated Extensions. For a CLI: its binary, version, install method and credentials file, then the skills and MCP servers that came with it.
- Configuration. For an MCP server: its command and arguments, or its URL if it is remote. Environment variable and header values show as
****. - Documentation. For a skill or plugin: its files, each with a preview.
- Delete… See Delete.
Enable and disable
Section titled “Enable and disable”Use the Status column, the panel’s Enabled button, or several rows at once. From the column or the panel, a toast says the change takes effect in new sessions.
The switch acts on the whole row: every agent and every scope the row covers. MCP servers are grouped by name and hooks by their command, not by scope. So disabling an MCP server while you look at a project also disables the same-named server in Global and on every agent. Copies of a skill that share a source are one row across scopes too.
What changes on disk depends on the kind:
- Skills.
SKILL.mdbecomesSKILL.md.disabled, and a single-file skill,<name>.md, becomes<name>.md.disabled. On Hermes, HarnessKit adds the skill toskills.disabledin~/.hermes/config.yamlinstead. - MCP servers. Hermes, OpenClaw, Kiro, Oh My Pi, Pi, Grok Build and DeepSeek Harness have their own switch, which HarnessKit flips. Elsewhere, HarnessKit removes the entry from the config file and keeps a snapshot in its database, secrets included, to write back when you enable it.
- Hooks. Grok Build and Kiro have their own switch. Elsewhere, hooks get the same snapshot as MCP servers.
- Plugins. Claude Code, Codex, Gemini CLI, Hermes, Grok Build, DeepSeek Harness and Copilot’s VS Code plugins use the agent’s own plugin setting. Elsewhere, HarnessKit adds
.disabledto the name of the plugin’splugin.json, or of the plugin file itself. - CLIs. HarnessKit records a CLI’s state in its database, and switches the skills and MCP servers that came with it too.
Install to another agent
Section titled “Install to another agent”Install to Agent in the detail panel lists your detected, enabled agents. An agent that already has the extension in the target scope shows a check mark. Click another agent to install it there.
- Install to scope picks where the copy goes. It starts on the current scope. In All scopes you have to pick one first.
- An agent that can’t take the extension is greyed out with (N/A). Hover over it to see why, for example that it has no hooks, can’t take this kind in a project, or can’t connect to this kind of remote MCP server.
- For a skill on Hermes, you pick a skill category first, or add one with + New.
- If the agent already has an extension of the same name in that scope, HarnessKit skips it and says there is nothing to install. To replace that copy, use Overwrite existing copies under Select several.
When it works, a toast says the install takes effect in new sessions.
Select several
Section titled “Select several”Tick the boxes at the start of the rows, or the box in the header row to tick every row shown. A bar appears with Enable, Disable and Install to agents. Enable and Disable switch every selected row.
Install to agents sends every selected extension to every agent you tick:
- Check Install to scope. It starts on the current scope, and in All scopes you pick one.
- Tick agents under Target agents. None are ticked to start with.
- Tick Overwrite existing copies to replace copies agents already have. Without it, those are skipped.
- Click Install. Stop lets the install in progress finish, and the rest don’t run.
The summary lists what failed, with the error, and how many were skipped or not run. Click the skipped count to see each reason, such as already installed, agent-specific for a plugin, or not supported at this scope. Skills sent to Hermes go into its first skill category in alphabetical order, or local if it has none.
Delete
Section titled “Delete”Click Delete… at the bottom of the detail panel.
- Pick copies. For a skill, each folder on disk is one item, labelled with the agents that read it. A folder several agents read is marked shared, and deleting it removes the skill for all of them. For an MCP server, hook or plugin, each agent’s copy is one item. When there are several items, pick some, or All Items. The list shows the current scope, and All scopes shows every scope.
- Symlinks. If an item is a symlink, the dialog shows where it points, with a warning. If other agents have symlinks to the item, it warns that those will stop working.
- CLIs. Deleting a CLI uninstalls it. HarnessKit removes the skills and MCP servers that came with it and deletes the binary file, without running a package manager. The dialog lists both first.
- Built-in plugins. DeepSeek Harness’s built-in plugins can be disabled but not deleted, so their Delete… button is greyed out.
You delete one extension at a time. The bar for selected rows has no delete.
Check for updates
Section titled “Check for updates”Check Updates looks for new versions of skills that have a source: skills installed from Git or the Marketplace, or bound to a repository. It checks every scope. Other kinds aren’t checked. When updates are found, Update All (N) installs them all, and Update in a detail panel installs one.
- No source. To include a skill you added yourself, open its panel, click + Bind source and enter
owner/repoor a GitHub URL. The next Check Updates includes it. skillsCLI. A skill that the third-partyskillsCLI installed is updated through that CLI, so the CLI’s lockfile stays in step.
This checks extensions. To update HarnessKit itself, see Settings.