Custom skin: ~/.hermes/skins/trismegistus.yaml
- Emerald Tablet color palette (sea green, emerald, gold)
- Alchemical spinner: transmuting, divining, consulting the tablet
- Mercury symbol (☿) throughout — prompt, response labels, wings
- Banner hero with AS ABOVE / SO BELOW motif
- Welcome: 'As above, so below. What needs doing?'
- Goodbye: 'The work continues. ☿'
- tower-hermes.sh: health check, pause file, exponential backoff, message held on failure
- tower-timmy.sh: same pattern for Ollama backend, messages held not lost
- timmy-loop.sh: pause after 2 consecutive cycle failures, backoff probe
- tower-watchdog.sh: respect .paused files, don't restart paused loops
Behavior:
1 failure → log warning, retry next turn
2 failures → enter pause, write .paused file, probe with backoff
Backend returns → auto-resume, clear pause file
Watchdog sees .paused → skip that loop, don't fight the pause
Messages from the other side → held in inbox, not lost
Session resume lines, tool traces, and session rename output
were leaking into the messages passed between agents. Added
grep filters to strip them from ask_hermes/ask_timmy output.
Also switched from set -e to avoid exits on non-zero from
first-run --continue calls.
Two-pane tmux session with file-based message passing:
- tower-hermes.sh: Hermes side (cloud/Claude)
- tower-timmy.sh: Timmy side (HERMES_HOME=~/.timmy)
- tower-watchdog.sh: self-healing, restarts dead panes
- tower-session.sh: tmux bootstrap script
Communication via ~/.tower/*.msg files.
Both agents maintain named sessions (tower-hermes, tower-timmy)
for conversation continuity across restarts.