Plugins
Extend Arcana's capabilities with community and custom plugins. Plugins can add new tools, integrate with external services, modify the terminal UI, or hook into session lifecycle events.
How Plugins Work
Plugins are self-contained packages that register capabilities with Arcana at startup. They can:
- Add new tools for the AI to use (e.g., a SQL query tool)
- Register MCP servers automatically
- Provide custom prompts and templates
- Hook into session lifecycle events (start, message, end)
- Integrate with external APIs and services
Installing Plugins
Plugins are distributed through the Arcana plugin registry. Install them with a single command:
# Install from the registry
arcana plugin install arcana-mcp-fs
# Install from a local directory
arcana plugin install ./my-plugin
# Install from a Git repository
arcana plugin install https://github.com/user/arcana-plugin
Managing Plugins
# List all installed plugins
arcana plugin list
# View plugin details and permissions
arcana plugin info arcana-mcp-fs
# Update a plugin to the latest version
arcana plugin update arcana-mcp-fs
# Update all plugins
arcana plugin update --all
# Remove a plugin
arcana plugin remove arcana-mcp-fs
Plugin Registry
Search the community plugin registry to discover plugins:
# Search by keyword
arcana plugin search "database"
arcana plugin search "monitoring"
arcana plugin search "github"
# List popular plugins
arcana plugin list --remote
# View plugin details before installing
arcana plugin info arcana-mcp-fs --remote
Plugin Permissions
Each plugin declares the permissions it needs. Arcana prompts you to review and approve them on first install:
| Permission | Description |
|---|---|
shell | Execute arbitrary shell commands |
filesystem | Read and write files |
network | Make HTTP requests |
memory | Read and write session memory |
clipboard | Read clipboard contents |
# Review permissions of a plugin
arcana plugin permissions arcana-mcp-fs
# Set permissions (disable a permission)
arcana plugin permissions arcana-mcp-fs --deny network
Creating a Plugin
Plugins are JavaScript/TypeScript modules. A minimal plugin structure:
my-plugin/
package.json
index.js # Main plugin entry point
manifest.json # Plugin metadata and permissions
An example manifest.json:
{
"name": "hello-arcana",
"version": "1.0.0",
"description": "A simple example plugin",
"permissions": ["network"],
"tools": [{
"name": "hello",
"description": "A friendly greeting tool",
"parameters": {
"type": "object",
"properties": {
"name": { "type": "string" }
}
}
}]
}