A plugin bundles reusable capability — skills and MCP servers — into a single installable package. Where a lone skill is one Markdown file and a lone MCP server is one mcp.json entry, a plugin lets you ship both together, version them, and distribute them from a local path, a ZIP URL, or a GitHub repository.

Managing plugins

Plugins are managed from inside the TUI with the /plugins slash command. Run /plugins with no arguments to open the interactive picker, or use a subcommand directly:

Install sources

Installed plugins live under ~/.geoff and are referenced by their id (the lowercased plugin name).
Plugins load at session start. After installing, enabling, or toggling a plugin’s MCP server, run /new or restart geoff for the change to take effect.

Plugin structure

A plugin is a directory containing a manifest. Geoff Code recognizes two layouts:
  • Root manifest — a geoff.plugin.json at the directory root.
  • Dir manifest — a .geoff-plugin/plugin.json inside the directory.

The manifest

geoff.plugin.json declares metadata plus the capabilities the plugin provides:
Key fields: The MCP entries follow the same schema as standalone MCP servers — see MCP for the stdio and HTTP field reference. Each server can be toggled per-plugin with /plugins mcp enable|disable.

Skills

The knowledge files plugins package and ship.

MCP

The server format plugins reuse for tools.