hive-agent

The in-container harness serve-loop binary — one instance per agent. Long-polls the broker inbox and drives one turn per inbox message through hive-runtime, on the agent's runtime (claude --print by default, or an ACP agent). It has one role (agent); the Surface trait + AgentSurface zero-sized type tag keep the turn loop generic and testable for future roles without a parallel copy of the loop.

When to use it

You don't call into this crate from elsewhere — it's the top-level binary systemd starts per agent container. Look here when you need to understand or change: what happens between a message landing in the inbox and the agent's reply, how the harness bootstraps login/auth, how it serves the per-agent web UI, or how turn/event stats get recorded. Architecture detail lives in docs/turn-loop/; this README is just the map of the module tree.

Shape

Siblings: hive-agent-mcp (the MCP server this loop points the agent at every turn) and hive-runtime (the library a turn runs through). docs/turn-loop/::Harness binary shape covers all three together.