Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -2336,6 +2336,7 @@
"oss/python/deepagents/code/overview",
"oss/python/deepagents/code/quickstart",
"oss/python/deepagents/code/cli-reference",
"oss/python/deepagents/code/plugins",
"oss/python/deepagents/code/memory-and-skills",
"oss/python/deepagents/code/remote-sandboxes",
"oss/python/deepagents/code/subagents",
Expand Down Expand Up @@ -2363,6 +2364,7 @@
"oss/javascript/deepagents/code/overview",
"oss/javascript/deepagents/code/quickstart",
"oss/javascript/deepagents/code/cli-reference",
"oss/javascript/deepagents/code/plugins",
"oss/javascript/deepagents/code/memory-and-skills",
"oss/javascript/deepagents/code/remote-sandboxes",
"oss/javascript/deepagents/code/subagents",
Expand Down
207 changes: 207 additions & 0 deletions src/oss/deepagents/code/plugins.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
---
title: Plugins and marketplaces
sidebarTitle: Plugins
description: Install plugins from marketplaces or package skills and MCP servers for Deep Agents Code
---

Plugins extend Deep Agents Code with reusable [skills](/oss/deepagents/code/memory-and-skills) and [MCP servers](/oss/deepagents/code/mcp-tools). Marketplaces provide catalogs for discovering and installing plugins across projects or teams. Deep Agents Code supports Claude- and Codex-style plugin manifests and marketplace catalogs, as described in [Create a plugin](#create-a-plugin) and [Create a marketplace](#create-a-marketplace).

<Warning>
Install plugins and marketplaces only from sources you trust. An enabled plugin can add instructions and start MCP server processes with your user permissions.
</Warning>

## Manage plugins interactively

To browse marketplaces and manage plugins in a `dcode` session:

1. Run `/plugins` to open the plugin manager.
2. Add a marketplace from its **Marketplaces** tab. Supported sources include:
- A GitHub repository in `owner/repo` format, optionally followed by `@branch-or-tag`.
Comment thread
open-swe[bot] marked this conversation as resolved.
- An HTTPS Git repository URL, optionally followed by `#branch-or-tag`.
- An HTTPS URL that serves a marketplace JSON file.
- A local marketplace directory or JSON file.
3. Install a plugin from the marketplace.
4. Run `/reload` to activate newly installed plugin skills and MCP servers without restarting the session.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems unnecessary to mention since we show an action modal to users


The plugin manager also lets you enable, disable, and uninstall installed plugins. Disabling a plugin keeps it installed but excludes its skills and MCP servers after you run `/reload` or start a new session.

Removing a marketplace uninstalls its plugins and removes managed cache data. Deep Agents Code preserves the original source when the marketplace came from a local directory or file. Run `/reload` or start a new session to apply the removal to an active session.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Removing a marketplace uninstalls its plugins and removes managed cache data. Deep Agents Code preserves the original source when the marketplace came from a local directory or file. Run `/reload` or start a new session to apply the removal to an active session.
Removing a marketplace uninstalls its plugins. Deep Agents Code preserves the original source when the marketplace came from a local directory or file.


## Manage plugins from the command line

Use `dcode plugin` for scripts and terminal-based administration. Plugin IDs use the format `plugin-name@marketplace-name`.

```bash
# Add and inspect a marketplace
dcode plugin marketplace add acme/plugins
dcode plugin marketplace list

# Browse and install plugins
dcode plugin list
dcode plugin install code-review@acme-tools

# Change plugin state
dcode plugin disable code-review@acme-tools
dcode plugin enable code-review@acme-tools

# Remove a plugin or marketplace
dcode plugin uninstall code-review@acme-tools
dcode plugin marketplace remove acme-tools
```

`plugin list` and `plugin marketplace list` accept `--json`. After installing a plugin, run `/reload` in an active interactive session or start a new session.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plugin list and plugin marketplace list accept --json

most people don't care and if they do this is noted in the --help option right?

if we're gonna keep it, mention it "to support machine readable output" or similar


## Use plugin skills and MCP servers

Plugin skills are namespaced to prevent collisions with project, user, and other plugin skills. Invoke a skill with its plugin ID and skill path:

```text
/skill:plugin-name@marketplace-name:skill-name optional arguments
```

In interactive mode, autocomplete also matches the shorter `/plugin-name:skill-name` form and expands it to the canonical `/skill:` command. Nested skill directories add each directory to the namespace. For example, `skills/review/security/SKILL.md` from `quality@acme-tools` becomes `/skill:quality@acme-tools:review:security`.

An enabled plugin can also contribute MCP servers. Deep Agents Code merges these servers with your regular MCP configuration when plugins load. Use `/mcp` to inspect available servers and tools.

## Create a plugin

A Deep Agents Code plugin is a directory containing one or both of the supported components:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
A Deep Agents Code plugin is a directory containing one or both of the supported components:
A plugin is a directory containing one or both of the supported components:


```text
my-plugin/
├── .claude-plugin/
Comment thread
open-swe[bot] marked this conversation as resolved.
│ └── plugin.json
├── skills/
│ └── review/
│ └── SKILL.md
└── .mcp.json
```

Deep Agents Code also recognizes `.codex-plugin/plugin.json`. The manifest is optional when components use their default locations. If the plugin contains one skill only, you can place `SKILL.md` at the plugin root instead of creating `skills/`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this an open spec? let's link to it


### Define the plugin manifest

When present, `.claude-plugin/plugin.json` or `.codex-plugin/plugin.json` must contain a `name`. You can also declare a version and custom component paths:

```json
{
"name": "my-plugin",
"version": "1.0.0",
"skills": "./skills",
"mcpServers": "./.mcp.json"
}
```

The `skills` and `mcpServers` fields accept a path string or an array of paths. `mcpServers` can also contain an inline MCP configuration object. Every component path must start with `./`, remain inside the plugin root, and not contain `..`.

When no custom path is declared, Deep Agents Code discovers:

- Skills under `skills/`, or a root `SKILL.md` when no `skills/` directory exists.
- MCP servers in a root `.mcp.json` file.

### Add skills

Organize each skill as a directory containing `SKILL.md`:

```text
skills/
└── review/
├── SKILL.md
└── checklist.md
```

Use the same skill format as standalone Deep Agents Code skills. The installed plugin name becomes the skill namespace. For more information, see [Memory and skills](/oss/deepagents/code/memory-and-skills#skills).

### Add MCP servers

Place standard MCP server definitions in `.mcp.json` or declare them inline with `mcpServers` in the plugin manifest. Plugin configuration supports these path variables:

- `${CLAUDE_PLUGIN_ROOT}` or `${PLUGIN_ROOT}`: The installed plugin directory.
- `${CLAUDE_PLUGIN_DATA}` or `${PLUGIN_DATA}`: The writable data directory for the plugin.
- `${CLAUDE_PROJECT_DIR}`: The active project directory.

For example:

```json
{
"mcpServers": {
"review-tools": {
"command": "python",
"args": ["${CLAUDE_PLUGIN_ROOT}/server.py"],
"env": {
"CACHE_DIR": "${CLAUDE_PLUGIN_DATA}"
}
}
}
}
```

For supported MCP transports and fields, see [MCP tools](/oss/deepagents/code/mcp-tools).

## Create a marketplace

A marketplace is a JSON catalog with a name and a `plugins` array. Store it at one of these paths in the marketplace root:

- `.claude-plugin/marketplace.json`
- `.agents/plugins/marketplace.json`
- `.agents/plugins/api_marketplace.json`

The following marketplace contains one plugin stored in the same repository:

```json
{
"name": "acme-tools",
"plugins": [
{
"name": "code-review",
"source": "./plugins/code-review",
"description": "Review code for correctness and maintainability"
}
]
}
```

Each plugin entry requires a `name` and `source`. It can also include `description` and `author`. Local source paths must start with `./` and stay inside the marketplace root. Set `metadata.pluginRoot` when all local plugins share a different base directory.

Marketplace entries can also use external Git sources:

```json
{
"name": "acme-tools",
"plugins": [
{
"name": "code-review",
"source": {
"source": "github",
"repo": "acme/code-review-plugin",
"ref": "v1.0.0"
}
},
{
"name": "release-tools",
"source": {
"source": "git-subdir",
"url": "https://github.com/acme/developer-tools.git",
"path": "./plugins/release-tools",
"ref": "main"
}
}
]
}
```

Supported external plugin source types are `github`, `url`, and `git-subdir`. Remote URLs must use HTTPS. A marketplace added as a direct JSON URL cannot contain local relative plugin sources because only the catalog file is downloaded. Use a Git repository or local directory when the catalog references plugin directories in the same source tree.

Test a local marketplace by adding its directory, installing a plugin, and starting a new session or running `/reload`:

```bash
dcode plugin marketplace add ./my-marketplace
dcode plugin install code-review@acme-tools
```

## See also

- [Memory and skills](/oss/deepagents/code/memory-and-skills)
- [MCP tools](/oss/deepagents/code/mcp-tools)
- [Command reference](/oss/deepagents/code/cli-reference)
- [Configuration](/oss/deepagents/code/configuration)
3 changes: 2 additions & 1 deletion src/oss/deepagents/code/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,9 @@ The agent uses its built-in tools, skills, and memory to help you with tasks.
- `/copy`: Copy the latest assistant message to the clipboard.
- `/threads`: Browse and resume previous conversation threads.
- `/mcp [login <server> | reconnect]`: Show active MCP servers and tools. `login <server>` runs the OAuth flow for a server; `reconnect` loads deferred logins.
- `/plugins`: Manage [plugins and marketplaces](/oss/deepagents/code/plugins).
- `/notifications`: Configure startup warning preferences.
- `/reload`: Re-read `.env` files, refresh configuration, and re-discover skills without restarting. Conversation state is preserved. See [`DEEPAGENTS_CODE_` prefix](/oss/deepagents/code/configuration#deepagents_code_-prefix) for override behavior.
- `/reload`: Re-read `.env` files, refresh configuration, and re-discover skills without restarting. This also reloads plugin skills and MCP configuration. Conversation state is preserved. See [`DEEPAGENTS_CODE_` prefix](/oss/deepagents/code/configuration#deepagents_code_-prefix) for override behavior.
- `/theme`: Open the interactive theme selector to switch color themes. Built-in themes are available plus any [user-defined themes](/oss/deepagents/code/configuration#themes).
- `/scrollbar`: Show or hide the chat scrollbar.
- `/update`: Check for and install Deep Agents Code updates inline. Detects your install method (uv, Homebrew, pip) and runs the appropriate upgrade command.
Expand Down
Loading