crownest.dev · cloud sandboxes ]

Cloud sandboxes for coding agents.

Create isolated sandboxes, run commands, stream logs, expose authenticated previews, and persist artifacts. One clean SDK, CLI, and dashboard.

Start buildingRead the docs
sandboxes running

Python and Node, out of the box.

Install the rest in seconds. pip, npm, and uv come ready in every sandbox.

see it run ]

Watch a sandbox do the work.

Create it from a template, run a command and stream the output, then promote the artifacts and previews worth saving. Each demo below is live, on a loop.

sandboxes
  • Run a data pipeline$ python3 etl.py
  • Execute agent-written code$ node agent.js
  • Render a PDF report$ python3 report.py
  • Run the test suite$ pytest -q
  • Drive a headless browser$ python3 scrape.py

One sandbox, anything your code runs

Spin up an isolated Linux box from the python-node template in seconds, then install whatever your workload needs.

commands

Run it, stream the output

Execute any process and follow its stdout live. Exit codes and duration are recorded for every command.

previews · artifacts
report.html318 KB

Keep what matters

Promote the outputs you choose into durable, indexed artifacts, and expose any port as an authenticated preview URL.

how it works ]

Create. Run. Collect. Kill.

01

Create

Spin up a sandbox from a template. It gets a workspace, a TTL, and nothing else.

02

Run

Execute commands, stream stdout, declare which outputs to collect on success.

03

Collect

Declared files become artifacts: durable, indexed, and readable after teardown.

04

Kill

Tear it down (or let the TTL). Logs and artifacts stay; the tombstone is audited.

quickstart.ts
import { createCrowNestClient } from "@crownest/sdk";

const client = createCrowNestClient();
// reads CROWNEST_API_KEY from the environment

// 01 - create
const sandbox = await client.sandboxes.create({ template: "python-node" });

// 02 - run
const result = await sandbox.commands.run("python3 main.py", {
  collect: [{ path: "/workspace/report.html", name: "report.html" }],
  onStdout: (chunk) => process.stdout.write(chunk),
});

// 03 - collect
const artifacts = await sandbox.artifacts.list();

// 04 - kill
await sandbox.kill();

control plane ]

Untrusted code, without giving up control.

Isolated runtimes

Every sandbox is its own boxed Linux environment. Nothing shared, nothing leaked.

Scoped API keys

Singular resource:action scopes, restrictable to a project. Keys can't mint keys.

Quotas & budgets

compute_unit_seconds metered per second, with hard caps per bucket.

Audit events

Every create, run, revoke, and kill is recorded, tombstones included.

pricing ]

Per-second metering. No idle surprises.

$0.12 per sandbox-hour on the standard runtime, metered to the second so you only pay while code is running.

Free
$0one-time $10 credit
  • 2 concurrent sandboxes
  • 60 min max sandbox lifetime
  • Authenticated previews
  • Community support
Hobbycore tier
$20/mo · includes $25 usage
  • Higher concurrency
  • Full SDK, CLI & REST API
  • Artifact storage included
  • Per-second metered overage
Pro
from $100/mo · volume credit
  • Highest concurrency
  • Longer-lived sandboxes
  • Project-restricted API keys
  • Priority support

ship it ]

Real compute for code you can’t trust.

Isolated by default, metered per second, with hard caps that stop runaway bills. Go from pnpm add @crownest/sdk to a first run in minutes.

$0.12per sandbox-hour, standard runtime
1sbilling granularity, not per hour
$10free credit, no card to start
60mmax free-tier sandbox lifetime