Skip to content

Repository files navigation

OAR - programming interface for all agent harnesses

OAR logo

OAR (Open Agent Runtime) is a provider-independent programming interface for coding-agent runtimes: a solid foundation for building agent workspaces and other applications.

Delete harness logic and focus on outcomes and UX.

Supported runtimes

Claude Code, Codex, Grok Build, Kimi Code, Pi

Docs

Read To answer
docs/design/ Why oar exists and which design problems it treats as load-bearing
docs/spec/ The concrete record-stream contract (record shapes, attribution, cursor)
docs/development.md Working in this repo: validate changes, add a runtime, conventions
packages/cli/ The oar executable, published separately as @botiverse/oar-cli

The integrated agent-facing model and its implementation plan are docs/design/system.md and docs/design/roadmap.md.

Library

import { promptAndWait, runtimes } from "@botiverse/oar";

const grok = runtimes.require("grok");
const installation = await grok.installation?.();

if (installation?.kind === "available") {
  const session = await grok.session(installation, { cwd: process.cwd() });
  session.subscribe((record) => {
    if (record.kind === "event") {
      for (const view of record.body.views) {
        if (view.kind === "text_delta") process.stdout.write(view.text);
      }
    }
  });
  const run = await promptAndWait(session, "Inspect this repository");
  console.log(run.kind === "ended" ? run.outcome : run.reason);
  await session.dispose();
}

CLI

npx @botiverse/oar-cli list
oar run claude "What does this repo do?" --record run.jsonl

ESM-only, requires Node.js 24+, Apache-2.0.

About

programming interface for all agent harnesses

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages