~/dev/myrepo praetor
$ praetor status

runtime         up  2h 14m 09s  ·  rev a3f1c89
sessions        3 active · 2 idle

  session-01    claude    fix-flaky-tests       stream  
  session-02    codex     audit-deps            execute 
  session-03    claude    draft-changelog       handle  
  session-04                                       idle
  session-05                                       idle

throughput      247 tok/s · 18,432 total
tasks           3 ready · 1 blocked · 7 done
next            test::integration    lint, fetch
trust           reviewer (host) · executor (sandbox)
session-02 → execute (3 tool calls pending)

A runtime for autonomous coding agents.

Claude Code, Codex, your own agents. Dependency-aware task graph. Trust boundaries enforced by the runtime, not by polite request. Written in Rust.

Runtime

Pluggable, not bundled.

One runtime hosts many sessions, each with its own conversation, configuration, and scripting environment. The runtime itself stays agnostic about which agent runs inside.

Scheduling

Task graph, not tab manager.

The user-facing primitive is the task. Tasks declare dependencies; a workflow layer dispatches ready tasks to idle sessions automatically.

Turns

Explicit phases, deterministic recovery.

Every turn walks a named phase machine. Failures land at known boundaries. Overflow triggers compact-and-retry. Cancellation interrupts at the next phase, never mid-stream in unknown state.

Configuration

Configuration is code.

Hooks, prompt builders, tool definitions, workflow logic. All written in code, with an effects bridge that lets configuration phases re-run safely without firing real side effects.

Trust

Autonomy without ceding control.

A trusted reviewer owns commit and push authority; an untrusted executor edits and verifies inside a sandbox. Bounded by the runtime, not by polite request. This is the distinctive idea the rest of Praetor exists to support.