Real pandas on your CSV —
running in this tab.
Nothing uploaded. No install.

Every tool is a signed, capability-sandboxed component that can touch only the file you hand it.

python-env · exec — a tool
example
code : str the exec argument
signed component from actpkg.dev · no upload · cached after first run

This is the real thing — the code is the argument to the exec tool; the output is its real result. Not a REPL, not a video.

Don't want to write it? A local model can — calling the same sandboxed tool.

One artifact · every host

The same signed artifact runs over MCP, the CLI, or right in the browser.

--mcp
In your agent
Claude, Cursor, or any MCP client calls exec.
act call
On the CLI
Pass the CSV as an argument, get the tool result out. Scriptable.
:8080
Over HTTP
Same component, served as a sandboxed endpoint.
this tab ←
In the browser
What you just ran. No server round-trip at all.

written in any of 12 languages · pinned by digest, signed to its build

The question you're already asking

“Isn't this just Pyodide?”

No — and we're honest about where Pyodide is ahead. The difference is isolation and portability, not raw Python.

Pyodide
Built for Python↔JS interop
  • ✕ from js import document, js.fetch, DOM & globalThis all work.
  • ✕ Not a sandbox for untrusted, AI-written code.
  • ✓ More compiled packages (SciPy, sklearn), maturity, JS interop.
act · python-env
Built to be sealed & portable
  • ✓ Zero ambient authority — no js, no DOM, no arbitrary network (pypi only, for micropip). It can't escape.
  • ✓ The same signed component runs in your agent over MCP / CLI / HTTP.
  • ≈ Runtime pure-Python install is parity — we use the same micropip.

Pyodide-adjacent, not a reinvention. The difference is isolation + portability.

Use it in your agent

The exec tool you just ran is the exact signed artifact your agent calls — byte for byte.

$claude mcp add python-env -- npx @actcore/act run actpkg.dev/library/python-env --mcp
Your browser is ready — WebGPU + wasm available
Chrome / Edge 137+
Works out of the box — wasm JSPI and WebGPU are on by default.
Firefox 153+
Works out of the box — JSPI ships on by default since Firefox 153 (July 2026), no flags. The optional local model also needs WebGPU: on for Windows and Apple-silicon macOS, not yet on Linux.