Appearance
Extending Plugins
Plugins are local packages that contribute channels, connector modules, skills, or read-only tools.
Directory layout
Create one package under a category root:
text
~/.murph/plugins/channels/teams
~/.murph/plugins/context/linear
~/.murph/plugins/skills/escalation
~/.murph/plugins/tools/internal-search
~/.murph/plugins/bundles/customer-opsUse bundles only when one package intentionally combines multiple capability types.
Manifest
Every scoped plugin needs plugin.json:
json
{
"id": "linear",
"name": "Linear",
"description": "Linear issue and project context",
"version": "0.1.0",
"capabilities": {
"skills": ["skills/linear.md"],
"integrations": ["integrations/linear.mjs"]
}
}Required fields:
id: stable id using letters, numbers, dots, underscores, or hyphens.name: display name used in plugin status.description: short operator-facing purpose.capabilities: at least one ofskills,integrations, orchannels.
Capability paths are relative to the plugin root. Paths that escape the package root are rejected.
Capability files
Use conventional paths:
text
plugin.json
skills/<id>.md
integrations/<id>.mjs
channel.mjscapabilities.skills points to Markdown skill files. capabilities.integrations points to connector modules. capabilities.channels points to channel plugin modules.
Integration connector metadata is runtime UI metadata too. After reload, /api/integrations/status exposes plugin-provided integrations so the browser UI can render generic cards without source changes.
Loading and validation
Reload scoped plugins after changing manifests or capability files:
bash
curl -s -X POST http://localhost:5173/api/plugins/reloadInspect status:
bash
curl -s http://localhost:5173/api/plugins/statusFailed plugins return a validation error without blocking other valid packages.
Safety rules
- Scoped plugin connector tools must be read-only.
- A connector module cannot contribute a channel adapter or model provider.
- A channel plugin id must match the manifest id.
- A channel runtime id must match the channel id.
- Skill files must include parseable frontmatter.
Ask murph agent to scaffold or inspect a plugin when you want it to write the package and call validation APIs for you.