Gateway RPCMethods Reference
plugins.*
Plugin management RPC methods
Plugin methods manage the plugin system — load, unload, list, and configure plugins that extend Aleph's capabilities. Plugins can add tools, handlers, event listeners, and custom behavior.
Methods
plugins.list
List all loaded plugins and their status.
Request:
{
"jsonrpc": "2.0",
"id": 1,
"method": "plugins.list",
"params": {}
}Response:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"plugins": [
{
"id": "filesystem",
"name": "File System Plugin",
"version": "1.0.0",
"enabled": true,
"tools": ["read_file", "write_file", "list_dir"],
"handlers": ["file_change_event"]
}
]
}
}plugins.status
Get detailed status of a specific plugin.
Request:
{
"jsonrpc": "2.0",
"id": 2,
"method": "plugins.status",
"params": {
"plugin_id": "filesystem"
}
}Response:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"id": "filesystem",
"name": "File System Plugin",
"version": "1.0.0",
"enabled": true,
"loaded_at": "2024-01-15T10:30:00Z",
"tools_count": 3,
"handlers_count": 1
}
}plugins.load
Load a plugin from a path or plugin ID.
Request:
{
"jsonrpc": "2.0",
"id": 3,
"method": "plugins.load",
"params": {
"path": "~/.aleph/plugins/custom_plugin"
}
}Response:
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"loaded": true,
"plugin_id": "custom_plugin"
}
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
path | string | Yes* | Path to plugin directory or file |
plugin_id | string | Yes* | Plugin identifier (alternative to path) |
*One of path or plugin_id is required.
plugins.unload
Unload a plugin by ID.
Request:
{
"jsonrpc": "2.0",
"id": 4,
"method": "plugins.unload",
"params": {
"plugin_id": "filesystem"
}
}Response:
{
"jsonrpc": "2.0",
"id": 4,
"result": {
"unloaded": true
}
}plugins.reload
Reload a plugin (unload then load).
Request:
{
"jsonrpc": "2.0",
"id": 5,
"method": "plugins.reload",
"params": {
"plugin_id": "filesystem"
}
}Response:
{
"jsonrpc": "2.0",
"id": 5,
"result": {
"reloaded": true
}
}plugins.enable
Enable a previously disabled plugin.
Request:
{
"jsonrpc": "2.0",
"id": 6,
"method": "plugins.enable",
"params": {
"plugin_id": "filesystem"
}
}plugins.disable
Disable a plugin without unloading it.
Request:
{
"jsonrpc": "2.0",
"id": 7,
"method": "plugins.disable",
"params": {
"plugin_id": "filesystem"
}
}Plugin Structure
Plugins are loaded from ~/.aleph/plugins/ and typically contain:
my_plugin/
plugin.toml # Plugin manifest
src/
lib.rs # Plugin entry point
skills/ # Optional bundled skillsplugin.toml example:
[plugin]
id = "my_plugin"
name = "My Plugin"
version = "1.0.0"
description = "Does something useful"
[plugin.tools]
provides = ["my_tool"]
[plugin.events]
listens = ["session.start"]See Also
- Methods Reference -- All method namespaces
- Architecture: Plugins -- Plugin system architecture