Skip to main content
                                  $$\       $$\   $$\
                                  $$ |      \__|  $$ |
 $$$$$$\   $$$$$$\  $$$$$$\$$$$\  $$$$$$$\  $$\ $$$$$$\
$$  __$$\  \____$$\ $$  _$$  _$$\ $$  __$$\ $$ |\_$$  _|
$$ /  $$ | $$$$$$$ |$$ / $$ / $$ |$$ |  $$ |$$ |  $$ |
$$ |  $$ |$$  __$$ |$$ | $$ | $$ |$$ |  $$ |$$ |  $$ |$$\
\$$$$$$$ |\$$$$$$$ |$$ | $$ | $$ |$$$$$$$  |$$ |  \$$$$  |
 \____$$ | \_______|\__| \__| \__|\_______/ \__|   \____/
$$\   $$ |
\$$$$$$  |
 \______/
                    $$\           $$\
                    \__|          \__|
 $$$$$$\   $$$$$$\  $$\  $$$$$$\  $$\ $$$$$$$\   $$$$$$\
$$  __$$\  \____$$\ $$ |$$  __$$\ $$ |$$  __$$\ $$  __$$\
$$ /  $$ | $$$$$$$ |$$ |$$ |  \__|$$ |$$ |  $$ |$$ /  $$ |
$$ |  $$ |$$  __$$ |$$ |$$ |      $$ |$$ |  $$ |$$ |  $$ |
$$$$$$$  |\$$$$$$$ |$$ |$$ |      $$ |$$ |  $$ |\$$$$$$$ |
$$  ____/  \_______|\__|\__|      \__|\__|  \__| \____$$ |
$$ |                                            $$\   $$ |
$$ |                                            \$$$$$$  |
\__|                                             \______/

                       ___   __
                      / _ \ / /_
                     | | | | '_ \
                     | |_| | (_) |
                      \___(_)___/

License: GPL v3 Python Version PyQt6 Discord Ask DeepWiki

Important: Gambit Pairing is in alpha development. Features and stability are not guaranteed.

Join our Discord

Gambit Pairing is a desktop application for managing Swiss-system chess tournaments. It provides a modern graphical user interface (GUI) built with PyQt6, supporting USCF-style pairings, tiebreaks, and tournament management.

Features

  • Modern User Interface

    • Polished, high-contrast, accessible UI with custom style-sheets.
    • Tabbed interface: Players, Tournament Control, Standings, Cross-Table, History Log.
    • Tooltips, context menus, and responsive layouts.
    • Print preview dialogs for pairings and standings.
  • Player Management

    • Add, edit, withdraw/reactivate, and remove players.
    • Manage detailed player info: name, rating, gender, date of birth, phone, email, club, federation.
    • Import/export player lists/details from/to CSV or text files.
  • Tournament Setup

    • Configure number of rounds and tiebreak order (Median, Solkoff, Cumulative, etc.).
    • Save/load tournaments to/from disk (.json files, JSON format).
    • Full tiebreaker configuration with drag-and-drop order in settings.
  • Swiss Pairings

    • Automated pairings for each round, avoiding rematches and balancing colours.
    • Manual adjustment of pairings before results are entered (with dialog).
    • Bye assignment according to USCF rules, including handling of inactive/withdrawn players.
  • Results Entry

    • Enter round results via an interactive table with quick result buttons.
    • Auto-set results for inactive players.
    • Undo last round's results.
  • Standings & Tiebreaks

    • Standings table with configurable tiebreak columns.
    • Cross-table view showing all results.
    • Tiebreaker legend in printouts.
    • Support for Median, Solkoff, Cumulative, Sonnenborn-Berger, Most Blacks, and more.
  • Print & Export

    • Print pairings, standings, or player lists directly from the application.
    • Print preview and printer selection supported.
    • Export standings and player lists to CSV or text.
  • History & Logging

    • Detailed history log of actions, pairings, and results.
    • Exportable log.
    • Logging to file and console for debugging.
  • Update Checker

    • Built-in update checker for packaged releases.
    • Modern dialogs for update prompts and progress.
    • Automatic and manual update checks.

Documentation

Downloads

Automatic Releases

Pre-built executables and installers are automatically created for each release:

  • Windows MSI Installer - Full installation with Start Menu shortcuts
  • Windows Portable - Single-file executable, run directly
  • Windows Directory - Faster startup, extract and run
  • Linux - Executable for Linux x64 systems
  • macOS - App bundle for macOS x64 systems

Visit the Releases page to download the latest version.

Build Status

Build Windows Release

Requirements

To install with pip, there is a helper sh script, ensure-all-dependancies.sh

it will parse the pyproject.toml and install all the runtime and development dependancies.

