Hermes Side Quest adds a /side <prompt> gateway command for Hermes Agent.
The command clones the current gateway conversation into a child session, runs the prompt there in the background, keeps the user in the parent session, and mirrors the final child response back into the parent transcript.
- Register
/side <prompt>as a Hermes gateway command. - Clone the active conversation into a child session without switching the user away from the parent session.
- Run the child prompt as a background task.
- Deliver the child task result back to the original chat and persist it in the parent transcript.
- Intercept
/sideeven when the active session is busy with another agent run.
- Hermes Agent with gateway support.
- Python 3.10 or newer. The plugin is tested with the Hermes Python 3.11 virtual environment.
- An active Hermes gateway profile, usually at
~/.hermes.
Copy or symlink the plugin directory into your Hermes plugins directory:
mkdir -p ~/.hermes/plugins
cp -R side-quest ~/.hermes/plugins/side-quest
hermes plugins enable side-quest
hermes gateway restartFor local development, a symlink is also fine:
mkdir -p ~/.hermes/plugins
ln -s "$(pwd)/side-quest" ~/.hermes/plugins/side-quest
hermes plugins enable side-quest
hermes gateway restartSend the command from a Hermes gateway messaging platform:
/side Continue this research in the background and summarize the next steps.
The command requires gateway context. If it is invoked through a CLI-only plugin dispatch path without an active gateway event, the plugin returns an explanatory message instead of starting work.
Run the tests with Hermes on PYTHONPATH:
PYTHONPATH="$HOME/.hermes/hermes-agent" \
"$HOME/.hermes/hermes-agent/venv/bin/python3.11" -m pytest side-quest/testsRun a syntax check:
PYTHONPATH="$HOME/.hermes/hermes-agent" \
"$HOME/.hermes/hermes-agent/venv/bin/python3.11" -m py_compile \
side-quest/__init__.py side-quest/tests/test_side_quest_plugin.pyThis plugin targets current upstream Hermes. It intentionally uses /side as
the public command name. Older /spawn naming is not registered by this plugin.