Get started

Oino

A small Rust agent core, extensions as WASM components in any language, and clients for the terminal, editors and your own apps.

Oino is a coding-agent runtime written in Rust and published as a set of crates. oino-core runs the agent loop, sessions, the built-in tools and compaction. Everything else attaches from the outside: providers, slash commands, panels, whole feature sets such as permission gating or subagents are WebAssembly components that the host loads at startup.

That split has consequences you can feel:

  • The core is small and stable. It has no provider code and no UI code, and it never depends on wasmtime itself.
  • Extensions are sandboxed components built against the WIT package oino:extension@2.0.0. Any language that can compile to wasm32-wasip2 can write one, and a crashing extension cannot take the session down.
  • Providers are components too. Anthropic, OpenAI, OpenAI-compatible gateways and Google Gemini ship as separate packages, and a provider you add yourself is registered the same way.

What you get#

The oino binary gives you an interactive terminal UI and four headless modes:

bash
oino                                 # terminal UI
oino -p "Summarize this repository"  # print: one answer, then exit
oino --mode json "List the crates"   # JSON event stream
oino --mode rpc                      # JSONL protocol on stdio
oino --mode acp                      # Agent Client Protocol (Zed, other editors)

If you are building your own frontend, embed the runtime instead: oino-core in process, oino-client for the backend contract, oino-rpc to drive a separate oino --mode rpc process. The embedding page has a working example in about 40 lines.

If you extend the agent, write a component with the Rust guest SDK (oino-extension), or build the same WIT world from Go, TypeScript, Python or any component-model toolchain. The extensions section walks through a complete extension with a tool, a command and an event hook.

Layout#

Part Crates
Runtime oino-core, with oino-agent, oino-tools, oino-session, oino-settings, oino-resources, oino-models, oino-ai
WASM host oino-wasm-host (wasmtime), oino-extension-api (contracts)
Guest SDK oino-extension, oino-extension-macros
Clients oino-cli (the oino binary), oino-tui, oino-view, oino-client, oino-rpc, oino-acp
Shared oino-ui (extension UI wire types, used by host and guests)

All 19 crates are on crates.io and documented on docs.rs; the crate map lists each one with its job.

Source: github.com/Neuron-Mr-White/Oino. License: MIT OR Apache-2.0.

The project is young. Public APIs follow semantic versioning, and known gaps are listed per area in the repository's developer docs; this site marks the ones that matter where they apply.