Serverless tool calling

Give your agent a bash tool.

Each call boots a fresh Firecracker microVM next to your disk, runs Bash, Python, or Node, and shuts down. The files it writes are there for the next call.

One call, one microVM.

No sandbox to create, stop, or delete. Only what the command writes to the disk outlives the call.

Serverless execution docs
vm 1Exit 0

echo west > sales.csv

(no output)

vm 2Exit 0

wc -l sales.csv

1 sales.csv

writesreads
agent-data

sales.csv

Files outlive the call

Writes are committed to the disk before the response returns, so the next call reads them straight away.

exec("true")
82 ms median
020406080
request
boot + mount
37 ms
run
response

82 ms at the median

A trivial command from a laptop to us-west-2, round trip, including about 40 ms of internet. Every result reports where the time went.

fan-out.ts
TypeScript
const files = await listLogs()
 
await Promise.all(
files.map((f) => disk.exec(`wc -l ${f}`)),
)
144 calls132 done · 12 running

Fan out hundreds at once

Each disk runs many commands concurrently. Map a job across files with a Promise.all; ask us and the limit goes to thousands.

dsk-abc123

read-write

dsk-def456

app/logs · read-only

microVM1 call
/mnt/archil/
data/read-write
logs/read-only

$ wc -l logs/*.log

Several disks in one call

Mount each disk at its own path, a subdirectory if you like, read-only if you need. Every disk mounts or none do.

grep "ERROR|FATAL" logs/
completed

logs/api/2026-11-05.log:18233

ERROR upstream timeout

logs/worker/2026-11-05.log:902

FATAL queue closed

logs/api/2026-11-04.log:4417

ERROR upstream timeout

3 matches1,208,450 files scanned

Search millions of files

disk.grep spreads a search across the disk in parallel. It counts as one call, like exec.

Hand the disk to your agent.

Pass a disk to the AI SDK and the agent gets file tools and run_bash. Or call exec yourself from TypeScript, Python, or the CLI.

AI SDK guide
agent.ts
TypeScript
import * as archil from "disk";
import { createDiskTools } from "@archildata/ai-sdk";
import { generateText } from "ai";
 
const disk = await archil.getDisk("dsk-abc123");
 
// Files, glob, grep, and run_bash. Each bash call
// runs in its own microVM against this disk.
const { text } = await generateText({
model: "anthropic/claude-sonnet-4.6",
prompt: "Which test files changed this week?",
tools: createDiskTools(disk),
});
 
// Or run a command yourself.
const { stdout, timing } = await disk.exec("du -sh logs");

Works with the rest of Archil.

Available in Archil's public AWS regions and in BYOC deployments.

Sandboxes
4 sandboxes
NameStateKeeps
agent-workspaceStoppedDisk
review-botPausedDisk and memory
docs-previewRunning—
nightly-evalsStoppedDisk

Sandboxes

Need a server that stays up? Use a persistent sandbox on the same Firecracker runtime.

agent-data
3 mounts
checkpoints/agent-workspace
repo/your laptop
results.jsonnightly-evals

Archil disks

Every call mounts an Archil disk: durable, shared, and backed by S3.

Powering millions of agents each week. Trusted by teams at

    • ClayClay
    • Gamma
    • Gumloop
    • Cobbery
    • Concourse
    • Depot
    • microAGI

Give your agent a bash tool today.