cd /news/ai-agents/ephemora-cell-a-capability-based-was… · home topics ai-agents article
[ARTICLE · art-128564] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Ephemora Cell: a capability-based WASM sandbox for untrusted AI code

A developer released Ephemora Cell, an open-source capability-based WASI/WASM sandbox for running untrusted AI agent code, MCP tools, and plugins under explicit, enforceable limits. In the project's published comparison, a stock python:3.12-slim container blocked 0 of 8 documented attack primitives while Ephemora Cell blocked all 8, with pooled warm runs reported in the sub-millisecond range on its benchmarks. The project also ships a dependency-free MCP stdio server and a GitHub Action for running WASM in CI under the same class of limits.

by read2 min views1 publishedSep 13, 2026

AI agents do not only answer questions. They write code, call tools, and load plugins. The hard part is not starting that work. It is what the code is allowed to do once it runs.

Permission systems answer “may it run?”

They do not answer “how far may it run?”

Ephemora Cell is a small open-source execution layer for that second question. It runs untrusted workloads inside a capability-limited WASI runtime: agents, MCP tools, plugins, code interpreters.

Repo: [https://github.com/MichaelS1011/ephemora-cell](https://github.com/MichaelS1011/ephemora-cell)

pip install ephemora-cell · Apache-2.0

The shape of the problem

AI Agent → Tool / MCP → Ephemora Cell → WASM → bounded result

Cell is not an agent framework. It sits under the stack you already have. The guest gets only the capabilities you grant. Everything else is closed by default.

Same attacks, different boundary

We ran eight documented attack primitives against:

a stock python:3.12-slim container Ephemora Cell

In that comparison: Docker 0/8 blocked, Cell 8/8 blocked.

Shell, fork, sockets, host filesystem, symlink-style escapes, and related vectors are covered by the suite in the repo. Reproduce with the scripts under assets/ and benchmarks/.

This is not a universal security guarantee. It is a measured comparison for those vectors. Cell does not decide whether guest code is “good.” A module can still misbehave inside the budgets it received.

Performance (why you can sandbox every call)

Cold-starting a container for every tool call is expensive. Cell is aimed at warm, per-call isolation. On our published benchmarks, pooled warm runs sit in the sub-millisecond range for a simple guest; raw results live under benchmarks/results/. Always treat latency numbers as workload- and machine-specific.

MCP: tools need a runtime

An MCP tool is not only a JSON schema. It is code that runs.

Cell ships a dependency-free MCP stdio server. Tools are WASM modules executed inside the same boundary. Responses can carry execution metadata: cost (fuel, ms), policy, and outcome — so “what did it return?” and “under which limits?” stay together.

pip install ephemora-cell

ephemora-cell-mcp There is also a GitHub Action to run WASM in CI under the same class of limits (including an isolated path with OS-level walls).

Any language that compiles to WASI/WASM can be a guest. The repo CI exercises several toolchains.

What Cell is — and is not

Is: an execution primitive with explicit, enforceable limits and inspectable results.

Is not: a claim that models are safe, that prompt injection is solved, or that residual risk is zero.

Trust comes from a narrow boundary and budgets you can measure — not from a promise that the guest is benign.

If you build agents or MCP tools and care about what happens after the tool is selected, take a look at the repo, run the attack scripts, and break it. Technical criticism is welcome, especially on the WASI surface and the vector suite.

── more in #ai-agents 4 stories · sorted by recency
── more on @ephemora cell 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/ephemora-cell-a-capa…] indexed:0 read:2min 2026-09-13 ·