The reasoning

Why this exists

Correspondence chess is not a worse version of online chess; it is a different game. Days per move, one deliberate decision at a time, played against a person you know rather than a rating pool. Online platforms did not improve that game, they replaced it: ratings, clocks, engines and accounts arrived together and the quiet version disappeared underneath them.

What actually killed postal chess was never preference, it was friction. Keeping the board state straight across letters, catching an illegal move, remembering whose turn it is across five simultaneous games: that is precisely the bookkeeping software is for. Postal Gambit does that bookkeeping and refuses to do anything else. It keeps the games, enforces the rules of chess including the draws the board declares by itself and writes each move as a ready-to-send email in whatever mail client you already use.

The email itself is the protocol, built to be read by a human first and a parser second: a short note, an ASCII board and a delimited block carrying the entire game state. Because every message carries the whole game, a lost email never corrupts anything and the two sides can never silently diverge; a disagreement is detected and reported. An opponent without the app can reply with a bare move like Nf6 and it imports fine.

Two refusals are structural rather than settings. Your games never touch the network: the test suite forbids network imports everywhere except one disclosed module, whose single job is an anonymous daily ask of GitHub releases for whether a newer version exists, so the app cannot phone home or fail on someone else's server and nothing about you or your games ever leaves your machine. And there is no engine, ever: correspondence chess died once already from machines. Underneath sits the usual engineering bar: a clean layered core with python-chess quarantined behind a port, a 100% coverage gate outside the UI and one plain JSON file per game with atomic writes.

Questions a chess player actually asks

Answered plainly. Where the answer is no, we say so.

Does my opponent need the app?

No. Every email is readable text. An opponent without the app can reply with a plain move like Nf6 and it imports fine; they just miss the conveniences.

What email account do I need?

Any account you already use. Postal Gambit never sends anything itself: it opens a pre-filled draft in your own mail client or copies the email to your clipboard and you press send.

What happens if an email gets lost?

Nothing is corrupted. Every email carries the entire game state, so the next one that arrives catches you up. If the two sides ever disagree, the divergence is detected and reported, never silently resolved.

Can it stop my opponent cheating?

No. Nothing can. Correspondence chess has always been played on trust. What Postal Gambit guarantees is that every move is legal; whether a human chose it is between you and your friend.

Where do my games live?

In plain JSON files under your home directory, one per game, portable and inspectable. Delete the folder and they are gone; copy it and they are backed up.

Is it really offline?

Your games and moves never touch the network: only your own mail client sends your email. The app makes exactly one outbound call of its own, checked rather than promised: an anonymous daily ask of GitHub releases for whether a newer version exists, with an update prompt you can download, skip or defer. The test suite forbids network code anywhere else in what you install, the setup program included; it also asserts that single exemption cannot widen.

Built to be trusted

A small app with a strict engineering bar, because a years-long game deserves software that will not lose it.

✅

Tested to the last line

The core logic carries a 100% test-coverage gate, as does the part of the Windows setup program that touches your machine. The build fails if a single untested line lands.

🧱

Architecture that holds

A clean layered core whose boundaries are enforced by automated structural tests, including the rule that no network code can creep into anything you install, the setup program included.

📜

A versioned wire format

The email format is specified, versioned and frozen once released, with conformance tests mirroring the spec section by section. Your games outlive any one version of the app.

🪶

Open and forkable

GPL-3.0 with the full source on GitHub. If it ever stalls, anyone can read it, fork it or carry it on. Your games are plain files either way.

Python and PySide6 python-chess rules core Local JSON, no database Games never touch the network GPL-3.0

A quiet promise

Some things Postal Gambit will not do, on purpose.