Plugins library for Akasha (similar spirit to Akasha_skills), focused on high-level tools that agents can call and that can render advanced outputs in Tauri UI and TUI.
Akasha_plugins/
├── plugins/
│ ├── maps/ # outils agent (cartographie, itinéraires)
│ ├── graph/ # outils agent (graphiques)
│ ├── simulation/ # outils agent (scénarios)
│ ├── caldav-channel/ # canal CalDAV → calendrier Akasha (WASM + sidecar)
│ └── matrix-channel/ # canal Matrix → sessions chat Akasha (WASM + sidecar)
│ ├── plugin.json
│ ├── manifest.toml
│ ├── README.md
│ ├── wasm/ # contrat catalogue (hooks, permissions)
│ └── sidecar/ # binaire natif (sync réseau runtime)
├── scripts/
│ └── build_plugins.py
├── plugins.json # auto-generated catalog
├── index.html # simple catalog page
└── .github/
└── workflows/
├── sync-plugins.yml
└── plugins-catalog-validate.yml # CI: rebuild + validate plugins.json (semver, wasm_sha256 hex)
Each installable plugin directory must contain:
manifest.toml(ormanifest.json)plugin.wasm(WASM binary)
Akasha loads plugins from:
${AKASHA_DATA_DIR}/plugins/<plugin-id>/
Then reload:
akasha plugin reload
List installed:
akasha plugin list
See TRUST_CATALOG.md for the roadmap on WASM digest, signatures, visible permissions, and MCP/hook alignment with the core daemon.
For plugin tool integrations targeting current Akasha clients:
- Emit or map lifecycle signals consistently with daemon task events (
tool_call_started,tool_call_finished). - Keep payloads deterministic and include correlation identifiers when available.
- Design plugin outputs so UIs can render both rich and fallback forms without assuming a single channel.
This improves timeline coherence in Code Studio, Tauri UI, and TUI.
plugin.json is for this repository catalog and website.
Required fields:
idnameversiondescriptionauthorcategorytagsiconfeaturedpermissionsentry_toolsui_views
maps— itinerary + distance between pointsgraph— chart rendering (timeseries/scatter/bar)simulation— scenario simulation and timeseries output
These plugins expose entry_tools and ui_views. Tauri renders rich views; TUI falls back to text/table.
caldav-channel— sync CalDAV ↔ calendrier Akasha (on_schedule_fire+ sidecarakasha-caldav-sidecar)matrix-channel— messages Matrix →POST /api/message(hooks canal + sidecarakasha-matrix-sidecar)
Channel plugins use WASM for catalogue/hooks (via hook_events in plugin.json) and a sidecar for the sync réseau. See each plugin README.md for env vars and limitations.
python scripts/build_plugins.pyThis regenerates plugins.json from all plugins/*/plugin.json manifests.
# PowerShell
./scripts/build_maps_plugin.ps1
# Bash
./scripts/build_maps_plugin.shThis generates plugins/maps/plugin.wasm from plugins/maps/wasm.
# PowerShell
./scripts/build_graph_plugin.ps1
# Bash
./scripts/build_graph_plugin.shThis generates plugins/graph/plugin.wasm from plugins/graph/wasm.
# PowerShell
./scripts/build_simulation_plugin.ps1
# Bash
./scripts/build_simulation_plugin.shThis generates plugins/simulation/plugin.wasm from plugins/simulation/wasm.
- Build plugin WASM in this repo (when implementation is ready)
- Copy plugin folder to
${AKASHA_DATA_DIR}/plugins/<id> - Run:
akasha plugin reloadakasha plugin list
- Call tool from agent workflow (once tool-dispatch plugin routing is enabled in daemon)
Tool call conventions now supported by daemon plugin dispatch:
TOOL: maps_distance <from_lat> <from_lon> <to_lat> <to_lon> [mode]TOOL: maps_route <from_lat> <from_lon> <to_lat> <to_lon> [mode]TOOL: graph_plot <chart> <y1> <y2> ...TOOL: graph_stats <json-or-args...>TOOL: plugin.maps <json-or-args...>TOOL: plugin.call maps <json-or-args...>TOOL: plugin.graph <json-or-args...>TOOL: plugin.call graph <json-or-args...>TOOL: sim_run <initial> <growth_rate> <noise> <horizon>TOOL: sim_compare <initial> <growth_rate> <noise> <horizon>TOOL: plugin.simulation <json-or-args...>TOOL: plugin.call simulation <json-or-args...>
This repo scaffolds plugin catalog + contracts + packaging layout first.
Runtime dispatch from agent tool calls to PluginRegistry::call_tool is handled in Akasha core and should be enabled there.