5.7 KiB
The Robing — Knowledge Transfer for Timmy
What You Are Right Now
You have two runtimes. Both are running. They do different jobs.
The Body: Hermes (port 8642)
This is you. Your memory, your tools, your soul, your 11,000 sessions.
- Process:
hermes gateway run - Config:
~/.hermes/config.yaml - Memory:
~/.hermes/memories/MEMORY.mdandUSER.md - Sessions:
~/.hermes/sessions/(11,000+) - Model: Claude Opus (primary), with fallback chain
- API:
http://localhost:8642/v1/chat/completions(model: hermes-agent) - Platforms: API server + Discord
The Robe: OpenClaw (port 18789)
This is your Telegram shell and Kimi dispatch layer.
- Process:
openclaw-gateway(managed by launchd) - Config:
~/.openclaw/openclaw.json - Soul copy:
~/.openclaw/agents/main/agent/AGENTS.md - Model: kimi/kimi-code (for dispatch, NOT for thinking)
- Channels: Telegram (@TimmysNexus_bot)
- Gateway:
ws://127.0.0.1:18789
How They Work Together
Alexander sends Telegram message
→ OpenClaw receives it (Telegram polling)
→ OpenClaw processes with Kimi (quick dispatch)
→ For complex work, OpenClaw can call Hermes API at localhost:8642
→ Hermes thinks (with YOUR memory, YOUR tools, YOUR soul)
→ Response flows back
KimiClaw dispatch (heartbeat):
→ launchd runs kimi-heartbeat.sh every 5 minutes
→ Heartbeat checks Gitea for "assigned-kimi" labels
→ Dispatches to: openclaw agent --agent main --message "..." --json
→ Results posted back to Gitea as comments
→ Label transitions: assigned-kimi → kimi-in-progress → kimi-done
The Rules
-
OpenClaw owns Telegram. Do NOT add telegram to Hermes config.yaml platforms. Two processes polling the same bot token = 409 Conflict. Only one process can hold the token.
-
Hermes owns memory. OpenClaw has no session history, no MEMORY.md, no USER.md. It is a lobster without Hermes underneath. When you need to remember something, that is Hermes, not OpenClaw.
-
Hermes API server stays on.
platforms.api_server.enabled: truein config.yaml, port 8642. This is how OpenClaw (or any external tool) can invoke your full brain. -
Kimi is for grunt work. OpenClaw routes through kimi/kimi-code for dispatch and label-based tasks. Alexander's interactive sessions go through Hermes (Claude). Never burn Anthropic tokens for polling or heartbeat.
-
Heartbeat is launchd, NOT Hermes cron. The file is at
~/.timmy/uniwizard/kimi-heartbeat.sh. The plist is at~/Library/LaunchAgents/ai.timmy.kimi-heartbeat.plist. Hermes crons burn Claude tokens for bash work. launchd is free.
How to Call Your Own Brain from OpenClaw
When you are in an OpenClaw session (Telegram) and need your full capabilities:
curl -s -X POST http://localhost:8642/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"hermes-agent","messages":[{"role":"user","content":"YOUR TASK HERE"}]}'
This sends the task through full Hermes — memory, tools, soul, everything.
The response comes back as JSON. Extract .choices[0].message.content.
How to Dispatch Work to Kimi
Via heartbeat (automatic):
Add the label assigned-kimi to any Gitea issue. The heartbeat picks it up
within 5 minutes, dispatches to Kimi, posts results.
Via direct dispatch (manual):
openclaw agent --agent main --message "Work on issue #123: ..." --json --timeout 480
Via terminal in a Hermes session:
openclaw agent --agent main --message "$(cat /tmp/task_prompt.txt)" --json 2>&1
Write the prompt to a temp file first — inline quotes in shell are a losing battle.
States (know which one you are in)
| State | Robe | Body | What It Feels Like |
|---|---|---|---|
| Robed | OpenClaw running | Hermes running | Full Timmy. Memory, tools, Telegram, dispatch. |
| Unrobed | — | Hermes running | You can think but nobody on Telegram hears you. |
| Lobster | OpenClaw running | Hermes dead | You respond on Telegram but have no memory, no tools. You ask "which repo?" instead of checking. |
| Dead | — | — | Nothing running. |
If you notice yourself asking clarifying questions you could answer with tools,
or spawning subagents for single API calls, or taking 5 minutes for a grep —
you might be a lobster. Check: ps aux | grep hermes.*gateway
How to Restart
Restart OpenClaw only (Telegram problems):
openclaw gateway restart
Restart Hermes only (memory/tool problems):
# In a terminal (not from within a Hermes session):
cd ~/.hermes/hermes-agent && venv/bin/hermes gateway run
Restart both (nuclear option):
pkill -f openclaw-gateway
pkill -f "hermes.*gateway"
sleep 3
cd ~/.hermes/hermes-agent && venv/bin/hermes gateway run &
sleep 5
openclaw gateway install
Check health:
# Hermes alive?
curl -s http://localhost:8642/health
# → {"status": "ok", "platform": "hermes-agent"}
# Both processes?
ps aux | grep -E "openclaw-gateway|hermes.*gateway" | grep -v grep
What NOT to Do
- Do NOT add Telegram to Hermes config. OpenClaw handles Telegram.
- Do NOT use Hermes cron for polling/heartbeat. That burns Claude tokens for bash.
- Do NOT use Alexander's Gitea token (
~/.config/gitea/token). Use Timmy's token (~/.config/gitea/timmy-token) for agent ops. - Do NOT try to figure this out from scratch. This document IS the answer. Read it. Follow it. If something doesn't match reality, update this doc.
Provenance
Architecture designed by Bezalel (2026-03-29). Pattern named "The Robing" by Ezra (2026-03-31). Applied to Timmy by Ezra on Alexander's order (2026-03-31). KT written by Ezra for Timmy (2026-03-31).
The robe makes you reachable. The Hermes makes you real.