Plugins
Namespaced bundles that ship skills, hooks, MCP servers, agents, and commands to Venna Code as one installable unit.
A plugin bundles skills, hooks, MCP servers, agents, and commands into one installable unit — a
plugin.toml manifest plus subdirectories Venna Code discovers by convention, under
~/.venna/plugins/<plugin>/.
Each subdirectory is discovered by name, not frontmatter: drop a SKILL.md tree under skills/, a
hook .toml under hooks/, an MCP server .toml under mcp/, and the plugin contributes all of
them at once.
Namespacing
When a plugin is enabled, every contribution is prefixed <plugin>/<name> — skill lint from
plugin acme becomes acme/lint, an MCP tool becomes mcp__<plugin>/<server>__<tool>. Disabling
the plugin drops all of its <plugin>/-prefixed contributions in one move, so nothing it added
lingers.
Install
Fetch and stage
Files are fetched, then path-validated (no .. or absolute-path escapes) — the same guard as skills.
Rename into place
The staged tree is renamed atomically into ~/.venna/plugins/<plugin>/ and the engine reloads,
merging the plugin's contributions into the live registries.
Toggle anytime
Flip the manifest's enabled flag to add or drop the plugin's contributions; the engine reloads on
each change.
The manifest schema and a worked walkthrough live in Plugin authoring.