Sign In

Sign in to publish packages and pin them by sha256.


By continuing, you accept our Terms and Conditions.

@

Connect an agent

Copy and paste this into your agent session.

Edge Python is sandboxed Python that compiles to bytecode and runs on a VM, in the browser as WebAssembly or through the edge CLI.
Install the CLI with curl -fsSL https://cdn.edgepython.com/cli/install.sh | sh
Read https://edgepython.com/SKILL.md first, it is the full reference and every example in it is executable.
Nothing resolves unless edge.json declares it, so run edge add <name> before importing and grant what it asks under permissions for each scope.
Run the entry point with edge run main.py and every *_test.py with edge test.
Search the docs, people, services and packages with GET https://edgepython.com/api/search?q=<term>
Read what it finds by putting /api before the href, so /package/<name>, /package/<name>/<slug>, /@<handle>, /service/<name> and /docs/<path> all answer as data, and GET /api/docs lists the reference.
Ask a question in any language with POST https://chat.edgepython.com {"question": "..."}, which answers from those pages and returns a session to send back with a follow-up.
Pack and ship with edge build, then edge publish app.edge
New here? Start with the docs

Small enough to run anywhere, safe everywhere

Sandboxed Python in one WebAssembly module, and a registry that pins every package by sha256.

curl -fsSL https://cdn.edgepython.com/cli/install.sh | sh

Compiled in a single pass to bytecode and run on a register VM, in one WebAssembly module.

None of these could have shipped here

Bugs that reached AI libraries, plugins and the stacks banks run, each one code the program never wrote.

HereWhat a model writes stays a string, and a string never runs. There is no exec, no eval and no compile for the chart code to reach.

Nothing leaves the sandbox unless you say so

A grant names a module and the one scope it reaches, and a call outside it never leaves the program.

{
  "imports": { "http": "0.2.0" },
  "permissions": {
    "main": ["time:wall", "net:api.github.com"]
  }
}
time.now()ok
net.request("GET", "https://api.github.com/repos")ok
net.request("GET", "https://evil.example/")PermissionError

Written in Rust, read in the open

273 stars onGitHub

A single pass turns source into bytecode, with no AST and no IR, and a register VM runs it, lowering each chunk once it runs hot. The engine is about twenty thousand lines of Rust under the Apache licence.

View more

Questions

Is this Python?

Yes. The syntax is ordinary Python, with classes, async and await, pattern matching and f-strings. It leaves out what does not fit a sandboxed engine, so there is no exec or eval, no metaclasses, no complex numbers and no bundled standard library.

What can a program reach?

Only what it is granted. A program touches no file, no network and no environment unless edge.json names it, imports resolve at compile time through the host, and every call checks its scope again while it runs.

Where does it run?

One WebAssembly module runs in the browser, in JavaScript runtimes that offer the same Web APIs, such as Deno, and in the edge CLI, which embeds the same engine under wasmtime.

How does a package get in?

edge add writes the version into edge.json and edge lock resolves it into an edge.lock beside it, recording the URL and the sha256 digest it resolves to, so a run never asks a registry for a name.

Can I embed the engine?

Yes. It builds as compiler.wasm and as a Rust library, and driving either from your own host needs nothing from anyone, a closed product included. The lang crate, a smaller embedding API over the same engine, is licensed apart.

Not on the list? Ask , or maybe... a human?