xscapes for Hermes
Living ASCII scenes that react as Hermes works. The scene runs under Hermes in
your terminal and shows what the agent is doing while you wait.
The harder Hermes works, the stronger the wind, the higher the sea or the
heavier the rain. The moon sinks as the context window fills, finished todos
light up as stars, and the companion knocks when Hermes finishes.
Install
-
Install xscapes (macOS and Linux) with the one-line installer on
https://donlucasx.github.io/xscapes/, or download a binary from
https://github.com/donlucasx/xscapes/releases/latest and put it on your
PATH. This plugin needs xscapes 0.5.1 or later. -
Install the plugin:
hermes plugins install donlucasx/hermes-xscapes --enableOnce the Hermes catalog lists it,
hermes plugins install xscapesworks too. -
Run Hermes inside the scene:
xscapes hermes
Switch scenes with xscapes scape vista|shore|harbour and companions with
xscapes companion crab|cat. A running scene switches on its next frame.
If you set up xscapes earlier with xscapes install hermes, run
xscapes uninstall hermes, or every event arrives twice (the plugin logs a
warning when it finds both).
What it does on your machine
- Runs a program. On each hook it starts
xscapes hook <event> hermesand
writes the event to its stdin as JSON (the same fields Hermes's shell hooks
send). It doesn't wait for it, and never blocks, edits or approves anything. - Finds the program in
XSCAPES_BIN, then onPATH, then at
~/.local/bin/xscapes. Without it, every hook does nothing and logs one
warning. - Reads one file outside its folder: Hermes's
config.yaml, to warn about
the old shell hooks. - Keeps model calls to their numbers. After each model call it passes on
only the token usage, the model's name and the context window size, never
the response or the message, plus its own running token total for the
session. - Keeps the conversation in Hermes. From each turn it sends only the
first line of your prompt and of the reply, cut to 120 characters, never
the conversation history. - Gives xscapes a minimal environment:
PATH,HOME,LANG,LC_ALL,
TERM,XDG_CONFIG_HOME,TMPDIRand xscapes's ownXSCAPES_*settings.
Your provider keys and the rest of Hermes's environment never reach it. - Sends nothing over the network. xscapes keeps events in
~/.config/xscapes/on your machine.
xscapes sees the event name, the tool name and its arguments, that first line
of your prompt and of the reply, durations, and the session id, and uses them
to draw the scene and its activity line.
Events
on_session_start, on_session_reset, on_session_end, on_session_finalize,
pre_llm_call, post_llm_call, pre_tool_call, post_tool_call,
pre_approval_request, post_approval_response, subagent_start,
subagent_stop, on_human_input_request, on_human_input_resolved,
post_api_request.
Tests
~/.hermes/hermes-agent/venv/bin/python -m pytest tests
hermes plugins validate .
MIT. xscapes: https://github.com/donlucasx/xscapes
README from the reviewed commit 3a12d11; it updates when the author re-pins.

donlucasx