Manage plugins interactively
To browse marketplaces and manage plugins in adcode session:
- Run
/pluginsto open the plugin manager. - Add a marketplace from its Marketplaces tab. Supported sources include:
- A GitHub repository in
owner/repoformat, optionally followed by@branch-or-tag. - 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.
- A GitHub repository in
- Install a plugin from the marketplace.
- Run
/reloadto activate newly installed plugin skills, MCP servers, and hooks without restarting the session.
/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.
Automatically update plugins
Deep Agents Code can update installed plugins in the background after the first prompt. Updates apply only to enabled plugins that opt in through their own manifest. Plugin authors opt in per plugin by adding this block to that plugin’splugin.json:
/reload. To disable automatic plugin updates globally, set [plugins].auto_update = false in config.toml or DEEPAGENTS_CODE_PLUGIN_AUTO_UPDATE=false in the environment.
Manage plugins from the command line
Usedcode plugin for scripts and terminal-based administration. Plugin IDs use the format plugin-name@marketplace-name.
plugin list and plugin marketplace list accept --json. After installing a plugin, run /reload in an active interactive session or start a new session.
Use plugin skills, MCP servers, and hooks
Plugin skills are namespaced to prevent collisions with project, user, and other plugin skills. Invoke a skill with its plugin ID and skill path:/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.
Plugin hooks use the same lifecycle events and handler format as user and project hooks. The plugin manager lists the events each plugin declares. Enabling the plugin is the only consent gate for its hooks: workspace trust applies to project hooks, not plugin hooks.
Create a plugin
A Deep Agents Code plugin is a directory containing any of the supported components:.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/.
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:
skills, mcpServers, and hooks fields accept a path string or an array of paths. mcpServers and hooks can also contain inline configuration objects. 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 rootSKILL.mdwhen noskills/directory exists. - MCP servers in a root
.mcp.jsonfile. - Hooks in
hooks/hooks.json.
Add skills
Organize each skill as a directory containingSKILL.md:
Add MCP servers
Place standard MCP server definitions in.mcp.json or declare them inline with mcpServers in the plugin manifest. MCP servers and hook commands support 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.
Add hooks
Place a hook document athooks/hooks.json, declare a relative hooks path, or define hooks inline in the plugin manifest. Hook commands receive the path variables above. See Hooks for the configuration and event reference.
Create a marketplace
A marketplace is a JSON catalog with a name and aplugins 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
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:
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:
See also
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

