Source mirror · byte-identical 2026-10-22

Offline Chat — the actual files

Not a re-export and not a rewrite: these are the same bytes that run on the host, copied verbatim. Download them, put them in one folder, run one command.

Files

offline_chat_v2.py

1,627 lines · 70,888 bytes
sha256 3d265bb30d11d18a53c80b8c08cd198dabab8e37e2edcbcb3ee8da2807fdcf83

The server: HTTP + SSE, room state, uploads, TLS (openssl or pure-Python cert), password gate, admin panel, and the whole client UI embedded as a string.

start_chat.py

159 lines · 5,665 bytes
sha256 55a0cf9830a49e4d7d9af9b0eff26d67e6fca33ca7c4970c7d7eb37bdc1f9934

The launcher: checks the network situation, explains the school/hotspot/cable options, then execs the server with the right flags.

Run it

mkdir offline-chat && cd offline-chat
# put both .py files here, then:

python3 offline_chat_v2.py                 # http://<your-lan-ip>:9001
python3 offline_chat_v2.py --tls           # https, generated cert
python3 offline_chat_v2.py --password p    # room password
python3 offline_chat_v2.py --stealth       # port 443 + tls + password
python3 start_chat.py                      # guided launcher
Requirements: Python 3.9 or newer. Nothing else. No pip, no virtualenv, no npm. Standard library only — verified on Python 3.9.6 and 3.14, with and without openssl on the PATH.
This is a LAN chat. Every device has to be able to reach the host's IP: same WiFi, a phone hotspot, or a direct cable. It never opens an outbound connection, so it cannot span two different networks. The TLS certificate is self-signed — the browser warning is expected. Guest files are written to the host's uploads/ folder; there is no moderation beyond the host's delete button.

Integrity

To confirm the download matches what is described on the analysis page:

shasum -a 256 offline_chat_v2.py start_chat.py
# 3d265bb30d11d18a53c80b8c08cd198dabab8e37e2edcbcb3ee8da2807fdcf83  offline_chat_v2.py
# 55a0cf9830a49e4d7d9af9b0eff26d67e6fca33ca7c4970c7d7eb37bdc1f9934  start_chat.py
Read the build analysis Open the UI demo