What plugins can do
Every ctx.* API below is available inside a plugin's register(ctx) function. Capability How Add tools ctx.register_tool(name=..., toolset=..., schema=..., handler=...) Add hooks ctx.register_hook("post_tool_call", callback) Add slash commands ctx.register_command(name, handler, description) - adds /name in CLI and gateway sessions Dispatch tools from commands ctx.dispatch_tool(name, args) - invokes a registered tool with parent-agent context auto-wired Add CLI commands ctx.register_cli_command(name, help, setup_fn, handler_fn) - adds hermes <plugin> <subcommand> Inject messages ctx.inject_message(content, role="user", session_key=...) - see Injecting Messages Ship data files Path(__file__).parent / "data" / "file.yaml" Bundle skills ctx.register_skill(name, path) - namespaced as plugin:skill , loaded via skill_view("plugin:skill") Gate on env vars requires_env: [API_KEY] in plugin.yaml - prompted during hermes plugins install Distribute via pip [project.entry-points."hermes_agent.plugins"] Register a gateway platform (Discord, Telegram, IRC, …) ctx.register_platform(name, label, adapter_factory, check_fn, ...) - see Adding Platform Adapters Register an image-generation backend ctx.…
From the official Hermes Agent documentation.