Academy → Using HermesOfficial documentation · clear explanation

Plugins

الإضافات

Developer20 minutes3 questions2026-08-09
The idea in one minute

Start with meaning, then move to detail.

This lesson explains Plugins as part of Hermes internals and extension points. You will learn what it does, when it matters, and the smallest safe test that proves it works.

If you are new

If you are new, do not memorize names. Focus on three questions: what problem does this solve, what access does it need, and how can you verify the result?

For hands-on use

For practice, inspect the first example, identify its effects, run it on test data, and compare the result with the source claim.

For specialists

For advanced readers, inspect Quick overview, Minimal working example, What plugins can do, then verify failure modes and version compatibility.

What do you need first?

Know Python, Git, and basic project structure before changing code.

What will you know?

A clear outcome before you read.

  • Understand Plugins without assumed prior knowledge.
  • Separate the source description from what still needs testing in your environment.
  • Read the first command and identify its inputs and outputs before copying it.
Official page description

Extend Hermes with custom tools, hooks, and integrations via the plugin system

Topic map

What does the source say, and in what order?

  1. 01
    Quick overview

    Start here to understand the core idea or structure.

  2. 02
    Minimal working example

    Read this after the foundation, then connect it to the previous step.

  3. 03
    What plugins can do

    Read this after the foundation, then connect it to the previous step.

  4. 04
    Plugin discovery

    Read this after the foundation, then connect it to the previous step.

  5. 05
    Plugin sub-categories

    Read this after the foundation, then connect it to the previous step.

  6. 06
    Plugins are opt-in (with a few exceptions)

    Read this after the foundation, then connect it to the previous step.

  7. 07
    What the allow-list does NOT gate

    Read this after the foundation, then connect it to the previous step.

  8. 08
    Migration for existing users

    Read this after the foundation, then connect it to the previous step.

  9. 09
    Available hooks

    Read this after the foundation, then connect it to the previous step.

  10. 10
    Plugin types

    Finish here to verify the result and special cases.

Examples from the official page

Copy only after you understand the effect.

~/.hermes/plugins/my-plugin/ ├── plugin.yaml # manifest ├── __init__.py # register() — wires schemas to handlers ├── schemas.py # tool schemas (what the LLM sees) └── tools.py # tool handlers (what runs when called)
name: hello-world version: "1.0" description: A minimal example plugin
Drop both files into `~/.hermes/plugins/hello-world/`, restart Hermes, and the model can immediately call `hello_world`. The hook prints a log line after every tool invocation. The model-facing tool description belongs in `schema["description"]`. The optional `ctx.register_tool(description=...)` value is separate `ToolEntry` registry metadata: when omitted, it defaults to the schema description, but Hermes does not copy it back into a schema that lacks `description`. Prefer defining the text once in the schema. If you provide both values, keep them synchronized; the model sees the schema valu
Try it now

Read the first command and identify its inputs and outputs before copying it.

Match every command to your installed Hermes version, review the files and accounts it can reach, and use non-sensitive data for the first test. If this explanation differs from the source, the official source wins.

Knowledge check

Three decisions before completion.

1. What is the source of truth when “Plugins” changes?
2. What is the best way to apply this lesson?
3. What should happen before a step can modify files or an external account?