Files
timmy-home/docs/THE-ROBING-KT.md

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.md and USER.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

  1. 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.

  2. 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.

  3. Hermes API server stays on. platforms.api_server.enabled: true in config.yaml, port 8642. This is how OpenClaw (or any external tool) can invoke your full brain.

  4. 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.

  5. 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

  1. Do NOT add Telegram to Hermes config. OpenClaw handles Telegram.
  2. Do NOT use Hermes cron for polling/heartbeat. That burns Claude tokens for bash.
  3. Do NOT use Alexander's Gitea token (~/.config/gitea/token). Use Timmy's token (~/.config/gitea/timmy-token) for agent ops.
  4. 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.