OWN
One worker.
One kernel owner.
The interpreter and linear memory stay behind a versioned worker protocol. Consumers receive typed values and receipts, never raw heap access or live Python proxies.
Run the kernel ↗PYPROC / BROWSER-NATIVE MACHINE
Run source-built CPython in a dedicated worker. Transfer typed values, checkpoint the interpreter, clone independent processes, and carry state in a verified Machine image.
ONE MACHINE OWNS
THE PRODUCT MODEL
A runtime becomes a computer when its work survives, its history can move in both directions, and the result can leave the browser intact.
Verify the owned engine manifest and start CPython in its worker.
await boot()Run CPython through a Promise-first kernel contract.
await machine.run(code)Seal an execution boundary into content-addressed state.
await history.checkpoint()Open prepared state in an independent worker process.
await machine.proc.clone()Export state and integrity metadata as a Machine image.
await history.export()WHAT CHANGES
pyproc changes the physical properties around the interpreter. The language stays Python. The surrounding Machine gains continuity, history, processes, and a portable identity.
OWN
The interpreter and linear memory stay behind a versioned worker protocol. Consumers receive typed values and receipts, never raw heap access or live Python proxies.
Run the kernel ↗REWIND
Checkpoint the prepared heap, let an attempt fail, then restore changed pages. Compare several futures from one clean origin and adopt only the result you want.
Run the agent loop ↗PARALLELIZE
A Web Worker is a process. Fork a prepared interpreter into independent workers, each with its own interpreter and GIL, then interrupt or replace them as a real process pool.
Open Process OS ↗CARRY
A Machine image carries checkpoint objects, engine identity, and integrity metadata without embedding the engine binary.
Export a Machine ↗RUNNABLE PROOF
Each surface below runs the public package in your browser. They are not mockups, recordings, or backend sessions.
Export a checkpoint and reopen the same state in a fresh worker.
Open demo ↗ 02 / HISTORYPrepare, fail, rewind, branch, compare, and adopt.
Open demo ↗ 03 / PROCESSESFork independent interpreters across real CPU cores.
Open demo ↗ 04 / SERVERServe FastAPI through a real browser URL with no backend.
Open demo ↗FOR PRODUCT BUILDERS
Use the gathered root entrances, named plumbing subpaths, and documented execution assets, never engine internals. These are the boundaries for extending pyproc without fragmenting the product.
Choose the public door by task and see the runnable proof behind it.
Compare product value, browser requirements, status, and hard boundaries.
Pin exact versions, keep imports clean, and deploy verified same-origin assets.
Measure the structure honestly without turning temporary numbers into product claims.
START HERE
Pin an exact npm version. The package has no runtime npm dependencies and ships as native ESM without a build step.
npm install pyproc// boot the verified worker-owned kernel
import { boot } from "pyproc";
const machine = await boot();
const result = await machine.run("print(6 * 7)");
console.log(result.output);
Pin an exact npm version. Release-before-pinning alternatives and asset deployment rules live in the package contract.