Installing plugins
Plugins add channels, skills, providers, and middleware without touching the core. Installing one is two steps: drop a DLL in the plugins folder, restart.
Where plugins live
AgentParley discovers plugins from <home>/plugins (default ~/parley/plugins). Two layouts are supported:
MyPlugin.dll # flat: a single self-contained dll MyPlugin/ # folder: main dll + its dependencies MyPlugin.dll # (the dll matching the folder name is the entry point) SomeDependency.dll
Install a plugin
If you have the published DLL(s), copy them in and restart the host:
cp -r ./MyPlugin ~/parley/plugins/ # or: cp MyPlugin.dll ~/parley/plugins/ # restart 'parley serve' — the plugin set is fixed for the lifetime of a process
Building from source? Publish first, then copy:
dotnet publish plugins/AgentParley.Channel.Telegram -c Release -o out cp out/AgentParley.Channel.Telegram.dll ~/parley/plugins/
parley serve restart — there is no hot-reload of native assemblies.List what's installed
dotnet run --project src/AgentParley.Cli -- plugin list # Plugins: # base (built-in) # AgentParley.Channel.Telegram (AgentParley.Channel.Telegram.dll) # Load order: base, telegram
Successfully-loaded plugins also appear in the serve logs and at GET /api/plugins, and in the console under Settings → Plugins.
Load order & dependencies
Plugins are sorted topologically by their declared DependsOn, with basealways first. You can pin a preferred order in parley.yaml:
plugins: loadOrder: [base, telegram, brave]
Order matters for selectable providers: the last-registered implementation in a group is the default until an operator picks one.
Configure a plugin
Most plugins need configuration — an API key, a connection. Plugins declare the fields they need, and the console renders a form for them under Settings; secret fields are written straight to the vault. A web-search provider, for instance, shows up under Settings → Web search with an API-key field. Then pick the active implementation under Settings → Providers.
Uninstall
Remove a plugin from the console (Settings → Plugins) or via the API — this drops it from the load order and purges its instance-keyed data. Delete the DLL and restart to fully unload the assembly.
curl -X DELETE http://127.0.0.1:8420/api/plugins/telegram \ -H "Authorization: Bearer $ADMIN_TOKEN" rm -r ~/parley/plugins/AgentParley.Channel.Telegram* # then restart