Usage

  1. Install the application:
  1. Create or Load a Tournament:

    • Use "File > New Tournament..." or "File > Load Tournament..." to start.
    • Configure rounds and tiebreaks in "Settings".
  2. Add Players:

    • Enter player details (name, rating, gender, etc.) and click "Add New Player...".
    • Import players from CSV via "File > Import Players from CSV...".
    • Edit, withdraw/reactivate, or remove players via right-click context menu.
  3. Start Tournament:

    • Click "Start Tournament" when ready.
    • No further player additions/removals after starting.
  4. Pairings and Results:

    • Prepare next round and enter results in the pairings table.
    • Use quick result buttons or select from the dropdown.
    • Manually adjust pairings if needed (right-click pairing row).
    • Undo last round's results if necessary.
  5. Standings & Cross-Table:

    • View current standings and tiebreaks in the Standings tab.
    • View all results in the Cross-Table tab.
  6. Print:

    • Print pairings, standings, or player lists via the "File > Print..." menu.
    • Use print preview and select your printer before printing.
  7. Export & Save:

    • Export standings or player lists via the File menu.
    • Save or load tournaments at any time.
  8. History:

    • Review all actions and results in the History Log tab.
  9. Check for Updates:

    • Use "Help > Check for Updates..." to check for new versions (packaged releases only).

    Notes

  • The pairing algorithm follows USCF-style Swiss rules, including color balancing and bye assignment.
  • Tiebreak order is fully configurable and reflected in the standings and printouts.
  • Manual pairing adjustments are logged and cannot be undone automatically.
  • Tournament data is saved in .json files (JSON format).
  • This is still an alpha; please report bugs or suggestions via Discord or make an issue on Github

License

This project is open source and available under the GPL-3.0-or-later License: GPL v3

Screenshots

Below are some example screenshots of Gambit Pairing in action.

About Dialog About Dialog

Tournament Control Tab Main Tournament Control

Player Manager Tab Player Tab

Standings Tab Standings Tab

Cross-Table Tab Cross-Table Tab

History Log Tab History Log Tab

Print Dialog Print Dialog

Manual Pairing Dialog Manual Pairing Dialog

                                                                 ↑↑↑↑↑↑↑    ↑↑↑↑↑↑↑↑
                                                          ↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑
                                                       ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                               ↑↑↑↑↑↑↑↑↑↑↑↑↑↑         ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                              ↑↑↑↑↑↑↑↑↑↑↑↑   ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                             ↑↑↑↑↑↑↑↑↑↑↑   ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                             ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                            ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                            ↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑   ↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                           ↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑     ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                       ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                                              ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                                ↑↑↑↑                            ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                              ↑↑↑                               ↑↑  ↑↑↑↑↑↑↑↑↑↑↑↑   ↑↑↑↑↑↑↑↑↑↑↑
                           ↑↑↑↑           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑      ↑↑    ↑↑↑↑↑↑↑↑↑↑↑↑
                         ↑↑↑↑↑       ↑↑↑↑↑↑↑↑                   ↑↑    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                       ↑↑↑↑↑↑       ↑↑↑                         ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                     ↑↑↑↑↑↑↑↑      ↑↑↑                          ↑        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                    ↑↑↑↑↑↑↑↑↑      ↑↑        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑         ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                   ↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                   ↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑              ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑                 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑                    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑      ↑↑↑              ↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑    ↑↑↑↑↑              ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑  ↑↑↑↑↑↑↑              ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑       ↑↑↑↑↑↑↑↑↑↑      ↑↑      ↑↑     ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑      ↑↑↑                      ↑↑      ↑↑     ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑       ↑↑↑                     ↑↑      ↑↑    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑↑       ↑↑↑↑↑↑                 ↑↑      ↑↑   ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                  ↑↑↑↑↑↑↑↑↑↑↑↑↑          ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑      ↑↑
                   ↑↑↑↑↑↑↑↑↑↑↑↑↑↑                                   ↑↑
                   ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑                                 ↑↑
                    ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                     ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                      ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                        ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

Metadata

Release files for gambit-pairing 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gambit-pairing 0.7.0
File Size Uploaded
gambit_pairing-0.7.0.tar.gz 323.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gambit-pairing 0.7.0
File Interpreter ABI Platform
gambit_pairing-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 689.2 kB

Release files / gambit_pairing-0.7.0.tar.gz

Download URL gambit_pairing-0.7.0.tar.gz
Size 323.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1c81cd56a0fab6139b11bfa93d2aa50fa5fe4dd0a0a0b1c3ce0575a5a5bf3e66
BLAKE2b-256 checksum
How to use checksums
748d24400ddbc5ad1ff9000aff30f6ece54ae1b23523dbb61607bb56a5381350
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 23, 2026.

Transparency log

Release files / gambit_pairing-0.7.0-py3-none-any.whl

Download URL gambit_pairing-0.7.0-py3-none-any.whl
Size 365.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73d6a668bc5ba8d98ad44a753e4e5bae54303e6657b5e0816970b27f3064a942
BLAKE2b-256 checksum
How to use checksums
01d56fa5c412c993dac0deb654317e896b9844e2a3ad8311124e22f45dec5794
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jan 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.4

2 release 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