Pure agent harness engine. Models write; rotary gives them tools, memory, loops, permissions, sessions, and control planes.
Library hosts should disable crate defaults and name only the features they need:
cargo add rx4 --no-default-features --features builtin-tools,providersThe rx4 binary is gated on the cli feature. A bare cargo install rx4 does not produce the binary:
cargo install rx4 --features cli,ipc,providers,builtin-tools,mcpSee docs/INSTALL.md for Homebrew notes and the full feature list.
use rx4::{Agent, Scope, ToolRegistry, register_builtin_tools};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut agent = Agent::new();
let mut tools = ToolRegistry::new();
register_builtin_tools(&mut tools);
agent.set_tools(tools);
agent.set_scope(Scope::Coding);
agent.prompt("fix the failing test").await?;
Ok(())
}The engine owns the tagged edit protocol (rx4::hashline), the one-way
investigate→smol switch (rx4::prewalk, RX4_SMOL_MODEL), and AVO helpers
(rx4::avo: P_t, two-part f, commit-if-better, stall). Hosts enable them;
they should not fork the protocol. See docs/HARNESS.md.
- Documentation index
- Hosting guide
- telekinesis — CLI/TUI product host
- apollo — AI agent host
MPL-2.0