hermes-herdr-auto-title
A Hermes Agent plugin that auto-titles herdr tabs from the first user message of a session.
How it works
When the first LLM response completes in a new Hermes session, the plugin:
- Sends the first user message + assistant response to
ctx.llm(your active model) with a short prompt asking for a 2–6 word title. - Cleans up the output (strips quotes, trailing punctuation).
- Sends the title to the herdr daemon via its Unix socket (
tab.rename). - If the LLM call fails or
ctx.llmis unavailable, falls back to truncating the first line of the user message to 40 characters.
The LLM call runs in a background daemon thread so it never blocks the turn finalizer. Titles are generated in the same language the user is writing in.
Requirements
- Hermes Agent running inside a herdr pane (env vars
HERDR_ENV,HERDR_TAB_ID,HERDR_SOCKET_PATHset by herdr) - The plugin silently does nothing if those env vars are absent (e.g. running Hermes outside herdr)
Install
Copy the plugin directory into your Hermes plugins folder:
cp -r herdr-auto-title ~/.hermes/plugins/herdr-auto-title
Restart Hermes. The plugin auto-registers — no config needed.
Files
| File | Purpose |
|---|---|
__init__.py | Plugin logic: hooks, LLM call, herdr socket communication |
plugin.yaml | Plugin metadata (name, version, description) |
Notes
- Separate from the
herdr-agent-stateplugin so thatherdr integration install hermesreinstalls don't clobber it. - Each session is titled once. Starting a new session (
/new) resets the state so the new session gets its own title.