How geoffjay/tower works
Tower is a server-centered control and visibility system for coding-agent herds. Operators use the CLI/client to reach server APIs for agent sessions and task assignment; the server coordinates agent processes through a harness and persists operational state and events in SQLite. The repository also includes scheduling, messaging, inventory, streaming, MCP, and alternate user interfaces. The principal runtime wiring is only partly evidenced by the sampled sources, so uncertain route-registration and subsystem links are omitted.
Main entry points: storage.rs SQLite and events · sessions.rs Agent sessions · lib.rs Harness driver · tasks.rs Task queue
Components 22
Operator interfaces
- Tower CLI
crates/tower-server/src/cli.rs - HTTP client
crates/tower-client/src/lib.rs - Terminal UI
crates/tower-tui/src/lib.rs - Web UI
crates/tower-web/src/lib.rs
Server surfaces
- HTTP server
crates/tower-server/src/http.rs - API auth
crates/tower-server/src/auth.rs - Agent API
crates/tower-server/src/agents_api.rs - Event stream
crates/tower-server/src/sse.rs - MCP interface
crates/tower-server/src/mcp.rs
Agent operations
- Task queue
crates/tower-server/src/tasks.rs - Agent sessions
crates/tower-server/src/sessions.rs - Agent inventory
crates/tower-server/src/inventory.rs - Schedules
crates/tower-server/src/schedules.rs - Agent messaging
crates/tower-server/src/messaging.rs - Agent dialog
crates/tower-server/src/dialog.rs - Event pump
crates/tower-server/src/pump.rs
Domain and persistence
- Shared domain
crates/tower-core/src/lib.rs - SQLite and events
crates/tower-server/src/storage.rs
Harness integration
- Harness driver
crates/tower-driver/src/lib.rs - Herdr driver
crates/tower-driver/src/herdr.rs
Other components
- Operator
- Herdr panes
Connections 14
- Operator → Tower CLI: runs commands
- Tower CLI → HTTP client: sends requests
- HTTP client → HTTP server: HTTP requests
- HTTP server → API auth: authenticates
- Task queue → Agent messaging: delivers prompts
- Agent sessions → Agent inventory: reconciles agents
- Agent sessions → Harness driver: controls agents
- Harness driver → Herdr driver: implements harness
- Herdr driver → Herdr panes: runs CLI commands
- Agent sessions → SQLite and events: writes session data
- Task queue → SQLite and events: writes task data
- SQLite and events → Shared domain: stores domain events
- Event pump → Harness driver: consumes harness events
- Event stream → SQLite and events: replays events