Plugin Commands¶
Manage SuperQode plugins: discover, validate, install, and control plugins that extend agent capabilities.
Overview¶
The superqode plugins command group manages plugins:
superqode plugins COMMAND [OPTIONS] [ARGS]
Plugins are discovered from these directories (scanned in order):
| Directory | Description |
|---|---|
.superqode/plugins/ | Project-level plugins |
.agents/plugins/ | Legacy project-level plugins |
~/.superqode/plugins/ | User-level (global) plugins |
Plugin state is stored in .superqode/plugins.json, which tracks the disabled plugin list.
Project Trust¶
Commands that modify plugin state (add, enable, disable) require the project to be trusted:
superqode trust yes
Plugin Manifest Format¶
Every plugin is defined by a plugin.json manifest file:
{
"id": "my-plugin",
"name": "My Plugin",
"version": "1.0.0",
"description": "Adds custom tools and hooks",
"tools": [],
"commands": [],
"skills": [],
"providers": [],
"permission_rules": [],
"context_injectors": [],
"event_hooks": []
}
Manifest Fields¶
| Field | Description |
|---|---|
id | Unique plugin identifier |
name | Human-readable display name |
version | Semantic version string |
description | Short description of plugin functionality |
tools | Custom tool definitions the plugin contributes |
commands | Custom CLI commands the plugin contributes |
skills | Skill definitions the plugin contributes |
providers | Provider configurations the plugin registers |
permission_rules | Additional permission rules for the plugin |
context_injectors | Context injection hooks |
event_hooks | Event hook registrations |
Event Hooks¶
The event_hooks array registers callbacks at lifecycle points. Each entry has:
| Field | Description |
|---|---|
point | Hook point identifier (see below) |
handler | Python module path in module:func format |
name | Optional human-readable name |
Supported hook points (11 total):
| Hook Point | Trigger |
|---|---|
session_start | Session begins |
user_prompt_submit | User submits a prompt |
before_llm_call | Before LLM API call |
after_llm_call | After LLM API response |
permission_request | Permission request raised |
before_tool_call | Before a tool executes |
after_tool_call | After a tool completes |
after_turn_complete | After a turn finishes |
before_compact | Before context is compacted |
after_compact | After context is compacted |
stop | Session stops |
Example:
{
"event_hooks": [
{
"point": "before_tool_call",
"handler": "my_plugin.hooks:on_before_tool",
"name": "Log tool calls"
}
]
}
plugins list¶
List discoverable plugins with version and enabled/disabled state.
superqode plugins list [OPTIONS]
Options¶
| Option | Description |
|---|---|
--all | Show plugins from all discovery directories |
--json | Emit JSON output |
Examples¶
# List project plugins
superqode plugins list
# List all discoverable plugins
superqode plugins list --all
# JSON output
superqode plugins list --all --json
plugins show¶
Show detailed manifest information for a specific plugin.
superqode plugins show PLUGIN_ID
Arguments¶
| Argument | Description |
|---|---|
PLUGIN_ID | Unique plugin identifier |
Example¶
superqode plugins show my-plugin
plugins validate¶
Validate a single plugin.json manifest file against the schema.
superqode plugins validate PATH
Arguments¶
| Argument | Description |
|---|---|
PATH | Path to a plugin.json file |
Example¶
superqode plugins validate .superqode/plugins/my-plugin/plugin.json
plugins doctor¶
Validate all discoverable plugin manifests (or a specific path).
superqode plugins doctor [PATH]
Arguments¶
| Argument | Description |
|---|---|
PATH | Optional path to validate instead of all discoverable manifests |
Examples¶
# Validate all discoverable manifests
superqode plugins doctor
# Validate a specific directory
superqode plugins doctor .superqode/plugins/my-plugin
plugins add¶
Install a local plugin directory or plugin.json file. Requires a trusted project.
superqode plugins add SOURCE
Arguments¶
| Argument | Description |
|---|---|
SOURCE | Path to a plugin directory or plugin.json file |
Examples¶
superqode plugins add ./my-plugin
superqode plugins add ./my-plugin/plugin.json
Prerequisites¶
Project must be trusted:
superqode trust yes
plugins enable¶
Enable a plugin for the current project. Requires a trusted project.
superqode plugins enable PLUGIN_ID
Arguments¶
| Argument | Description |
|---|---|
PLUGIN_ID | Plugin identifier to enable |
Example¶
superqode plugins enable my-plugin
Prerequisites¶
Project must be trusted:
superqode trust yes
plugins disable¶
Disable a plugin for the current project. Requires a trusted project.
superqode plugins disable PLUGIN_ID
Arguments¶
| Argument | Description |
|---|---|
PLUGIN_ID | Plugin identifier to disable |
Example¶
superqode plugins disable my-plugin
Prerequisites¶
Project must be trusted:
superqode trust yes