mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 06:04:43 +00:00
chore: add boxlite
This commit is contained in:
parent
a3fe0cc764
commit
c3a95c3611
20 changed files with 824 additions and 1 deletions
67
docs/deploy/boxlite.mdx
Normal file
67
docs/deploy/boxlite.mdx
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
---
|
||||
title: "BoxLite"
|
||||
description: "Run Sandbox Agent inside a BoxLite micro-VM."
|
||||
---
|
||||
|
||||
BoxLite is a local-first micro-VM sandbox — no cloud account needed.
|
||||
See [BoxLite docs](https://docs.boxlite.ai) for platform requirements (KVM on Linux, Apple Silicon on macOS).
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- `@boxlite-ai/boxlite` installed (requires KVM or Apple Hypervisor)
|
||||
- Docker (to build the base image)
|
||||
- `ANTHROPIC_API_KEY` or `OPENAI_API_KEY`
|
||||
|
||||
## Base image
|
||||
|
||||
Build a Docker image with Sandbox Agent pre-installed, then export it as an OCI layout
|
||||
that BoxLite can load directly (BoxLite has its own image store separate from Docker):
|
||||
|
||||
```dockerfile
|
||||
FROM node:22-bookworm-slim
|
||||
RUN apt-get update && apt-get install -y curl ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||
RUN curl -fsSL https://releases.rivet.dev/sandbox-agent/0.2.x/install.sh | sh
|
||||
RUN sandbox-agent install-agent claude
|
||||
RUN sandbox-agent install-agent codex
|
||||
```
|
||||
|
||||
```bash
|
||||
docker build -t sandbox-agent-boxlite .
|
||||
mkdir -p oci-image
|
||||
docker save sandbox-agent-boxlite | tar -xf - -C oci-image
|
||||
```
|
||||
|
||||
## TypeScript example
|
||||
|
||||
```typescript
|
||||
import { SimpleBox } from "@boxlite-ai/boxlite";
|
||||
import { SandboxAgent } from "sandbox-agent";
|
||||
|
||||
const env: Record<string, string> = {};
|
||||
if (process.env.ANTHROPIC_API_KEY) env.ANTHROPIC_API_KEY = process.env.ANTHROPIC_API_KEY;
|
||||
if (process.env.OPENAI_API_KEY) env.OPENAI_API_KEY = process.env.OPENAI_API_KEY;
|
||||
|
||||
const box = new SimpleBox({
|
||||
rootfsPath: "./oci-image",
|
||||
env,
|
||||
ports: [{ hostPort: 3000, guestPort: 3000 }],
|
||||
diskSizeGb: 4,
|
||||
});
|
||||
|
||||
await box.exec("sh", "-c",
|
||||
"nohup sandbox-agent server --no-token --host 0.0.0.0 --port 3000 >/tmp/sandbox-agent.log 2>&1 &"
|
||||
);
|
||||
|
||||
const baseUrl = "http://localhost:3000";
|
||||
const sdk = await SandboxAgent.connect({ baseUrl });
|
||||
|
||||
const session = await sdk.createSession({ agent: "claude" });
|
||||
const off = session.onEvent((event) => {
|
||||
console.log(event.sender, event.payload);
|
||||
});
|
||||
|
||||
await session.prompt([{ type: "text", text: "Summarize this repository" }]);
|
||||
off();
|
||||
|
||||
await box.stop();
|
||||
```
|
||||
Loading…
Add table
Add a link
Reference in a new issue