Run real Python 3 online with Pyodide (CPython in WebAssembly). Full standard library, no install, no server — your code executes privately inside your browser.
Traditionally, running Python means installing an interpreter, managing versions, creating a virtual environment and using a terminal. A browser-based runner removes all of that by shipping the interpreter itself to the browser. You open a page, type Python, and press Run.
The technology that makes this possible is WebAssembly — a portable binary instruction format that browsers execute at near-native speed. Pyodide is the CPython interpreter compiled to that format, so the language you run here is the same reference implementation used on servers and laptops, not a reimplementation or a subset.
Python could be loaded on the main browser thread, but that would be a poor design for two reasons. First, a long-running loop would freeze the entire page, including the Stop button. Second, code on the main thread shares the document with the application around it.
Running the interpreter in a dedicated Web Worker solves both problems. A worker has no access to the DOM at all — it cannot read the page, its cookies or its storage — and it runs on its own thread, so the interface stays responsive while your script executes. Terminating the worker is an immediate, guaranteed stop, which is why Stop here actually works rather than politely requesting cancellation.
json, math, statistics, datetime, re, itertools, collections, dataclasses, hashlib, random and more.A browser is not an operating system, and pretending otherwise would waste your time. There is no access to your file system, no subprocess, no raw network sockets, no GUI toolkits, and no packages that link against native system libraries. Scripts that shell out, read local directories or open servers belong in a local Python installation.
The other honest cost is the initial download. The runtime is several megabytes because it contains a complete interpreter. It is fetched only when you press Run for the first time, never on page load, and your browser caches it afterwards.
Learning and teaching, where installation is the biggest barrier. Homework and exercises on a device you do not control. Verifying how a standard-library function behaves before using it. Small data calculations — averages, groupings, date arithmetic, hashing. Interview practice. Reproducing a bug in a snippet so it can be shared clearly.
Your Python source stays in your browser. It is executed locally by the WebAssembly interpreter and saved only as a local draft, which the Reset button clears. Zubac Tools never receives your code or its output.
Work with data formats in the JSON Playground, query tables in the SQL Runner, or switch languages with the JavaScript Runner.
Browse all free tools · Guides and tutorials · PDF tools · Developer tools · Text tools · SEO tools