General
Quickstart
-
Install
- rivetkit — Actor framework with built-in persistence and orchestration
- @rivet-dev/agent-os-common — Standard VM software (curl, grep, git, and more)
- @rivet-dev/agent-os-pi — Pi coding agent (Claude Code, Amp, and OpenCode coming soon)
Terminal window npm install rivetkit @rivet-dev/agent-os-common @rivet-dev/agent-os-pi -
Create the Server & Client
server.ts import { agentOs } from "rivetkit/agent-os";import { setup } from "rivetkit";import common from "@rivet-dev/agent-os-common";import pi from "@rivet-dev/agent-os-pi";const vm = agentOs({options: { software: [common, pi] },});export const registry = setup({ use: { vm } });registry.start();client.ts import { createClient } from "rivetkit/client";import type { registry } from "./server";const client = createClient<typeof registry>("http://localhost:6420");const agent = client.vm.getOrCreate(["my-agent"]);// Subscribe to streaming eventsagent.on("sessionEvent", (data) => {console.log(data.event);});// Create a session and send a promptconst session = await agent.createSession("pi", {env: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY! },});await agent.sendPrompt(session.sessionId,"Write a hello world script to /home/user/hello.js",);// Read the file the agent createdconst content = await agent.readFile("/home/user/hello.js");console.log(new TextDecoder().decode(content)); -
Run
Start the server:
Terminal window npx tsx server.tsThen in a separate terminal, run the client:
Terminal window npx tsx client.ts -
Customize
Now that you have a working agent, customize it to fit your needs:
- Software — Install software packages inside the VM
- Tools — Expose your JavaScript functions to agents as CLI commands
- Filesystem — Read, write, and manage files inside the VM
agentOS Core
Section titled “agentOS Core”The quickstart above uses rivetkit/agent-os, which includes statefulness, multiplayer, and orchestration out of the box. If you only need direct VM control without those features, you can use the core package (@rivet-dev/agent-os-core) standalone.
See agentOS core documentation for reference.