Field-level reference for plugin.json fields, directory layout, and Marketplace Schema; see the Plugin page for usage guides.
Plugins are installable extension packages that add commands, agents, skills, hooks, output styles, workflows, and MCP servers to Qoder CLI. This page provides a complete reference for the plugin manifest, directory structure, and marketplace schema. For usage guidelines, see Plugins.
The manifest file is located at
In
The following fields are used to override conventional directories or declare components inline (as relative path strings, arrays, or object mappings):
If components are not explicitly declared in the manifest, the plugin automatically discovers them in the following conventional directories:
A plugin marketplace describes a set of installable plugins via
In an interactive session, use
From the command line, use
* Commands marked with an asterisk are controlled by the plugin marketplace feature flag and are unavailable when disabled.
Startup parameter:
These two settings are placed under the
Plugin Manifest (plugin.json)
The manifest file is located at .qoder-plugin/plugin.json and must not be placed in the plugin root directory. This file is optional—if omitted, the CLI loads components from conventional directories and uses the plugin directory name as the plugin name. However, it is recommended to declare it to ensure stable metadata such as name and version.
Required Fields
In plugin.json, only name is required; all other fields are optional.
| Field | Type | Description |
|---|---|---|
name | string | The unique identifier for the plugin (kebab-case, no spaces). |
Optional Metadata Fields
| Field | Type | Description |
|---|---|---|
version | string | Semantic version number (e.g., 1.0.0). |
displayName | string | Human-readable name displayed in the UI. |
description | string | A brief description. |
author | object | Author information (name/email/url). |
homepage | string | URL for documentation or homepage. |
repository | string | URL for the source code repository. |
license | string | SPDX license identifier (e.g., MIT, Apache-2.0). |
keywords | string[] | Tags for search and categorization. |
dependencies | array | Other dependent plugins (marketplace can be specified). |
Component Declaration Fields
The following fields are used to override conventional directories or declare components inline (as relative path strings, arrays, or object mappings):
| Field | Description |
|---|---|
commands | Command definitions. |
agents | Path to the agent definition file. |
skills | Path to the skills directory. |
outputStyles | Output style definitions. |
workflowsPath / workflowsPaths | Paths to workflow files. |
hooks | Hook configuration (relative path to a JSON file or inline configuration). |
mcpServers | MCP server configuration (relative path to a JSON file or inline configuration). |
userConfig | Definitions for user-configurable options. |
settings | Configurations merged when the plugin is enabled. Currently only the agent key is supported; other keys are ignored. |
Conventional Directory Structure
If components are not explicitly declared in the manifest, the plugin automatically discovers them in the following conventional directories:
Compatible withmcp.json(without a leading dot) as a fallback for.mcp.json. If both exist,.mcp.jsontakes precedence, and they are not merged.
Marketplace Manifest (marketplace.json)
A plugin marketplace describes a set of installable plugins via marketplace.json.
Required Fields
| Field | Type | Description |
|---|---|---|
name | string | The name of the marketplace. |
owner | object | Marketplace maintainer information (name/email/url). |
plugins | array | Array of plugin entries. |
Optional Fields
| Field | Type | Description |
|---|---|---|
forceRemoveDeletedPlugins | boolean | Automatically uninstall plugins removed from the marketplace. |
metadata.pluginRoot | string | Base path relative to the plugin source. |
metadata.version | string | Marketplace version. |
metadata.description | string | Marketplace description. |
allowCrossMarketplaceDependenciesOn | string[] | Names of marketplaces allowed for cross-marketplace dependencies. |
Plugin Entry Fields
| Field | Type | Description |
|---|---|---|
name | string | Plugin name (must match name in plugin.json). |
source | string/object | Plugin source (relative path, npm, git, github, url, etc.). |
category | string | Category tag. |
tags | string[] | Search tags. |
strict | boolean | Whether a manifest is required in the plugin folder (default true). |
Management Commands
In an interactive session, use /plugins (alias /plugin); without a subcommand, it opens the plugin explorer:
| Subcommand | Arguments | Description |
|---|---|---|
install (alias i) | <plugin> | Install a plugin. |
uninstall (alias remove/rm) | <plugin> | Uninstall a plugin. |
enable | <plugin> | Enable a plugin. |
disable | <plugin> | Disable a plugin. |
update* | <plugin> | Update a plugin. |
validate | <path> | Validate a plugin directory or plugin.json. |
marketplace (alias market)* | — | Manage plugin marketplaces, including add <source>, list, remove <name>, and update [name]. |
reload | — | Reload all plugins. |
qodercli plugins (alias plugin):
| Subcommand | Description |
|---|---|
list | List installed plugins. |
install (alias i) | Install a plugin from a marketplace or local directory. |
uninstall (alias remove/rm) | Uninstall a plugin. |
enable / disable | Enable / disable a plugin. |
update* | Update a plugin to the latest version from its source marketplace. |
validate | Validate a plugin in a local directory. |
marketplace (alias mp)* | Manage plugin marketplaces. |
--plugin-dir <path> appends additional plugin search directories.
Security
These two settings are placed under the security group in settings.json (a restart is required after modification):
security.blockGitExtensions: truecan block installing/loading plugins from Git.security.allowedExtensionsprovides a regex allowlist for plugin sources; when non-empty, only matching sources are allowed (overridesblockGitExtensions).
Next Steps
- Plugin usage guide: Plugins.
- Hooks reference: Hooks reference.
- MCP reference: MCP reference.