rotary vs other harnesses

July 26, 2026 · View on GitHub

rotary = engine only. Telekinesis (CLI/TUI) and omi desktop are product hosts on top.

rotaryCodexOpenCodet3codeCrushpi
Roleharness libraryproduct agentproduct agentmulti-provider GUI shellterminal agentcoding harness
LanguageRustRust/TSTSTSGoTS
Embeddableyeslimitedlimitedno (host)limitedpackage-level
Loop + toolsyesyesyeswraps providersyesyes
Permissionsmodes + approversandbox + approvalspermissionsvia providerhooksextensions
Sessionstree fork/mergethreads/rolloutssessionsmulti-session UXsessionssession tree
Computer-usePraefectus embedOS featurespluginsN/AN/AN/A
MCP clientyesyesyesnoyesno
Memorygraph + SQLitecontext windowsessionsvia providersessionssession tree
Skill enginebayesian + curatorskill packagesnononono
Cost trackingper-model registrynonononono
Pi compatmoved to hostnononononative
Host protocolJSON-RPC IPCapp-serverSDK/HTTPWebSocket contractsTUI-nativeRPC

Taken from Codex specifically

  1. Approvals / sandbox modespermissions.Policy + host Approver
  2. Non-interactive execrx4 exec demo surface; hosts can expose their own non-interactive command
  3. Skills packagesplugin skill loader (SKILL.md)
  4. Bounded context → compact + auto-compact
  5. Tool failure hygieneguardrails (empty turns, repeated tool failures)

Taken from t3code

  1. Typed event boundary between runtime and UI (IPC event notifications)
  2. Thin product shell — UI never owns agent loop logic
  3. Provider-agnostic host — swap models without UI rewrites

Taken from OpenCode

  1. Multi-provider model switching mid-session (set_model)
  2. Durable local sessions
  3. Extensibility (plugins / MCP)

Deferred (intentionally host or later)

  • Web/desktop multi-client pairing (t3code) — telekinesis product
  • Pi protocol compat (JSONL v3, RPC, extensions) — telekinesis host

Implemented in rotary (was deferred)

  • OS sandbox process jail via Policy.enable_os_sandbox + seatbelt/bwrap (sandbox module)