Roder
A Rust-native, extension-first harness for coding agents, research systems, reinforcement-learning environments, and AI-native developer tools.
$ cargo build --workspace
$ cargo test -p roder-cli
$ cargo run -p roder-cli
$ cargo run -p roder-cli -- app-server What Roder is
Roder is the harness layer underneath coding-agent products. It owns the boring, high-stakes parts of an agent runtime: model orchestration, tool execution, policy, capability boundaries, context assembly, session persistence, checkpointing, event streaming, and replay.
The project lives in ~/w/gode, but the Rust workspace has been refounded
around roder-* crates. New work belongs in the Rust crates; the legacy Go
implementation remains in the repository as a behavioral reference during the rewrite.
Explore
Typed runtime
A Rust core that owns turn lifecycle, cancellation, events, tools, policy, and replay invariants.
Native extensions
Install inference engines, session stores, memory, tools, policy contributors, event sinks, and UI surfaces through one registry.
Provider neutral
OpenAI Responses, Anthropic, Gemini, OpenRouter/Grok Build, Cursor AgentService, chat-completions-style engines, and mock providers map into canonical Roder types.
Dynamic workflows
Approval-gated scripts plan phases, spawn child agents, checkpoint progress, and report results through the same app-server protocol.
Graph-safe Zero edits
A first-party Zerolang provider makes ProgramGraph inspection and checked graph edits available to headless coding distributions.
App-server first
The TUI, desktop clients, automation, and planned remote agent nodes speak to the same control plane.
Capability scoped
Tool execution is routed through policy modes, explicit tool specs, approval events, scoped runtime handles, and deadline-aware command limits.
Eval scoreboard
Harbor and Terminal-Bench runs show Roder improving over time with full-suite scores, targeted reruns, and structured artifacts.
Core bet
Agent systems should not keep rebuilding the same scaffolding around every new model API. Roder makes conversations, turns, tool calls, inference events, file changes, policy decisions, sessions, and checkpoints canonical Rust concepts. Extensions translate into that model; dynamic workflows and domain tools such as Zerolang build on it without taking over the runtime invariants.