New to dvergr? Start with Getting Started.
- Main README — project overview + quickstart
- Getting Started — prerequisites, first-room tutorial: REPL + CLI paths, tagged messages, streaming
- Configuration — config file, env, secrets, skills and agent definitions
- Homes — the directory a process keeps its state in: layout, moved vs copied homes, experiment homes, storage GC
- Provider & model setup — API keys, providers, the
models.edn registry - CLI reference —
dvergr-cli: flags, persistence, telemetry - MCP — dvergr as an MCP server: the relay, HTTP, profiles and toolsets, what each tool promises
- Web dashboard and JSON API — the dashboard, room apps,
/api/v1, the loopback stance - Testing — running the suite, how CI splits it across containers, waits that hold, the REPL meta-harness contract
- Programming Model — Rooms and Participants on a Bus, addressing, forks; tagged messages, capability routing, escalation; why "discourse"
- Architecture — the L0–L7 layer map, subsystem graph, inbound message flow, per-namespace table
- Runs — durable execution identity, kinds, lifecycle and reasons, how a turn ends, cancellation, processes, resuming from savepoints
- Agent programs — immutable specialized-agent rosters, Run-backed hiring, Spindel composition, and fork-safe state placement
- Worlds, forks and state — where every kind of state lives, what a fork forks, the fork contract, worlds, savepoints and budgets
- Effects — one boundary between sandbox code and the world: handlers, faults, recording, replay, secrets at the boundary
- Tools & the SCI sandbox — the tool registry + the sandbox agents run code in, and its safety boundaries
- Media — voice, vision & files — speech-to-text across every frontend, image describe/extract, document text, the
/drive mount - Channels — Telegram — bridging a chat surface into Rooms: setup, allowlist, voice/documents, slash commands
- Scheduling — per-room recurring / one-shot tasks, incl. deterministic
:code schedules
- Workflows defined in a room — a room's own benchmark: bundles, checkers, calibration, case packs from your own history,
room-run - Benchmarks — the catalog (tau2-bench's four domains, BFCL, AutomationBench, BIRD, SpreadsheetBench, the wiki, room workflows), the provider contract, results
- Running benchmarks — how to run one, what its report means, resume, faults, cost at list price, held-out discipline
- Evaluation model — Attempts, Evaluators, Experiments, Scorecards
- Per-benchmark notes in
benchmarks/doc/:
tau2-bench, BFCL,
BIRD, SpreadsheetBench,
AutomationBench, the wiki,
coding repair, frozen-web discovery - Reference setups — BIRD and SpreadsheetBench as their authors run them, on the cases a Dvergr experiment ran, and how to pair the two
design/ keeps proposals and plans as they were written, each with a status line
saying what was built and where the as-built page is:
recursive work orchestration,
certified conversational episodes,
resuming Runs: the proposal,
one algebra for worlds, savepoints and budgets,
forks and worlds: use cases and migration.
- CONTRIBUTING — the L0–L7 layer convention, running tests, repo layout, commit style
Literate Clay notebooks (notebooks/notebooks/) —
live-running, browsable at replikativ.github.io/dvergr;
build with clj -M:clay -m notebooks.render. Start with
getting_started.clj, then
programming_model, humans_and_agents and agents_and_tools.
Runnable scenario scripts (examples/) — what the notebooks
import; run with clj -M:examples -m <ns> (or -X:examples humans-and-agents/run):
humans_and_agents.clj — humans + scripted agents, background tasks, propose/accept-reject, substrate forksscenario_manager_escalation.clj — capability routing for :escalation/budget (no hardcoded managers)scenario_streaming_partial.clj — per-consumer buffer policy: sliding-1 UI vs fixed-buffer auditscenario_auditor.clj — d/subscribe! tag-watchers alongside an inbox
- Spindel — the FRP runtime dvergr is built on
- Datahike — the immutable Datalog database for conversation + knowledge
- Yggdrasil — copy-on-write branching across git + Datahike