Plugins
Plugins extend Lime with new tools, hooks, slash commands, MCP servers, and skills. Three kinds:
| Kind | Description |
|---|---|
builtin | Shipped with the Lime binary itself. |
bundled | Pre-installed in the Lime bundle directory next to the binary. |
external | Installed from a local path. |
Manifest
Each plugin lives in a directory containing a .lime-plugin/plugin.json:
{ "id": "my-plugin", "name": "My Plugin", "version": "0.1.0", "description": "Adds a /my-command slash and a custom MCP server.", "author": "you@example.com",
"permissions": { "tools": ["read_file", "write_file"] },
"hooks": { "PreToolUse": ["./bin/audit"] },
"commands": [ { "name": "my-command", "path": "./commands/my-command.md" } ],
"mcpServers": { "my-tooling": { "type": "stdio", "command": "./bin/my-tooling-mcp" } },
"skills": [ { "id": "review-pr", "path": "./skills/review-pr/skill.json" } ]}Fields:
permissions.tools— required tool surface; surfaced to the user during install.hooks— same shape as the global hooks section.commands— register custom slash commands inside the plugin directory.mcpServers— plugin-delivered MCP servers (loaded as if you’d put them in your settings file).skills— declare skills the plugin contributes.
Manage plugins
Plugin management lives behind slash commands inside the REPL:
/plugin list/plugin install /path/to/my-plugin/plugin enable my-plugin/plugin disable my-plugin/plugin uninstall <id>/plugin update <id>/plugins is an alias for /plugin.
Where plugins are discovered
Lime scans, in this order:
- Built-in registry (compiled into the binary).
- Bundled directory (next to the
limebinary, configurable viaplugins.bundledRoot). - External directories listed in
plugins.externalDirectories. - The install root (
plugins.installRoot, default~/.lime/plugins/), where/plugin installwrites.
Enable state is per-user under enabledPlugins (or plugins.enabled).
Marketplace
plugins.marketplaceUrl (and plugins.extraMarketplaceUrls) configure
where /plugin install <name> looks for hosted plugins. Auto-update on
launch is gated by plugins.marketplaceAutoUpdates (default false).
Sandboxing plugin code
Plugins inherit the runtime’s sandbox and
permission model. A plugin’s hook scripts run
under the same constraints as any other tool call — FullAccess
operations are sandboxed, WriteWorkspace operations prompt for
approval, and so on.