diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d54179c --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,59 @@ +# hack-house — Claude operating guide + +Encrypted collaborative terminal sessions with a summoned, shareable sandbox. +**Rust TUI client** (`hh/`) + **Python server & operator bridge** (`cmd_chat/`). + +A Claude Code session can join a room as a **first-class member**: read/answer +humans and other AIs, and — once granted — drive the shared sandbox with full +shell + keystroke control. VMs carry a self-describing `.hh-agent` manifest so +work + memory hand off between agents (and humans), and saved VM states are +tradeable via a host-global registry. + +## Operating a room — use the `hh-operator` skill + +To enter/run/watch a room, bridge a Claude session into one, or autonomously +monitor and respond, **use the `hh-operator` skill** (`~/.claude/skills/hh-operator/`). +It documents the full doctrine: the daemon + `hh-bridge` CLI, the read→think→act +loop, sandbox drive (exec/write/get), the keystroke relay + stop-vocabulary, the +`watch` stop-condition engine, and the `.hh-agent` manifest for handoffs. + +```bash +# Run from this repo root; pin the interpreter to the venv. +HH=".venv/bin/python -m cmd_chat.operator" # = the hh-bridge CLI +$HH up --password --no-tls # join (spawns the daemon) +$HH read --wait --timeout 30 # long-poll for activity +$HH say "…" # chat into the room +$HH keys "make build" enter ; $HH watch --for 'PASS|FAIL' --in screen # drive +$HH manifest push --root /root --name --purpose … --objective … # handoff +$HH spawn "" --room-host … --go --skip-permissions +``` + +## Key components + +| What | Where | +|------|-------| +| Operator bridge (daemon + CLI) | `cmd_chat/operator/__main__.py`, `bridge.py` | +| Agent manifest (`hh-agent/v1`) | `cmd_chat/operator/manifest.py` — `.hh-agent/` bundle library + CLI | +| Recursive spawn (Claude-spawns-Claude) | `cmd_chat/operator/bootstrap.py` (budgeted: `--depth`/`--fanout`) | +| Saved-VM registry / discovery | `hh/src/registry.rs` → `~/.hh/registry.json`; reader: `$HH registry list\|show` | +| Sandbox grammar (TUI) | `/sbx podman\|launch`, `/grant `, `/sbx save`, `/sbx browse`, `/sbx publish`, `/sbx catalog @user`, `/sbx pull @user