Pluggable interfaces — where to go for each
The table above shows the four plugin categories, but within "General plugins" the PluginContext exposes several distinct extension points - and Hermes also accepts extensions outside the Python plugin system (config-driven backends, shell-hooked commands, external servers, etc.). Use this table to find the right doc for what you want to build: Want to add… How Authoring guide A tool the LLM can call Python plugin - ctx.register_tool() Build a Hermes Plugin · Adding Tools A lifecycle hook (pre/post LLM, session start/end, tool filter) Python plugin - ctx.register_hook() Hooks reference · Build a Hermes Plugin A slash command for the CLI / gateway Python plugin - ctx.register_command() Build a Hermes Plugin · Extending the CLI A subcommand for hermes <thing> Python plugin - ctx.register_cli_command() Extending the CLI A bundled skill that your plugin ships Python plugin - ctx.register_skill() Creating Skills An inference backend (LLM provider: OpenAI-compat, Codex, Anthropic-Messages, Bedrock) Provider plugin - register_provider(ProviderProfile(...)) in plugins/model-providers/<name>/ Model Provider Plugins · Adding Providers A gateway channel (Discord / Telegram / IRC / Teams / etc…
From the official Hermes Agent documentation.