---
title: Plugins
url: https://arcana.otnelhq.com/docs/plugins
---

# 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" }
      }
    }
  }]
}
```
