EPHEM0RACELL · PUBLIC PRODUCT

EPHEM0RA CELL · SHIPS TODAY

One job.
One sandbox.

Explicit capabilities.
Hard resource limits.
Ephemeral execution.

CELL · WHERE THE CODE GOES
UNTRUSTED CODE module · component ·tool call HOST VERIFY signature · module hash ·policy FAIL-CLOSED CELL BOUNDARY enforced per execution ·no guest-side switch wasmtime ·WASI Preview1 + WASI 0.2 FUEL MEMORY EPOCH I/O network · blocked fs · scoped preopens guest code neversees the host RESULT stdout/stderr ≤10 KB ·exit · elapsed · fuel RECORD jcs canonical ·tamper-evident · sign-ready VERIFY()

one direction · no arrow points back

WHAT IT IS

A capability boundary
for untrusted code.

Cell runs code you did not write: a script a model generated, a tool call, a plugin a customer brought. It gets only the access you name, it stops at the ceilings you set, and the sandbox is destroyed when the run ends. All of it happens on your machine — no cloud account, no API key in the loop.

It is an execution primitive, not an LLM, not an agent framework and not a general VM.

WASMcapability-scoped runtime
CLIrun · inspect · benchmark · build
Pythonembeddable API surface
MCPtool-execution layer

TECHNICAL DETAIL · HOW THE BOUNDARY WORKS

Nothing is allowed
by default.

WebAssembly and WASI on wasmtime, on the Preview1 and the 0.2 interface. Capabilities are resolved before the first instruction runs, and the fuel, memory, epoch and host-I/O budgets hold during it, with no switch the guest can turn. The guest runs inside your own process; run_isolated() puts a module from outside your build into one disposable worker behind OS-level limits.

A run that outlives its wall-clock budget (30 s by default) stops on the engine's epoch interruption and returns timeout; the isolated path grants the worker a parent-side process kill on top. Running out of fuel returns fuel_exhausted, an over-cap heap returns memory_exceeded, host work past the I/O budget returns io_budget_exceeded. In all four cases the sandbox is destroyed and the record written, and how a run ended is one of its fields.

ephemora-cellprofile llm

$ ephemora-cell run tool.wasm --profile llm

✓policydeny-by-default

✓networkblocked

✓filesystemno preopens

✓fuel2,000,000 units

✓memory128 MiB cap

✓timeout30 s, set by the caller

✓recordsign-ready

exit 0 · sandbox destroyed

REPRODUCIBLE PERFORMANCE

The cost of the boundary is measured.

0.33–0.34 ms of boundary per execution, wall time minus guest time.
0.485 ms mean for a cold Cell invocation in this committed workload, against 185.9 ms mean for Docker.
About 3M executions per hour per core in this sample.

Interactive benchmark viewsame committed evidence · each lens names its own sample
Mac M5 · wasmtime 47.0.1 · Cell n=300, Docker n=100 · lower is faster
Docker cold start185.9 ms×383
Cell cold startfastest here0.485 ms×1
linear scale · ×N = multiple of the smallest value in this view
Docker container cold start 185.9 ms vs Cell invoked-WASM cold start 0.485 ms · 383× in this workload and setup only.
Wall-clock benchmark · hello.wasm2026-09-14 · n=1000 · measured:true · raw JSON committed
ScenarioWall medianWall p95Guest median
Pooled engine0.51 ms0.89 ms0.17 ms
Default path0.94 ms1.15 ms0.61 ms
In the two rows above, wall median minus guest median is the 0.33–0.34 ms. The other run that same day gives 0.38 ms warm and 0.40 ms cold, so the cost is a range rather than a constant. The 3M throughput figure is n=500 on hello.wasm, one core, one machine, one date; the pooled path reaches about 5.5M on the same host. Reproduce with python benchmarks/pool_vs_budget.py and python benchmarks/competitive_benchmark.py; the throughput snippet sits in docs/recipes.md.

Source: benchmarks/results · conditions and commands are committed in the repository

CONTEXT, NOT A SLOGAN

Compare the workload.

Three boundaries, three different questions.

CONTAINER

Docker

Boundary Application packaging. The wall sits at the container edge, and the host kernel stays underneath every container on that machine.
Best for Images you build once and run as they are, with the tooling around them intact.
Trade-off The shared kernel surface. Cold start for python:3.12-slim measured 185.9 ms mean in the committed run.

See the benchmark →
SANDBOXED CONTAINER

gVisor

Boundary A user-space kernel between container and host, so the workload reaches the real kernel through a smaller surface.
Best for Linux workloads that need container semantics and stronger container isolation around them.
Trade-off Application compatibility and syscall overhead. Our eight intents through runsc release-20260914.0 stayed available to the guest, 8 of 8 as the expectation matrix had it: execve, fork, sockets, threads, symlinks. The host is walled off, the Linux ABI is not, and that is not a ranking.

Read the probe JSON → Read gVisor docs →
WASM CAPABILITY RUNTIME

Cell

Boundary Bounded WASM execution. The capabilities are named before the run and the budgets hold while it runs.
Best for Code you did not write, arriving as a module or a component, inside your own process.
Trade-off WASM only: no arbitrary binary and no Linux ABI. The budgets are not free, 0.33–0.34 ms of boundary per execution and 0.485 ms mean for a cold invocation in that same sample.

Reproduce Cell vs Docker →

Different boundaries solve different problems.

SECURITY AND CONFORMANCE EVIDENCE

Tested against real paths.

The repository replays real MCP CVE paths, runs official suites and commits the raw evidence. Conformance is not a security certification; the scope stays visible.

8 / 8replayed attack vectors blocked · v1.1.0 release gate, measured on a fresh clone, raw JSON committed
72WASI passes on macOS arm64 · 1 documented by-design xfail · 0 fail
31,931core spec passes · same pinned run: 3,282 classified deviations, 46 documented NaN-bit remainder, none unexpected
957tests passing at the v1.1.0 release gate · 90% coverage, measured on a fresh clone

Reproduce: conformance/ · MCP CVE replay · threat model

THE LIMITS ARE PART OF THE PRODUCT

Useful because it is honest.

Cell is not a general VM, container orchestrator, malware detector or complete multi-tenant platform. It is a focused execution and evidence layer.

PUBLIC STATUSv1.1.0
Released 2026-10-05 · tag verified on GitHub · on PyPI · BUSL-1.1 · one runtime dependency · CI on every push LICENSE IN SHORT BUSL-1.1 is source-available. The source is public, so you can read it, build it and run it on your own machine while you decide. The license grants no production use, because its Additional Use Grant says None, so running Cell for a business before a version's Change Date needs an agreement with the licensor, Michael Soppa. v1.1.0 was first distributed on 2026-10-05, so its Change Date is 2030-10-05, and every release through 1.0.4.3 is already Apache 2.0. WHAT 1.1.0 OPENED the 32 MiB module cap is now a knob on all three paths and the sync blockade moved from import to call, so a bring-your-own interpreter runs under the same boundary. Egress grants are additionally authenticated against a trust root kept outside the grants directory, and per-call receipts bind to one execution.

START WITH THE PUBLIC LAYER

Run the first boundary
yourself.

Install Cell, inspect the code, run the benchmarks and bring us the workload you want to make temporary.

$pip install ephemora-cell $ephemora-cell run tool.wasm --profile llm $ephemora-cell-mcp— bundled clock + echo; --tools-dir for your own

← drag, scroll or use arrow keys →

Privacy·Imprint01 / 08