How-To Series · Episode 44 / 59 · Module 7: Power Tools

Hermes · Build a Plugin

Two files. That's a plugin.

After this videoYou can now extend Hermes with your own tools and integrations.

A plugin is a folder in ~/.hermes/plugins/<name>/ with a tiny plugin.yaml manifest (name/version/description) and Python. The heart is a register(ctx) function; Hermes hands it a context object you use to wire things up. A tool is two halves: a schema (the JSON the model sees) and a handler (the Python that runs), connected with ctx.register_tool(...). In the same function, ctx.register_hook("post_tool_call", cb) adds a lifecycle hook. The context also registers slash commands, CLI subcommands, skills, and whole platforms. Plugins are opt-in: hermes plugins enable <name>, restart, then ask the model to use your tool and /plugins confirms it loaded.

About these resources. Every command in this video comes from the Plugins doc and the Build a Hermes Plugin guide.

Sources · What this video distills

2 docs pages · every command below traces to one of them
Primary · plugin shape, register(ctx) API, the hello_world example, opt-in model, ctx extension points
Plugins
Read ↗
The full step-by-step build
Build a Hermes Plugin · Guide
Read ↗

Commands shown · Copy and paste

each shows the source doc it came from
Register a toolfrom source ↗
ctx.register_tool(name=..., toolset=..., schema=..., handler=...)
Register a hookfrom source ↗
ctx.register_hook("post_tool_call", callback)
Enable + testfrom source ↗
hermes plugins enable hello-world · /plugins

Going deeper · Related Hermes docs

further reading · not sources of facts shown above

Next in the series · Episodes that build on this

E43
Built-In Plugins Tour
E42
Connect Anything With MCP
E40
Event Hooks