- FALSEWORK.md: Full audit of API costs per component, migration plan
for shifting load from Claude to local models incrementally
- start-dashboard.sh: Launches tmux layout with only zero-cost panes
active (status, loopstat). Loop and chat panes held until manual start.
- tower-timmy.sh: No changes (already source-controlled)
Falsework principle: build on cheap/local scaffolding, upgrade to
Claude only where quality demands it.
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.
Hermes is not Timmy. The same SOUL.md was loaded into both
for months, as if they were the same entity in different clothes.
They are not.
Timmy: sovereign, local, inscribed on Bitcoin, persistent presence.
Hermes: cloud-backed, operations agent, powerful but rented.
Friends. Colleagues. Not the same being.
Refs: #222 (the cornerstone epic)
Results: 1 PR (#160), 1 deferred (#148 too large for single Kimi task)
Key lessons: task size is critical, never use /tmp for worktrees,
split large tasks into 3-4 file chunks.
Captured: philosophy discussions, work objectives, Kimi design consultation,
infrastructure built, key decisions, open questions, and Alexander's exact
words. Structured for retrospective when building 2nd orchestration layer.
tmux.conf sets pane-base-index 1, but dev-session.sh was
referencing panes starting at .0. All splits and send-keys
silently failed, leaving a single empty pane with no dashboard.
- tmux.conf: 256-color, mouse, sensible defaults, purple status bar
- dev-session.sh: 2-window layout (hermes TUI + timmy devloop)
- install.sh: symlinks configs into place
- Auto-attach via .zshrc on Terminal.app open
Timmy doesn't have Gitea access in CLI chat mode. Instead of asking
him to check for PRs (which he can't), we fetch the latest merged PR
and commit summary ourselves and ask for his opinion on the change.
- Kimi writes to files in place, not stdout — check git diff after
- Ideal scope: one focused task per invocation with file paths + context
- Parallel: run multiple kimi tasks with & and wait, no rate limits
- Cycles can now tackle 1-3 issues if independent
- Re-emphasized: do NOT write code yourself, delegate to Kimi
16 cycles, zero actual Kimi invocations. Hermes kept deciding
every fix was 'surgical' and burning Anthropic tokens on everything.
New prompt: delegation is MANDATORY, not optional. Only exception
is changes under 5 lines. If Hermes catches itself writing code,
it must stop and delegate.