Build, explore, and train your chess opening repertoire.
Project description
Chess Opening Tool
Chess Opening Tool helps you build, explore, and train your chess opening repertoire. It’s free, open-source, and designed to run on all platforms — including desktop, Android, and iOS.
Overview
Unlike most chess software, Chess Opening Tool is transposition-aware: it automatically recognizes when the same position is reached through different move orders and merges them into a single entry in your opening tree.
All moves played on the board are recorded in a position tree. From any position, you can view possible continuations and quickly cycle through them.
Organizing Your Openings
Using PGN Files
Each opening tree is stored as a standard PGN file. You can:
- Import existing PGNs to merge them into your current tree (transpositions are resolved automatically).
- Open a PGN to make it your active tree — saving will overwrite that file.
- Export your current tree to share or back it up.
Importing vs Opening:
- Import adds the content of a PGN into your current tree.
- Opening replaces the current tree with the selected PGN.
Tabias (Tagged Positions)
A tabia is a named reference to a specific position — like a bookmark or key opening branch. You can:
- Assign a name to any position.
- Jump directly to it from the Tabia menu (
mkey).
Tabias are saved automatically inside the PGN (as game entries using the tabia name as the event). When saved, the main game and each tabia start where another tabia ends — forming a clear, connected structure.
Training Mode
Training mode lets you test yourself on your repertoire: you’re shown a position and must find the correct move(s).
- Toggle it at any point with
t. - Training starts from the current position.
- Once you find all correct moves in a position, it moves deeper into the tree.
- It first goes through all main lines, then the sub-variations.
This feature is designed for focused, manual training — it doesn’t track progress or use spaced repetition.
Usage / Keyboard Shortcuts
On desktop, the interface is fully keyboard-driven for a clean, distraction-free experience. Once you get used to it, this allows for an fast workflow. Of course, moves can also be played with the mouse.
| Key / Combination | Action |
|---|---|
| space, →, l | Next move |
| Shift + space, ←, h | Previous move |
| ↑, k | Cycle variants backward |
| ↓, j | Cycle variants forward |
| +, - | Promote/Demote selected variant |
| f | Flip board |
| i | Import PGN(s) |
| o | Open PGN |
| p | Move menu / peak moves during training |
| e | Export PGN |
| c | Copy FEN to clipboard |
| d | Delete last move |
| s | Save current tree |
| Shift + s | Save as... |
| t | Toggle training mode |
| m | Open Tabia menu |
| p | Open Move menu |
| n | New opening |
| q | Quit application |
You can also hover over the top or bottom edges of the board to reveal on-screen controls for navigation and other actions on desktop. On mobile, all controls are always visible.
Notes
- Your work is stored in standard PGN format, so it’s always portable and editable in other chess software.
- All positions and tabias are preserved between sessions.
- On mobile, equivalent actions are accessible via on-screen controls.
- Packaged release downloads are described in INSTALL.md.
Licensing
Chess Opening Tool is free and open source software licensed under the GNU General Public License v3.0.
This project includes third-party components:
- DejaVu Sans (DejaVuSans.ttf)
- License: DejaVu Fonts License
- Applies to: src/chess_opening_tool/gui/fonts/DejaVuSans.ttf
Packaged releases bundle further third-party components including chess board and piece artwork; see THIRD_PARTY_LICENSES.json in packaged releases.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chess_opening_tool-0.1.0.tar.gz.
File metadata
- Download URL: chess_opening_tool-0.1.0.tar.gz
- Upload date:
- Size: 426.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d213c884ec724d6ed3f93980efbfa5ea2b19ac8e5811c966f97a209bf20f2b92
|
|
| MD5 |
cd39ed9662972a305a4558c3a99137e7
|
|
| BLAKE2b-256 |
992915077b8749913e2792b3468084beef103cb37576a2acdfb496569005d21b
|
File details
Details for the file chess_opening_tool-0.1.0-py3-none-any.whl.
File metadata
- Download URL: chess_opening_tool-0.1.0-py3-none-any.whl
- Upload date:
- Size: 429.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42a8caa048af9d2b16cd7497d0711ee3e1498651e7bdd5fd8b215619d4e85723
|
|
| MD5 |
269d817903d275a130d0a0d909a092cf
|
|
| BLAKE2b-256 |
d6297a58689aed2af3ce86bb3874e8c299ca84efff2ee94b35d04518cf842e41
|