Legal

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

ComponentVersionLicenceNotes
CPython3.14.10Python Software Foundation License
Python-Apple-support (BeeWare)3.14-b14BSD 3-Clause
OpenSSL3.5.9Apache License 2.0Part of the Python support package
libffi3.4.7MITPart of the Python support package
XZ Utils (liblzma)5.6.40BSDPart of the Python support package
bzip21.0.8bzip2 licence (BSD-style)Part of the Python support package
mpdecimal4.0.0BSD 2-ClausePart of the Python support package
Zstandard1.5.7BSD 3-Clause (or GPLv2)Part of the Python support package
libgit21.9.7GPLv2 with linking exceptionIts bundled parts (llhttp, ntlmclient, PCRE2, xdiff) are listed in its COPYING file
PyTorch2.15.0BSD 3-ClauseIts third-party parts keep their own licences
torch-iosBSD 3-ClauseThe build of PyTorch for iOS
esbuild-wasm0.28.2MIT
Yjs13.6.33MITWith 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.

PackageVersionLicence
annotated-doc0.0.5MIT
annotated-types0.8.0MIT
anyio4.16.0MIT
asgiref3.13.0BSD-3-Clause
blinker1.9.0MIT
certifi2026.10.23MPL-2.0
charset_normalizer3.5.2MIT
click8.5.0BSD-3-Clause
django6.1.2BSD-3-Clause
fastapi0.162.0MIT
filelock4.2.7MIT
flask3.1.3BSD-3-Clause
fsspec2026.9.0BSD-3-Clause
h110.16.0MIT
httpcore1.0.9BSD-3-Clause
httpx0.28.1BSD-3-Clause
idna3.20BSD-3-Clause
iniconfig2.3.1MIT
itsdangerous2.2.0BSD-3-Clause
jedi0.20.1MIT
jinja23.1.6BSD-3-Clause
markupsafe3.0.4BSD-3-Clause
mpmath1.3.0BSD-3-Clause
networkx3.7BSD-3-Clause
numpy2.5.2.post1BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0
opentelemetry-api1.45.2Apache-2.0
packaging26.3Apache-2.0 OR BSD-2-Clause
parso0.8.7MIT
pip26.2.2MIT
pluggy1.7.0MIT
pydantic2.14.2MIT
pydantic_core2.50.2MIT
pyflakes4.1.0MIT
pygments2.21.0BSD-2-Clause
pytest9.2.0MIT
requests2.34.2Apache-2.0
sqlparse0.6.1BSD-3-Clause
starlette1.10.0BSD-3-Clause
sympy1.14.0BSD-3-Clause
torch2.15.0BSD-3-Clause
typing-inspection0.4.4MIT
typing_extensions4.16.0PSF-2.0
urllib32.8.0MIT
uvicorn0.54.0BSD-3-Clause
werkzeug3.1.9BSD-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:

PackageVersionLicence
@codemirror/autocomplete6.20.4MIT
@codemirror/commands6.11.1MIT
@codemirror/lang-markdown6.5.2MIT
@codemirror/lang-python6.2.1MIT
@codemirror/language6.13.1MIT
@codemirror/legacy-modes6.5.5MIT
@codemirror/state6.7.6MIT
@codemirror/view6.43.15MIT
@lezer/common1.5.4MIT
@lezer/highlight1.2.5MIT
@lezer/python1.1.19MIT
fflate0.8.3MIT
next16.4.2MIT
pyodide314.0.7MPL-2.0
react19.2.0MIT
react-dom19.2.0MIT
server-only0.0.1MIT
y-codemirror.next0.3.6MIT
y-protocols1.0.7MIT
yjs13.6.33MIT

In the MCP bridge

The Pythilo MCP bridge that lets an AI client join a room includes:

ComponentVersionLicenceNotes
MCP TypeScript SDK (@modelcontextprotocol)2.4.0Apache-2.0 (parts MIT and CC-BY-4.0)
Yjs, y-protocols, lib0MIT
Zod4.6.7MIT

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.