Skip to content

Ovo

Crates.io License

Embeddable multi-agent runtime kernel for Rust (dual-mode: dynamic spawn + journaled Rhai workflow).

Formerly published as machi.

0.9.x is pre-stability. The GitHub non-prerelease 0.9.1 is not 1.0. Breaking changes land without compatibility layers.

Embed

Production path: TurnOptions::for_host(gate) + sandboxed_host / default_toolkit(jail, backend) (canonicalizes jail) + the OS helper contract. InProcessHost::new defaults to AlwaysDeny; the embedder wires approval UI. TurnOptions::default() is AutoApprove for tests / offline TurnRuntime only.

full is not an OS sandbox. --all-features is not full. runtime is not toolkit: default cargo add ovo does not compile toolkit; it does link ovo-sandbox via TrustedExecution.

Linux Landlock: ship ovo-landlock in the same directory as the host binary, set OVO_LANDLOCK_HELPER, or put it on PATH (cargo install ovo-sandbox --features landlock --bin ovo-landlock). cargo add ovo does not install the helper.

platform_sandbox() can return Failed for a pure library dependency (missing seatbelt/landlock, or helper not resolved). It is not out-of-the-box. There is no NoSandbox fallback.

Constructors

Constructor Role
TurnOptions::for_host(gate) Production turn: ApprovalPolicy::Destructive + caller gate
TurnOptions::default() AutoApprove; not a production default
sandboxed_host(sampler, backend, jail) Production host (toolkit): sandboxed toolkit + ChildToolkit rebuild
InProcessHost::new Budget 128, AlwaysDeny; does not install an OS backend
default_toolkit(jail, backend) Canonicalize jail; sandboxed shell + workspace_shell()
trusted_toolkit(jail, TrustedExecution) Explicit opt-out of process isolation
platform_sandbox() Target/feature OS backend; can Fail
use std::sync::Arc;
use ovo::{AlwaysDeny, TurnOptions, sandboxed_host};

// `backend` is `Arc<dyn SandboxBackend>`: `SeatbeltBackend` (macOS,
// feature `seatbelt`) or `LandlockBackend::{new, with_helper}` (Linux,
// feature `landlock`). Do not treat `platform_sandbox()` as turnkey.
let host = sandboxed_host(sampler, backend, jail)?;
let opts = TurnOptions::for_host(Arc::new(AlwaysDeny)); // replace with UI gate

Features

Feature Compiles OS sandbox
default (runtime + workflow) kernel + workflow; links ovo-sandbox for TrustedExecution no
toolkit cwd-jailed fs/shell no (needs seatbelt / landlock)
sandbox policy types / SandboxBackend no
seatbelt macOS /usr/bin/sandbox-exec macOS
landlock Linux ovo-landlock helper Linux (helper must exist)
full toolkit + state + obs + openai/ollama + sandbox types no
--all-features full plus seatbelt and landlock compile-time backends; Linux still needs the helper

License

Licensed under either of:

at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project shall be dual-licensed as above, without any additional terms or conditions.


A QuantX open-source project.

QuantX

Code is law. We write both.

About

Agent behavior that compiles

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

566 stars

Watchers

68 watching

Forks

Releases

Sponsor this project

Contributors

Languages