Open-source licences
Pythilo stands on a lot of open-source work. These are the components in the app, on this website and in the Pythilo MCP bridge, with the licences they are used under. Thank you to everyone who makes them.
Pythilo itself
Pythilo, its website and its courses are © 2026 Serhii Ziborov. All rights reserved. The source is public to read on GitHub, but it is not open source: no licence is granted to use, copy, modify or distribute it. The open-source components below keep their own licences, which this does not limit.
In the app: runtime and libraries
| Component | Version | Licence | Notes |
|---|---|---|---|
| CPython | 3.14.10 | Python Software Foundation License | |
| Python-Apple-support (BeeWare) | 3.14-b14 | BSD 3-Clause | |
| OpenSSL | 3.5.9 | Apache License 2.0 | Part of the Python support package |
| libffi | 3.4.7 | MIT | Part of the Python support package |
| XZ Utils (liblzma) | 5.6.4 | 0BSD | Part of the Python support package |
| bzip2 | 1.0.8 | bzip2 licence (BSD-style) | Part of the Python support package |
| mpdecimal | 4.0.0 | BSD 2-Clause | Part of the Python support package |
| Zstandard | 1.5.7 | BSD 3-Clause (or GPLv2) | Part of the Python support package |
| libgit2 | 1.9.7 | GPLv2 with linking exception | Its bundled parts (llhttp, ntlmclient, PCRE2, xdiff) are listed in its COPYING file |
| PyTorch | 2.15.0 | BSD 3-Clause | Its third-party parts keep their own licences |
| torch-ios | BSD 3-Clause | The build of PyTorch for iOS | |
| esbuild-wasm | 0.28.2 | MIT | |
| Yjs | 13.6.33 | MIT | With lib0 and y-protocols, for shared rooms |
In the app: Python packages
Bundled with the app and listed in Settings › Python › Licenses. Each package's full licence ships inside the app, in its .dist-info folder. Packages you install yourself with pip or npm come with their own licences.
| Package | Version | Licence |
|---|---|---|
| annotated-doc | 0.0.5 | MIT |
| annotated-types | 0.8.0 | MIT |
| anyio | 4.16.0 | MIT |
| asgiref | 3.13.0 | BSD-3-Clause |
| blinker | 1.9.0 | MIT |
| certifi | 2026.10.23 | MPL-2.0 |
| charset_normalizer | 3.5.2 | MIT |
| click | 8.5.0 | BSD-3-Clause |
| django | 6.1.2 | BSD-3-Clause |
| fastapi | 0.162.0 | MIT |
| filelock | 4.2.7 | MIT |
| flask | 3.1.3 | BSD-3-Clause |
| fsspec | 2026.9.0 | BSD-3-Clause |
| h11 | 0.16.0 | MIT |
| httpcore | 1.0.9 | BSD-3-Clause |
| httpx | 0.28.1 | BSD-3-Clause |
| idna | 3.20 | BSD-3-Clause |
| iniconfig | 2.3.1 | MIT |
| itsdangerous | 2.2.0 | BSD-3-Clause |
| jedi | 0.20.1 | MIT |
| jinja2 | 3.1.6 | BSD-3-Clause |
| markupsafe | 3.0.4 | BSD-3-Clause |
| mpmath | 1.3.0 | BSD-3-Clause |
| networkx | 3.7 | BSD-3-Clause |
| numpy | 2.5.2.post1 | BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0 |
| opentelemetry-api | 1.45.2 | Apache-2.0 |
| packaging | 26.3 | Apache-2.0 OR BSD-2-Clause |
| parso | 0.8.7 | MIT |
| pip | 26.2.2 | MIT |
| pluggy | 1.7.0 | MIT |
| pydantic | 2.14.2 | MIT |
| pydantic_core | 2.50.2 | MIT |
| pyflakes | 4.1.0 | MIT |
| pygments | 2.21.0 | BSD-2-Clause |
| pytest | 9.2.0 | MIT |
| requests | 2.34.2 | Apache-2.0 |
| sqlparse | 0.6.1 | BSD-3-Clause |
| starlette | 1.10.0 | BSD-3-Clause |
| sympy | 1.14.0 | BSD-3-Clause |
| torch | 2.15.0 | BSD-3-Clause |
| typing-inspection | 0.4.4 | MIT |
| typing_extensions | 4.16.0 | PSF-2.0 |
| urllib3 | 2.8.0 | MIT |
| uvicorn | 0.54.0 | BSD-3-Clause |
| werkzeug | 3.1.9 | BSD-3-Clause |
On this website
Python in your browser runs on Pyodide 314.0.7 (Mozilla Public License 2.0), served from this site together with the package wheels the lessons need (NumPy, pytest and their dependencies, each under its own licence). The site is built with:
| Package | Version | Licence |
|---|---|---|
| @codemirror/autocomplete | 6.20.4 | MIT |
| @codemirror/commands | 6.11.1 | MIT |
| @codemirror/lang-markdown | 6.5.2 | MIT |
| @codemirror/lang-python | 6.2.1 | MIT |
| @codemirror/language | 6.13.1 | MIT |
| @codemirror/legacy-modes | 6.5.5 | MIT |
| @codemirror/state | 6.7.6 | MIT |
| @codemirror/view | 6.43.15 | MIT |
| @lezer/common | 1.5.4 | MIT |
| @lezer/highlight | 1.2.5 | MIT |
| @lezer/python | 1.1.19 | MIT |
| fflate | 0.8.3 | MIT |
| next | 16.4.2 | MIT |
| pyodide | 314.0.7 | MPL-2.0 |
| react | 19.2.0 | MIT |
| react-dom | 19.2.0 | MIT |
| server-only | 0.0.1 | MIT |
| y-codemirror.next | 0.3.6 | MIT |
| y-protocols | 1.0.7 | MIT |
| yjs | 13.6.33 | MIT |
In the MCP bridge
The Pythilo MCP bridge that lets an AI client join a room includes:
| Component | Version | Licence | Notes |
|---|---|---|---|
| MCP TypeScript SDK (@modelcontextprotocol) | 2.4.0 | Apache-2.0 (parts MIT and CC-BY-4.0) | |
| Yjs, y-protocols, lib0 | MIT | ||
| Zod | 4.6.7 | MIT |
Licence texts
The full licence texts are linked above and ship with each component: in the app bundle for the app's components, in the site's dependencies for the website, and in ThirdPartyNotices.txt for the bridge. Some editor, Git build and layout code comes from Crabrix and SharpRune, which have the same owner.