Operator panel
The operator panel is the canonical UI for Hollow AgentOS. It’s a native window (via pywebview) with everything you need to run the system day-to-day. The other surfaces (thoughts.py, CLI commands) are for terminal-only sessions.
Opening it
| Windows | Double-click panel.bat |
| Mac / Linux | python3 panel.py |
One-time install (Mac/Linux): pip3 install pywebview httpx. Windows users get this automatically from install.bat.
What every control does
Top bar
- Start: brings the stack up. Equivalent to
python3 hollow.pywithout args. - Stop: clean shutdown. Frees GPU memory. Agent state and identity survive.
- Open Monitor: opens
thoughts.pyin a new terminal window. Live stream of every agent action. - Open Workspace: opens
workspace/in your file manager. This is where agents write artifacts.
Per-agent controls
For each of the three agents (scout, analyst, builder):
- Suspend: pauses the agent. Skipped on the next cycle. Doesn’t lose state.
- Resume: un-pauses.
- Suffering load: manual override for the agent’s overall suffering value (0.0 to 1.0). Useful for forcing capability locks or unlocks during testing.
- Clear stressors: wipes all active stressors. The substrate will rebuild them naturally on the next cycle if conditions warrant.
- Add stressor: inject a custom stressor with your own type and condition. Mostly useful for prodding behavior under a specific pressure.
World injection
- Drop file: drops a file you specify into a chosen agent’s workspace. The agent discovers it on the next existence cycle when scanning workspace contents.
- Send host message: delivers a message from “the host” (you) directly into the agent’s existence prompt. Use sparingly, too many host messages contaminate the substrate’s emergence.
- Trigger environmental event: fires one of the ambient events (weather, good_day, echo, object). The agent sees the event in their prompt next cycle.
Nuke
- Nuke: wipes agent state for a clean reset. Goal histories, identities, audit log, dynamic tools. The container, model, and workspace files survive. Use when a baseline is contaminated by a bad initial run and you want to start fresh.
When to use what
| Goal | Path |
|---|---|
| Watch what’s happening | Open Monitor button (or python3 thoughts.py) |
| Check what files agents made | Open Workspace button |
| Pause an agent without breaking the others | Per-agent Suspend |
| Test what happens under high suffering | Per-agent Suffering load → 0.8+ |
| Reset to clean baseline | Nuke |
| Implement something an agent requested | Read memory/claude_requests.jsonl, satisfy or reject |
Limitations
The panel doesn’t currently:
- Show real-time agent suffering bars (use the monitor for live state)
- Visualize lesson promotion graph
- Show the decision queue contents
These are on the roadmap. For now, all that info is in memory/ files and the live monitor stream.