How tasdelenn/hermesos works
HermesOS is a personal assistant platform whose implemented end-to-end flow accepts a task over the Brain HTTP API, dispatches it to a connected worker, executes an allowlisted capability, and records the result for retrieval. Worker enrollment and authenticated WebSocket sessions support that flow; the shared protocol defines its messages. README-documented long-term knowledge and the Python WebSocket prototype are shown as separate capabilities, but their runtime wiring is not established by the sampled source. The graph emphasizes sampled Rust implementation and omits unsupported links.
Main entry points: client.rs Worker client · lib.rs WebSocket session · http.rs HTTP API · tasks.rs Task dispatch
Components 17
Brain services
- Brain service
brain/src/main.rs - HTTP API
brain/src/http.rs - Task dispatch
brain/src/tasks.rs - Task registry
brain/src/tasks.rs - Worker registry
brain/src/registry.rs - WebSocket session
brain/src/lib.rs - Python WS prototype
scripts/brain-server.py
Worker execution
- Worker startup
workers/agent-core/src/main.rs - Worker client
workers/agent-core/src/client.rs - Worker credentials
workers/agent-core/src/state.rs - Capability registry
workers/agent-core/src/capability.rs
Identity and protocol
- Token enrollment
brain/src/enrollment.rs - Credential store
brain/src/credentials.rs - Message protocol
protocol/src/lib.rs
Knowledge system
- Long-term knowledge
knowledge
Other components
- Task requester
- Worker device
Connections 20
- Task requester → HTTP API: submits task
- HTTP API → Task dispatch: dispatches task
- HTTP API → Task registry: lists and reads
- Task dispatch → Task registry: creates and updates
- Task dispatch → Worker registry: selects and dispatches
- Brain service → HTTP API: starts API
- Brain service → WebSocket session: accepts sessions
- WebSocket session → Token enrollment: consumes tokens
- WebSocket session → Credential store: verifies credentials
- WebSocket session → Worker registry: registers workers
- WebSocket session → Task dispatch: reports results
- Worker startup → Worker client: starts client
- Worker client → Worker credentials: loads and saves
- Worker client → WebSocket session: exchanges messages
- Worker client → Capability registry: executes tasks
- Capability registry → Worker client: returns results
- Worker registry → Worker client: dispatches task
- Worker client → Worker device: runs on
- WebSocket session → Message protocol: uses messages
- Worker client → Message protocol: uses messages