vennaVenna

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>/.

plugin.toml

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.

On this page