Skip to main content

Scan64

Play chess. Discover your blind spots. Train what you fail to see.

Scan64 is an open-source, local-first chess playing and learning platform. Play against computer opponents, study famous openings and games, practise tactics and endgames, analyse your matches, and follow structured training sessions—all within one application.

What makes Scan64 different is its personalized learning engine. Instead of merely showing engine evaluations and best moves, it studies your games over time to identify the threats, patterns, calculations, opening ideas, and behavioural habits you repeatedly overlook. It then turns those weaknesses into verified interactive exercises, progressive visual hints, and an adaptive training curriculum.

Scan64 uses engines such as Stockfish for authoritative analysis and can use human-like opponents such as Maia for realistic practice. Its headless backend produces portable LessonSpec objects, allowing web, mobile, desktop, voice, and physical-board applications to build their own learning experiences on top of the same engine.

Run locally

Prerequisites:

  • uv for the Python 3.12+ backend.
  • pnpm for the React web client.
  • Stockfish 18 or later, available as stockfish on PATH.

Clone and install both applications:

git clone https://github.com/Mathews-Tom/Scan64.git
cd Scan64
uv sync --locked
pnpm --dir apps/scan64-web install --frozen-lockfile

Start the API at http://127.0.0.1:8001 and the web client at http://127.0.0.1:5173:

scripts/run.sh

Open http://127.0.0.1:5173, choose Play Game, enter a player ID, and start a game. The active player identity is then retained locally. To exercise player-owned PGN import, choose Import PGN, paste this game, and select Import PGN:

[Event "Local game"]
[White "White"]
[Black "Black"]
[Result "*"]

1. e4 e5 *

SCAN64_DATABASE_URL accepts a SQLite database URL. The default is sqlite:///database.db, preserving the existing relative database.db location. Set it before running the script to store the database elsewhere:

SCAN64_DATABASE_URL="sqlite:////absolute/path/to/scan64.db" scripts/run.sh

Maia model weights

Scan64 can use Maia only with checkpoints provisioned by the operator. It does not bundle, download, cache, redistribute, or host Maia model weights. The licence and redistribution terms for the separately released Maia checkpoint files remain unresolved; upstream clarification is tracked in CSSLab/maia-chess#76. Operators must confirm their right to obtain and use any checkpoint before configuring it. Follow the operator provisioning guide for the local, fail-closed setup.

Language models are optional and are used only to verbalize verified analysis and provide conversational coaching. Chess legality, exercise validation, player modelling, and learning progress remain deterministic, inspectable, and available for fully local use.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scan64-0.2.0.tar.gz (979.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scan64-0.2.0-py3-none-any.whl (179.8 kB view details)

Uploaded Python 3

File details

Details for the file scan64-0.2.0.tar.gz.

File metadata

  • Download URL: scan64-0.2.0.tar.gz
  • Upload date:
  • Size: 979.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for scan64-0.2.0.tar.gz
Algorithm Hash digest
SHA256 46b8daa389094ab3693768e94d66332b5353db2a02dddfc345a8aeac1e94e862
MD5 968f1f462c4bf07df30c33f9c4accaf3
BLAKE2b-256 538c875e3dc931e58d402d3be40ff9fc9f06f2b142d09a31ee42e4b42faf9331

See more details on using hashes here.

File details

Details for the file scan64-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: scan64-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 179.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for scan64-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17ea2019a6a1f0b036bad0d39bb66c53184483f13ae6d3804f1dee9eea1de6cd
MD5 aea773463f07f69ff588a67c9abb1057
BLAKE2b-256 fdca3f530253c815d50e0e67e42fcd7f36227586698c5f8a17aaa22579262d0c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page