What you can build
Lelantos gives AI agents real compute: isolated Firecracker microVMs, a browser engine with anti-detection, and per-second billing. Three concrete scenarios below.
Code interpreter for LLM agents
Give Claude, GPT-4o, or any model a real Python runtime. The agent generates a script; Lelantos runs it in a Firecracker microVM and returns the real exit code and stdout. No shell injection, no shared kernel, sandbox gone in milliseconds when the task finishes.
Scenario
An agent tasked with revenue analysis asks Claude to write a data script, runs it against a CSV on the sandbox filesystem, and returns structured JSON results to the calling application, all inside a VM that never touches the host filesystem.
314 ms
cold-start p50 (EU)
$0.082/hr
2 vCPU / 512 MB
import { createLelantos } from '@lelantos-ai/sdk'import Anthropic from '@anthropic-ai/sdk'const lel = createLelantos({ apiKey: process.env.LELANTOS_API_KEY, domain: 'lelantos.ai',})const claude = new Anthropic()// Provision a code-interpreter sandbox (EU, Firecracker microVM)const sbx = await lel.compute.create('code-interpreter')// Ask Claude to write + run a data analysis scriptconst msg = await claude.messages.create({ model: 'claude-opus-4-5', max_tokens: 1024, messages: [{ role: 'user', content: 'Write Python to load sales.csv, compute monthly revenue, ' + 'and print the top-3 months as JSON.', }],})const script = msg.content[0].type === 'text' ? msg.content[0].text : ''// Execute -- real exit codes, real stdout, no shell injectionconst { stdout, exitCode } = await sbx.runCommand(script, { cwd: '/home/user' })console.log('exit', exitCode)console.log(stdout)await sbx.destroy()Click "Run" to see example output...
Anti-detection browser, EU-native
Every browser sandbox runs a dedicated Camoufox instance (Firefox with randomised fingerprints) or Chromium inside a Firecracker microVM. Connect via Playwright over CDP or use the lightweight NDJSON RPC path. No shared pools, no cross-session bleed.
Camoufox engine
Firefox with randomised fingerprints built in. Evades bot detection by default.
Isolated per session
Each sandbox is its own microVM. No cross-session cookie or state leakage.
242 ms RPC path
NDJSON /rpc: warm connect + first command in 242 ms (vs 572 ms CDP bridge).
EU data residency
All browser sessions run on bare metal in Germany. Data never crosses jurisdictions.
import { createLelantos } from '@lelantos-ai/sdk'const lel = createLelantos({ apiKey: process.env.LELANTOS_API_KEY, domain: 'lelantos.ai',})// Camoufox anti-detection browser -- EU-native, no Browserbase overheadconst { browser, artifacts, close } = await lel.browser.createBrowser({ engine: 'firefox', // camoufox under the hood: randomised fingerprints})const [page] = await (browser as any).contexts()[0].pages()await page.goto('https://example.com/checkout')await page.fill('#email', 'agent@example.com')await page.click('button[type=submit]')// Persist screenshot to server-side artifact storeconst shot = await artifacts.screenshot({ fullPage: true })console.log('artifact id', shot.artifactID)await close()Browser cold-start (EU)
Warm steady-state: Browserbase wins (~846 ms vs ~1651 ms). Cold boot: Lelantos is approx 2.1x faster. Benchmark source: cross-provider-eu-2026-06-17.
Lelantos-only
- +Custom compute per session (resize CPU/RAM)
- +BYO proxy with sticky-session support
- +NDJSON /rpc (no Playwright dep needed)
- +Artifact store (screenshots, PDFs, HAR)
Parallel ephemeral jobs, per-second billing
Fan out to 50 or 500 sandboxes in a single Promise.all. Each runs an isolated Python or Node.js environment for test suites, CSV transforms, reward function evals, or batch inference. Pay per second, discard immediately.
Create
lel.compute.create() -- 314 ms p50 cold-start
Upload
sbx.filesystem.write() -- inject data files
Execute
sbx.runCommand() -- real exit code + stdout
Destroy
sbx.destroy() -- billing stops immediately
import { createLelantos } from '@lelantos-ai/sdk'const lel = createLelantos({ apiKey: process.env.LELANTOS_API_KEY, domain: 'lelantos.ai',})// One sandbox per CI job -- parallel, isolated, per-second billingasync function runJob(csvUrl: string) { const sbx = await lel.compute.create('python') // Upload CSV directly into sandbox filesystem await sbx.filesystem.write('/tmp/data.csv', await fetch(csvUrl).then(r => r.text()), ) // Run analysis const { stdout, exitCode } = await sbx.runCommand( 'python3 /tmp/data.csv | python3 -c "' + 'import sys,csv,json; rows=list(csv.DictReader(sys.stdin)); ' + 'print(json.dumps({"rows":len(rows)}))"' ) await sbx.destroy() return { exitCode, result: JSON.parse(stdout) }}// Fan-out: 50 CSVs in parallel, billed per-second eachconst jobs = csvUrls.map(url => runJob(url))const results = await Promise.all(jobs)console.log(results.filter(r => r.exitCode === 0).length, 'passed')Fastest in the EU on compute cold-start and resume
Measured from a neutral EU host. We report where we win and where we do not. Warm browser steady-state is not our win: Browserbase is faster there.
| Provider | Cold-start p50 | Resume p50 | Effective $/hr | EU region | E2B compat | Isolation |
|---|---|---|---|---|---|---|
| Lelantosus | 314 ms | 327 ms | $0.082 | Yes | Yes | Firecracker microVM |
| E2B | 561 ms | 761 ms | $0.117 + $150/mo | No | Yes | Firecracker microVM |
| Modal | 1593 ms | failed | ~$0.055* | No | No | gVisor |
| Daytona | 2323 ms | 2123 ms | $0.117 | Yes(self-serve) | No | Sysbox container |
| Browserbase(Browser only) | N/A | failed | $0.10-0.12 /browser-hr | Yes(self-serve) | No | Dedicated VM |
Measured from a neutral EU host, 20 runs/provider p50. Source: benchmarks/cross-provider-eu-2026-06-17/. Where Lelantos is not the fastest (browser warm-start: Browserbase wins), the table says so. Modal resume failed all 20 runs in our benchmark. Pricing from published list rates; Modal pricing disputed pending billing reconciliation.
Where we win
- +Compute cold-start: 1.8x faster than E2B, 5x than Modal
- +Compute resume: 327 ms vs 761 ms E2B
- +EU-native by default (no plan upgrade needed)
- +Cheapest E2B-compatible sandbox ($0.082/hr, no base fee)
Where they win
- +Warm browser steady-state: Browserbase ~846 ms vs our ~1651 ms
- +OSS infra: E2B (Apache-2.0), Daytona (AGPL, 72k stars)
- +Compliance: Modal (SOC2 II + HIPAA), Cloudflare (SOC2 + ISO)
- +Cold-start consistency: E2B has tighter p90/p99 than our warm-pool tail
Honest caveats
- +Numbers from EU neutral host; your RTT will vary
- +Modal pricing disputed -- cells marked with *
- +Lelantos warm-pool tail (p90: 1310 ms) is wider than E2B
- +SOC2 is on our roadmap, not yet certified
Works with your existing AI stack
E2B-compatible surface means the SDKs you already use work unchanged. The example output below is a static illustration, not a live run.
import { createLelantos } from '@lelantos-ai/sdk'const lel = createLelantos({ apiKey: process.env.LELANTOS_API_KEY, domain: 'lelantos.ai',})const sbx = await lel.compute.create('base')const result = await sbx.runCommand('echo "Hello from EU!"')console.log(result.stdout) // Hello from EU!await sbx.destroy()Click "Run" to see example output...
Start building in minutes
$50 free credits. No credit card to start. Every sandbox runs in the EU on Firecracker microVMs.