How azzurroooo/rind works
Rind is a local coding agent whose shared Python worker serves terminal, desktop, browser, and messaging interfaces. The main workflow is user input through a client and runtime protocol into a session turn; the worker builds model context, calls a configured model, executes tools, streams results, and persists session state. Teams add delegated specialist workspaces and handoffs; scripts can also run or send work to sessions. README documentation establishes the shared-worker and client boundaries; sampled source is partial, so uncertain internal call wiring is omitted.
Main entry points: turn_runner.py Turn execution · app_server.py Runtime server · session_service.py Session service · websocket.py WebSocket transport
Components 22
User interfaces
- Terminal client
frontend-cli/lib/frontend-cli-implementation.js - Desktop client
desktop/src/main/runtime.ts - Browser client
frontend-web/src/App.jsx
Runtime and sessions
- Runtime server
agent/runtime/server/app_server.py - Runtime protocol
agent/runtime/server/protocol.py - Session service
agent/runtime/server/session_service.py - Turn execution
agent/runtime/core/turn_runner.py - WebSocket transport
agent/runtime/server/websocket.py
Agent execution
- Context builder
agent/application/context/manager.py - Model provider service
agent/infrastructure/llm/provider_service.py - Model adapters
agent/infrastructure/llm - Tool processing
agent/application/tools/processor.py - Tool executor
agent/application/tools/executor.py - Built-in tools
agent/infrastructure/tools - Team delegation
agent/infrastructure/team/delegation.py
Persistent state
- Session history
agent/infrastructure/persistence/jsonl_session_store.py - Session index
agent/infrastructure/persistence/session_index_repository.py - Task records
agent/infrastructure/persistence/task_journal.py
External channels
- Message gateway
gateway/main.py - Chat channels
gateway/channels
Other components
- User or script
- Model provider
Connections 25
- User or script → Terminal client: enters prompts
- User or script → Desktop client: enters prompts
- User or script → Browser client: enters prompts
- User or script → Chat channels: sends messages
- Terminal client → Runtime server: JSONL requests
- Desktop client → Runtime server: launches worker
- Browser client → WebSocket transport: connects
- Chat channels → Message gateway: delivers messages
- Message gateway → WebSocket transport: uses worker
- Runtime server → Runtime protocol: serves requests
- WebSocket transport → Runtime protocol: transports requests
- Runtime server → Session service: manages sessions
- Session service → Session history: loads and saves
- Session service → Session index: updates index
- Turn execution → Context builder: builds context
- Context builder → Session history: reads messages
- Turn execution → Model provider service: selects model
- Model provider service → Model adapters: creates clients
- Model adapters → Model provider: model requests
- Turn execution → Tool processing: processes tool calls
- Tool processing → Tool executor: dispatches tools
- Tool executor → Built-in tools: runs tools
- Built-in tools → Team delegation: supports delegation
- Team delegation → Task records: records tasks
- Turn execution → Session history: persists turn