Skip to main content

pygodide

PyPI Python versions Downloads CI License: MIT

Docs Ruff

pygodide turns Pygame projects into browser apps using Pyodide with one command, no edits to your source code, and achieving 2.5x more FPS than pygbag (in certain cases).

Pronounced "pie-go-died"

pygodide in-browser loading screen, then a pygame snake game starting FPS benchmark: pygodide 453 vs pygbag 180 on perf_bench

Loading screen | FPS vs pygbag

Documentation

Quick Start

From your project's root directory, run the following commands:

Install

# Or add to your pyproject.toml and `uv sync`
pip install pygodide

Build

# Produces the web-hostable build/ directory
pygodide build .

# For an itch.io zip file
pygodide build . --zip

Serve

# Hosts the build/ directory locally
pygodide serve .

Open http://localhost:8000 in your browser.

Troubleshooting

If anything went wrong, work through the instructions page first (config, async, smoke tests, and common failures).

If you still cannot get your game running in the browser, open a "My project didn't convert" issue so we can improve pygodide for everyone. Paste build/pygodide-build.log into the form.

Examples and Live Demos

Sample projects live under test_targets/, and a few of them are uploaded to itch.io.

Try one locally:

git clone https://github.com/Elan456/pygodide.git
cd pygodide
pip install pygodide

pygodide build test_targets/ball_bouncing
pygodide serve test_targets/ball_bouncing

Before every release, each target under test_targets/ is automatically verified using a headless browser to catch regressions. All features shown in the test targets are maintained as first-class features.

Contributing

git clone https://github.com/Elan456/pygodide.git
cd pygodide
uv sync --dev
uv run playwright install chromium
uv run pre-commit install --hook-type pre-commit --hook-type pre-push

The dev group includes pygodide[smoke], so Playwright is installed with uv sync --dev. You still need playwright install chromium once for browser binaries.

Run the same checks as CI:

uv run ruff format --check .
uv run ruff check .
uv run pytest

Smoke tests (from this repo)

uv run playwright install chromium   # once
uv run pygodide smoke /path/to/your/pygame/project
uv run pygodide smoke test_targets --suite

Be sure to read AGENTS.md; it is written for both human contributors and AI tools.

Metadata

Release files for pygodide 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pygodide 0.1.0
File Size Uploaded
pygodide-0.1.0.tar.gz 521.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pygodide 0.1.0
File Interpreter ABI Platform
pygodide-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 582.3 kB

Release files / pygodide-0.1.0.tar.gz

Download URL pygodide-0.1.0.tar.gz
Size 521.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a8a82571beff74dff0b7ae5485520cb57ce80551602da8f29fea29b0ab7ad429
BLAKE2b-256 checksum
How to use checksums
616c77882993111ad5abe9f56c6905b206427e3116b015c32ec52c472b1fbf33
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.

Transparency log

Release files / pygodide-0.1.0-py3-none-any.whl

Download URL pygodide-0.1.0-py3-none-any.whl
Size 60.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49be791ffef315fd0d0c5d69ec1b93a528d2aca1bdd787114c0489ab6e923016
BLAKE2b-256 checksum
How to use checksums
6880db4220c742f7bb041b1b41476eb462f1c5578af053620a6cb0217e02ddfe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page