Share Powered by Pyodide

Online Python IDE (Pyodide)

Run Python directly in your browser using Pyodide and WebAssembly — no server setup, no installation, and no waiting. Your code executes entirely on your machine using WebAssembly, ensuring fast performance and complete privacy. Install popular packages like NumPy, Pandas, Matplotlib, and more using micropip. Work with multiple files, organize your code across tabs, and build projects right from your browser. Whether you're a beginner learning Python or an experienced developer testing quick ideas, this full-featured Python environment has everything you need to write, run, and experiment with Python code instantly.

How to Use This Online Python IDE

This browser-based Python IDE lets you write, run, and debug Python code instantly — no installation, no signup, no server. Here's how to get the most out of it:

  • 1. Write your code — type or paste Python code in the editor on the left. Syntax highlighting, auto-indentation, and bracket matching are built in.
  • 2. Run it — click the green Run button or press Ctrl + Enter. Output appears in the terminal on the right. Errors are shown in red with clear tracebacks.
  • 3. Install packages — click the icon to open the package manager. Type a package name (e.g. numpy) and click Install. Or simply import it in your code — missing packages are detected and installed automatically.
  • 4. Create multiple files — click the + tab above the editor to add files. Name them anything (e.g. utils.py) and import between them with standard Python syntax.
  • 5. Visualize data — use matplotlib or plotly to create charts. Call plt.show() or fig.show() and plots render inline above the terminal.
  • 6. Interactive inputinput() works naturally. A prompt dialog appears when your code requests user input, and execution resumes with your response.
  • 7. Save your work — click the icon (or press F9) to download your code as a file to your computer.
  • 8. Open files — click the icon to load a .py file from your computer into the editor.
  • 9. Customize the editor — click to change the theme, font size, tab width, and other editor settings. Toggle between vertical and horizontal split layouts with the button.
  • 10. Stop execution — if your code runs too long or enters an infinite loop, click the red Stop button to interrupt it immediately.

About Pyodide

A complete Python environment running entirely in your browser, powered by WebAssembly

Pyodide brings the full power of Python to your web browser. It is the official CPython interpreter (the same Python you'd install on your computer) compiled to WebAssembly using Emscripten. This means you get a genuine Python 3.12 environment with the complete standard library — all running client-side, with zero server infrastructure. Whether you're learning Python, prototyping an idea, or running data analysis, everything happens instantly in your browser tab.

How It Works

When you click Run, your code is executed by the CPython interpreter compiled to WebAssembly. Pyodide runs inside a Web Worker, which means your code executes on a background thread — the browser UI stays fully responsive even during heavy computation or large package installations. The Python runtime, standard library modules, and installed packages all live in your browser's memory. There's no compilation step, no server communication, and no waiting for remote execution.

Privacy & Security

Your code never leaves your browser. Nothing is uploaded, stored, transmitted, or processed on any server. Every aspect — code execution, file handling, package downloads, and output rendering — happens entirely within your browser tab. Package installations fetch directly from CDN and PyPI to your browser. When you close or refresh the page, everything is gone. This makes it ideal for working with sensitive data, proprietary algorithms, or any code you want to keep completely private.

Package Ecosystem

Pyodide ships with a rich set of pre-built scientific packages compiled to WebAssembly, including NumPy, Pandas, Matplotlib, SciPy, scikit-learn, Plotly, SymPy, NetworkX, Pillow, and many more. Missing packages are automatically detected and installed when your code imports them — no manual setup needed. Additionally, any pure Python package on PyPI can be installed on-the-fly via micropip. Use the built-in package manager ( icon) to browse, install, and manage packages.

View the complete list of available packages

Graphical Output & Visualization

Create rich visualizations directly in the browser. Matplotlib plots are rendered as high-quality PNG images with a clean light theme, displayed inline above the terminal output. Plotly charts render as fully interactive HTML — you can zoom, pan, hover for tooltips, and export images. Simply use plt.show() or fig.show() as you normally would. Multiple plots in a single run are displayed sequentially. This makes the environment perfect for data exploration, scientific visualization, and creating presentation-ready charts.

Multi-File Projects

Build real projects with multiple files. Click the + button to create new files, name them as you wish, and import between them using standard Python import syntax — from mymodule import my_function works seamlessly. All files are written to a virtual filesystem before execution, so relative imports and cross-file references behave exactly as they would in a local Python project. This is perfect for organizing larger programs, separating utilities from main logic, or experimenting with modular code design.

Interactive Input

Python's built-in input() function is fully supported. When your code calls input(), a modal dialog appears for you to type your response, and execution continues seamlessly. This enables interactive programs, command-line-style menus, games, quizzes, and any code that requires user input during runtime.

Limitations & Things to Know

While Pyodide provides a remarkably complete Python environment, there are some inherent limitations of running Python in the browser:

  • No network access — modules like urllib, http.client, and socket cannot open network connections. Libraries like requests will import but HTTP calls will fail. This is a browser security restriction.
  • No native C extensions (unless pre-compiled) — packages with C, C++, or Fortran components only work if they've been specifically compiled for WebAssembly and included in the Pyodide distribution. Most popular scientific packages (NumPy, Pandas, SciPy, etc.) are already included. Pure Python packages always work.
  • No file system persistence — files created during execution (via open(), os.mkdir(), etc.) exist only in memory. They are lost when you refresh or close the page. Your editor code is preserved in the browser, but runtime-generated files are not.
  • No threading or multiprocessing — the threading and multiprocessing modules are not functional. Python runs in a single Web Worker thread. Async code with asyncio works for cooperative concurrency.
  • Initial load time — the first run downloads the Pyodide runtime and core packages (~15 MB). Your browser caches this, so subsequent visits load almost instantly. Large packages like Pandas or SciPy require additional downloads on first use.
  • Memory limits — the environment shares memory with your browser tab. Very large datasets or memory-intensive operations may hit browser memory limits (typically 1–4 GB depending on your device and browser).

Perfect For

  • Learning Python and experimenting with code
  • Data analysis and visualization prototyping
  • Algorithm practice and coding challenges
  • Quick scripts and calculations
  • Teaching and demonstrations
  • Working with sensitive code that must stay private
  • Environments where you can't install Python locally

Contact Us

If you encounter a bug or have questions or suggestions for improvements, please send us an email at .