rho

A coding agent you pair with.

Reads your code, runs your tests, and works the problem with you — on your machine, with your approval at every step.

Frontend-agnostic

rho is headless and speaks JSON-RPC 2.0. Any UI can drive it, and the official one is rho-egui.

rho has no opinion about what you look at.

Headless by design

The agent is a process speaking JSON-RPC 2.0 over stdin/stdout. It emits streaming notifications — message deltas, tool calls, approvals, usage — and takes prompts, approvals, and steering back. That's the whole interface.

A clean wire protocol means the UI is a choice, not a commitment:

  • rho-egui — the official desktop UI. Native, with approvals, session and branch management, and live usage tracking.
  • Your own client — the protocol is documented (rpc-mode, OpenRPC schema) and stable enough to build against.

Models are a choice too

The same philosophy applies to the model. rho talks to a local server — LM Studio, Ollama — or any hosted provider, configured per project:

[agent]
model = "qwen3-8b"

[[providers]]
preset = "lm-studio"

Swap the model the way you'd swap the frontend: by changing a line of config, not by adopting a different tool.

The payoff

Because the agent doesn't know what's watching it, nothing about the agent changes when the front end does. A better UI doesn't fork the project, and a UI experiment can't break the agent underneath.