Pytonium
Build Python desktop apps with HTML, CSS, and JavaScript.
Pytonium embeds the Chromium Embedded Framework (CEF 145 / Chromium 145) in Python, giving you the full power of modern web technologies for your desktop application UI.
Install
pip install Pytonium
Quick Start
import time
from Pytonium import Pytonium
p = Pytonium()
p.initialize("https://example.com", 800, 600)
while p.is_running():
time.sleep(0.01)
p.update_message_loop()
That's it -- a native desktop window running a full Chromium browser, in 7 lines of Python.
Features
- Chromium rendering -- Full browser engine for HTML/CSS/JS, use React, Tailwind, or any web framework
- Python-JS bridge -- Call Python functions from JavaScript, return values via Promises
- State management -- Shared state between Python and JS with namespace subscriptions and DOM events
- Custom URL schemes -- Map
myapp://to a local folder for loading HTML, assets, and 3D models - Frameless windows -- Build custom window chrome with HTML/CSS, Electron-style
- Window control -- Position, size, minimize, maximize, fullscreen, drag, native handle access
- Multi-instance -- Run multiple browser windows in a single process
- TypeScript definitions -- Auto-generate
.d.tsfiles for IDE auto-completion - Async support --
asynciointegration withrun_pytonium_async - Event callbacks -- React to title changes, URL navigation, and fullscreen state
- Cross-platform -- Windows 11 and Linux
Example: Python + JavaScript Interop
from Pytonium import Pytonium, returns_value_to_javascript
p = Pytonium()
@returns_value_to_javascript("any")
def get_data():
return {"answer": 42, "source": "Python"}
p.bind_function_to_javascript(get_data, javascript_object="api")
p.initialize("file:///path/to/index.html", 800, 600)
while p.is_running():
p.update_message_loop()
// In your HTML/JS -- wait for bindings, then call Python
if (window.PytoniumReady) {
callPython();
} else {
window.addEventListener('PytoniumReady', callPython);
}
async function callPython() {
const result = await Pytonium.api.get_data();
console.log(result.answer); // 42
}
Examples
Complete examples are included in the pytonium_examples/ directory in this repository:
| Example | Description |
|---|---|
| Simple App | Bindings, state management, and context menus |
| Frameless Window | Custom HTML/CSS titlebar with window controls |
| Babylon.js 3D | 3D rendering with custom schemes and MIME types |
| Line Graph | Real-time data visualization with state updates |
| Control Center | Dashboard with multiple data panels |
| Data Studio | Interactive data analysis tool |
Documentation
Full documentation is available at maximilian-winter.github.io/pytonium, covering:
- Getting Started -- Installation, quick start, and first app tutorial
- Guides -- JS bindings, state management, frameless windows, async, and more
- API Reference -- Complete Pytonium class reference (~35 methods)
- Examples -- Walkthroughs of each example app
- Building from Source -- Windows and Linux build instructions
Platform Support
| Platform | Status |
|---|---|
| Windows 11 | Fully supported |
| Linux (X11) | Fully supported |
| Python 3.10+ | Required (64-bit) |
Building from Source
See the Build Guide or how-to-build-from-source.md for detailed instructions.
# Quick version (Windows)
pip install build scikit-build cmake ninja Cython
cmake -B cmake-build-release -DCMAKE_BUILD_TYPE=Release
cmake --build cmake-build-release --target pytonium_subprocess --config Release
cd building_pythonium_core && python prepare_build.py --platform windows --build-dir ../cmake-build-release
cd ../src/pytonium_python_framework && python -m build --wheel
pip install dist/pytonium-*.whl --force-reinstall
License
MIT License -- Pytonium also includes CEF (BSD) and nlohmann/json (MIT).
Metadata
Release files for Pytonium 0.0.35
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 1.6 GB
Release files / pytonium-0.0.35-cp314-cp314-win_amd64.whl
| Download URL | pytonium-0.0.35-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 171.2 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
294c7c92086377e19c3ce98bc939bbd4465921a1b9d97a318d98ddfe05310847
|
|
BLAKE2b-256 checksum How to use checksums |
691bf8c6bb71bffaee4549b97961e009d658fe988e67090efca85365adc20ed3
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp314-cp314-manylinux_2_39_x86_64.whl
| Download URL | pytonium-0.0.35-cp314-cp314-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 147.5 MB |
| Tags | CPython 3.14 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
c70aedfc36ed5e3555c2122b301e99120527cdc922eea4a4bdfa8dd5b0eda83a
|
|
BLAKE2b-256 checksum How to use checksums |
1d48a898fb185cef4de2ea5615b1a79e881dd362765735df124f63029cbf1f18
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp313-cp313-win_amd64.whl
| Download URL | pytonium-0.0.35-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 166.7 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
fe30522956f569df738d246d856948fb9e73c1326c862de78647d235d538e0f4
|
|
BLAKE2b-256 checksum How to use checksums |
7ea85890a0f29d6ad9adbe952eec1f176dba5623d6c662aee0c7d949a8ab12e7
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp313-cp313-manylinux_2_39_x86_64.whl
| Download URL | pytonium-0.0.35-cp313-cp313-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 147.5 MB |
| Tags | CPython 3.13 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
41741411b5de211175baf3e5faaa6291676966072ae57d6b21f60f3efc0377ef
|
|
BLAKE2b-256 checksum How to use checksums |
e87761b40fdcfc35e4f271e3e3e5ac626776ccb27d8df137b0f6ec1ec9a07acd
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp312-cp312-win_amd64.whl
| Download URL | pytonium-0.0.35-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 166.7 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
146a9a7a74e1dfb3058338584394ff1fe0abcdf32e70e1becea98d62c6f34b95
|
|
BLAKE2b-256 checksum How to use checksums |
9670ec34a7ddcb0c73276277807673c67382d7a80a2aca66303a68c214c2f2ce
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | pytonium-0.0.35-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 147.5 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
8944dc2bf16a28661d6d55d177da59f926a4842cbb4d3112596e5390bdcb43de
|
|
BLAKE2b-256 checksum How to use checksums |
fc208821f9327696b68d9ad329a7f37a8b65e5dd997849923d17226b75d5d64a
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp311-cp311-win_amd64.whl
| Download URL | pytonium-0.0.35-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 166.7 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
da2687e9949f44125bda5f9b542dda9aae61bcf4a24d557dd4a79f9e1d05e628
|
|
BLAKE2b-256 checksum How to use checksums |
c72373d95a9c97baa924c2394867138bd93a481ddf1a4773220e76e7671f14f4
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp311-cp311-manylinux_2_39_x86_64.whl
| Download URL | pytonium-0.0.35-cp311-cp311-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 147.5 MB |
| Tags | CPython 3.11 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
1cb3746439c7223edfabfe565b2c9253b0c0647f9306c281aad4871cdcc9272d
|
|
BLAKE2b-256 checksum How to use checksums |
dde16109a82f1557c8a715dbb6bee2dbbb885d740a22e85f387b70de2ef07da2
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp310-cp310-win_amd64.whl
| Download URL | pytonium-0.0.35-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 166.7 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c5994dddb5d95c2c49b603948c19b4a0c35f068ebea3ada5c29e08317a7ef452
|
|
BLAKE2b-256 checksum How to use checksums |
6ef1be87c2504728b9eedf9a09b561ee1bbfa82931028b690379e91bd2b1e157
|
| 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 Sep 17, 2026.
Transparency logRelease files / pytonium-0.0.35-cp310-cp310-manylinux_2_39_x86_64.whl
| Download URL | pytonium-0.0.35-cp310-cp310-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 147.5 MB |
| Tags | CPython 3.10 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
1fde335216b3e9464cb3d9ac3d9b5db57111c660bea4ff96d1f605026210bfce
|
|
BLAKE2b-256 checksum How to use checksums |
4460780071b327ea1f03bab44c105b27f8df4be866de12525ed5a69fc166cc00
|
| 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 Sep 17, 2026.
Transparency log