How do-whilefor/x-loom works
X-Loom is a Linux collaborative exploration system: users manage projects and review shared exploration state in a Web workbench, while a Dispatcher schedules Docker/Kali Workers to investigate and contribute observations, decisions, and completion evidence. The Server exposes the board API and persists project state; workers use an agent loop and tools, with graph actions bridged back through the Dispatcher. The README documents these operating roles; some subsystem links are based on documented capabilities and directory structure because their source was not sampled.
Main entry points: server.go HTTP API · client.go Docker runtime · worker.go Worker runtime · main.go Command CLI
Components 24
Product entrypoints
- Command CLI
cmd/xloom/main.go - Serve command
cmd/xloom/serve.go - Dispatch command
cmd/xloom/dispatch.go - Worker command
cmd/xloom/worker.go
Project board
- HTTP API
internal/server/server.go - Board state
internal/board/state.go - SQLite store
internal/board/store.go - Evidence policy
internal/contract/contract.go
Task orchestration
- Scheduler
internal/dispatcher/scheduler.go - Board client
internal/dispatcher/client.go - Docker runtime
internal/docker/client.go
Worker execution
- Worker runtime
internal/worker/worker.go - Agent loop
internal/agent/loop.go - Anthropic provider
internal/provider/anthropic.go - Worker tools
internal/tools/tools.go - Graph protocol
internal/worker/graph_protocol.go
Web workbench
- Workbench UI
web/static/app.js - Browser API client
web/static/api.js - Graph visualization
web/static/graph-view.js - Embedded assets
web/embed.go
Other components
- Project user
- Model service
- Docker Engine
- Browser user
Connections 25
- Command CLI → Serve command: runs serve
- Command CLI → Dispatch command: runs dispatch
- Command CLI → Worker command: runs worker
- Project user → Workbench UI: manages projects
- Workbench UI → Browser API client: requests API
- Workbench UI → Graph visualization: renders graph
- Browser API client → HTTP API: HTTP requests
- Serve command → HTTP API: serves API
- HTTP API → Board state: reads and updates
- HTTP API → SQLite store: persists state
- HTTP API → Embedded assets: serves assets
- HTTP API → Evidence policy: checks evidence
- Scheduler → Board client: queries board
- Scheduler → Docker runtime: runs workers
- Board client → HTTP API: calls board API
- Docker runtime → Docker Engine: controls containers
- Docker runtime → Worker runtime: executes worker
- Worker command → Worker runtime: starts execution
- Worker runtime → Agent loop: runs agent loop
- Agent loop → Anthropic provider: sends model requests
- Anthropic provider → Model service: requests completions
- Agent loop → Worker tools: dispatches tools
- Worker runtime → Graph protocol: handles graph actions
- Docker runtime → Graph protocol: bridges graph events
- Graph protocol → HTTP API: submits graph actions