Skip to main content
Dynamic Apps

Deploy the apps your agents build.

Every app runs as an isolated, durable instance. 22 MB of memory while serving, zero while idle. Deploy on any cloud.

Start the quickstart

Generated files

JSserver.js
api.ts
App.tsx

Deploy app

deployApp()

apps.acme.dev/board
Your app3 tasks

To do

Doing

Done

Generate, deploy, route.

An agent generates the files. One call builds and releases them. Your Hono server routes every request to the app.

import { deployApp } from "@rivet-dev/agentos-apps";
 
// An agent, upload endpoint, or any other part of the system can call
// deployApp() with the files it generated.
await deployApp({
	appId: "hello-world",
	files: {
		"package.json": JSON.stringify({
			name: "hello-world-app",
			version: "0.0.0",
			private: true,
			type: "module",
			main: "src/index.ts",
			dependencies: {
				hono: "^4.12.9",
			},
		}),
		"src/index.ts": `
import { Hono } from "hono";
 
const app = new Hono();
 
// Serve the application's frontend.
app.get("/", (c) => c.html("<h1>Hello from agentOS Apps</h1>"));
 
// Serve a REST API request from the same application.
app.get("/api/hello", (c) => c.json({ message: "Hello from agentOS Apps" }));
 
export default app;
`,
	},
});

An app per user

Address each app by ID. Every user, tenant, or session gets a deployment of its own.

Isolated by default

Each app runs in its own agentOS VM with its own state and SQLite data. Tenants share no filesystem, memory, or crash fate.

Scales to zero

A running app takes 22 MB of memory. An idle one takes none.

Wakes on demand

The control plane routes the next request to a prewarmed agentOS VM, state intact.

Your server, your rules.

Requests reach your Hono server first, so your routing, middleware, and auth apply. The control plane routes each request to a prewarmed agentOS VM serving the app.

Read about routing, authentication, and deploying apps.

Broken builds never ship.

A failed build returns TypeScript diagnostics the agent uses to repair the files and deploy again. The active release keeps serving the whole time.

DeploysActive releaseGenerateBuilddiagnosticsRepairBuildReleasedprevious release keeps servingnew release

Read about deploying apps or view the AI App Builder example.

See inside every app.

Deployed apps run as Rivet Actors, so the dashboard shows their data, jobs, events, and actions live.

SQLite viewer

Browse and query each app's SQLite data in realtime, across every deployment.

Workflow state

Inspect the progress, steps, and retries of jobs running inside an app.

Event monitoring

Follow actions, connection events, and application logs while an app serves traffic.

REPL

Debug a live app by calling its actions and subscribing to its events from the dashboard.

Rivet dashboard inspecting a deployed app, showing Actor state, events, and callable actions

Develop locally. Deploy your way.

Dynamic Apps is a library, not a hosted platform. Run it anywhere and customize the server, routing, authentication, and deployment flow.

Local

Install Dynamic Apps and run it locally while you build.

Open the quickstart

Rivet Cloud

Deploy Dynamic Apps on Rivet Cloud with managed infrastructure and persisted Actor data.

Open the dashboard

Self-Host

Run the open-source Rivet control plane as a Rust binary or container on your infrastructure.

Read self-hosting docs

Frequently asked questions

An app for every user.

Deploy isolated, durable instances for the software your agents generate. They scale to zero and wake on demand.