This release is a pre-release and may not be stable for production use.
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"
Loading screen | FPS vs pygbag
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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pygodide-0.1.0b14.tar.gz.
File metadata
- Download URL: pygodide-0.1.0b14.tar.gz
- Upload date:
- Size: 521.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ab303d56f9175227455b2692c8d6292b125b0829b71fe0cbd5026fe94935429
|
|
| MD5 |
b1ac68aa54700ea3bfefd895572d1532
|
|
| BLAKE2b-256 |
0407fa8298e2e985ff2c25d17f621edafb30e419e18702869926008a9dd60926
|
Provenance
The following attestation bundles were made for pygodide-0.1.0b14.tar.gz:
Publisher:
publish.yml on Elan456/pygodide
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pygodide-0.1.0b14.tar.gz -
Subject digest:
8ab303d56f9175227455b2692c8d6292b125b0829b71fe0cbd5026fe94935429 - Sigstore transparency entry: 2244319033
- Sigstore integration time:
-
Permalink:
Elan456/pygodide@053c9c5cf93a34e15cd745a7906b09b5d36fa9c7 -
Branch / Tag:
refs/tags/0.1.0b14 - Owner: https://github.com/Elan456
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@053c9c5cf93a34e15cd745a7906b09b5d36fa9c7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file pygodide-0.1.0b14-py3-none-any.whl.
File metadata
- Download URL: pygodide-0.1.0b14-py3-none-any.whl
- Upload date:
- Size: 64.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5fc72134c2dd7f9a26ba291f1040696b7bbed9fb76714024c0b5092cea255636
|
|
| MD5 |
9b3f37eab9abfc5191cba13aa114ea44
|
|
| BLAKE2b-256 |
17f08b54ebf288020a5eae83c5a9410ff650deb1d41156fae74edd865926b749
|
Provenance
The following attestation bundles were made for pygodide-0.1.0b14-py3-none-any.whl:
Publisher:
publish.yml on Elan456/pygodide
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pygodide-0.1.0b14-py3-none-any.whl -
Subject digest:
5fc72134c2dd7f9a26ba291f1040696b7bbed9fb76714024c0b5092cea255636 - Sigstore transparency entry: 2244319546
- Sigstore integration time:
-
Permalink:
Elan456/pygodide@053c9c5cf93a34e15cd745a7906b09b5d36fa9c7 -
Branch / Tag:
refs/tags/0.1.0b14 - Owner: https://github.com/Elan456
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@053c9c5cf93a34e15cd745a7906b09b5d36fa9c7 -
Trigger Event:
release
-
Statement type: