RadarTopicsBuildersWeeklyReads
Open Source Radar
rivet-dev/

agentos

GitHubWebsite

agentOS runs agents inside your process using WebAssembly and V8 isolates, exposing bindings and a registry to run various built-in agents with persistence and orchestration features. It emphasizes in-process execution, granular permissions, and optional sandbox integrations.

4.3kstars
217forks
96issues
Apache-2.0license
2024since
Star historydaily snapshots by VibeCrowd

Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).

Alternatives & relatedmatched by topic overlap
Reviewgenerated from repository data · Aug 5, 2026

What it is

agentOS is a library that gives agents an operating system as a library. It runs inside your existing backend without sandboxes or external VMs, powered by WebAssembly and V8 isolates.

How it works

Agents run in in-process VMs (Rivet Actors) with a trusted sidecar kernel managing virtual filesystem, processes, and networking. JavaScript guest code runs on native V8 with JIT, while compiled tools run as WebAssembly. It supports bindings to expose CLI-style functions inside the VM, and it includes a registry for agents and packages.

Getting started

npm install @rivet-dev/agentos @agentos-software/pi

Create the server:

// server.ts
import { agentOS, setup } from "@rivet-dev/agentos";
import pi from "@agentos-software/pi";

const vm = agentOS({
  software: [pi],
});

export const registry = setup({ use: { vm } });
registry.start();

Create the client — any public frontend or another backend:

// client.ts
import { createClient } from "@rivet-dev/agentos/client";
import type { registry } from "./server";

const client = createClient<typeof registry>({
  endpoint: "http://localhost:6420",
});
const handle = client.vm.getOrCreate("my-agent");

// Subscribe to streaming events...
const conn = handle.connect();
conn.on("sessionEvent", (event) => {
  console.log(event);
});

// Open a durable session and send a prompt.
await handle.openSession({
  agent: "pi",
  env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },
});
await handle.prompt({
  content: [
    { type: "text", text: "Write a hello world script to /workspace/hello.js" },
  ],
});

// Read the file the agent created
const content = await handle.readFile("/workspace/hello.js");
console.log(new TextDecoder().decode(content));

Run both:

# Terminal 1: start the server
npx tsx server.ts

# Terminal 2: run the client
npx tsx client.ts

agentOS can run Node.js and shell scripts inside the VM:

// Node.js
await handle.writeFile("/hello.mjs", 'import fs from "fs"; fs.writeFileSync("/out.txt", "hi")');
await handle.exec("node /hello.mjs");

// Bash
const result = await handle.exec("cat /out.txt");
console.log(result.stdout); // "hi"

@rivet-dev/agentos runs each VM as a Rivet Actor with built-in persistence, sleep/wake, multiplayer, preview URLs, and orchestration. For direct in-process VM control without the actor runtime, use @rivet-dev/agentos-core standalone: AgentOs.create() boots a VM and returns a handle you call directly.

See the Quickstart guide for the full walkthrough. agentOS is in preview and the API is subject to change.

Traction

All benchmarks and claims are in the README; see documented sections for performance benchmarks and comparisons.

License

Apache-2.0

SharePost on XLinkedIn
All trending reposRevenue-verified startups →