Quickstart
Live sandbox — connecting…
The terminal above is a live sandbox running real node on workerd’s V8:
a prime sieve, then a 256-color banner, both computed in the session. It
connects to a real session — the same thing Launch creates at
nimbus-os.dev. The
/s/<id>/ URL is the session: bookmark it, and the files persist between
visits. An idle session costs nothing. Type your own commands once the
demo finishes — npm install, git clone, python all work.
Try this first:
node --version # workerd nodejs_compat, the same V8 as Workersgit clone https://github.com/AshishKumar4/Markflowcd Markflow && npm install # real npm, live registrynpm run dev # vite with HMR, previewed in the iframeThe SDK can create one sandbox per task. Create to first command is ~0.6 s median (benchmarks).
import { Nimbus } from '@nimbus-sh/sdk';
export default { async fetch(_request: Request, env: Env) { const box = Nimbus.fromEnv(env).sandbox('job-123', { tenant: 'acme', subject: 'agent' }); return Response.json(await box.exec('python -c "print(2 + 2)"')); },};import { Nimbus, issueNimbusToken } from '@nimbus-sh/sdk';
const token = await issueNimbusToken(env, { tn: 'acme', sub: 'agent', scopes: ['sandbox:use'], sid: 'job-123',});const box = Nimbus.connect({ endpoint: 'https://my-nimbus.workers.dev', token }).sandbox('job-123');await box.ready();To run Nimbus in your own Cloudflare account:
npx create-nimbus-app my-nimbus-worker && cd my-nimbus-worker && npm installCLOUDFLARE_ACCOUNT_ID=<account-id> npx @nimbus-sh/cli setup cloudflare --name my-nimbus-workernpx wrangler secret put JWT_SECRETnpx wrangler deploysetup cloudflare creates the R2 buckets and seeds the Python, Ruby, and clang
runtimes. Embed Nimbus in a Worker has the details. The
hosted demo is only for evaluation. It has no SLA, may be reset, and is not a
place for secrets.