Open Source · Free Forever · MIT License

Swiss pairing for
serious tournaments

ChessPair is a free, open-source USCF Swiss pairing system for tournament directors. Full backtracking engine, all standard tiebreaks, multi-section support: runs entirely offline.

Also available for other platforms on the releases page.

USCF Swiss Pairing Runs Offline No Installation Required MIT License
5
Tiebreak Systems
∞
Sections Supported
100%
Offline Capable
MIT
Open License
0
Cost

Everything a TD needs,
nothing they don't.

Built around USCF tournament rules, ChessPair handles the hard parts so you can run a smooth tournament.

Backtracking Pairing Engine

Recursive constraint-satisfaction solver that finds valid pairings even in complex score groups: just like professional software.

Full USCF Tiebreaks

Modified Median, Solkoff, Cumulative, Opposition Cumulative, and Sonneborn-Berger: all computed correctly from final scores.

Multi-Section Support

Unlimited sections (Open, U1800, Scholastic, etc.) each with independent pairings, standings, and tiebreaks.

Color Balancing

Tracks white/black balance per player, prevents triple-color streaks, and assigns colors optimally on each board.

Bulk Player Import

Paste a roster directly from a spreadsheet. Auto-assigns each player to the lowest section they qualify for by rating.

Live Wall Chart

Round-by-round standings update instantly as results come in. Export to CSV for printing or uploading to USCF.

Bye Management

Automatically awards half-point or full-point byes to the lowest eligible player who hasn't yet received one.

CSV Export

Export player lists, pairings sheets, and final standings to CSV for printing or USCF rating submission.

Fully Offline

No account, no cloud, no internet required. Tournament data stays on your machine and opens instantly.

Clean. Fast. Focused.

A modern dark interface designed for quick data entry, not distraction.

ChessPair 1.0.0: Spring Open 2025
Navigation
Setup
Players
Pairings
Results
Standings
Sections
Open
U1800
U1600
Round 3 Pairings: Open Section 8 boards
Bd
White
Rating
Black
Rating
Result
1
Smith, J.
1892
Kim, H.
1845
1–0
2
Patel, A.
1821
Torres, M.
1799
½–½
3
Chen, L.
1763
Wang, R.
1740
-
4
Russo, P.
1711
Davis, T.
1685
-
Generate Round 4 ›
Export CSV

Everything you need to know.

Full documentation for tournament directors and developers contributing to the project.

Installation

ChessPair is distributed as a standalone executable: no Python installation needed.

Windows
Download ChessPair-Setup.exe, run it, follow the installer.
macOS
Download ChessPair.dmg, open it, drag to Applications.
Linux
Run from source: python main.py after installing dependencies.

Quick Start

  1. Open ChessPair → Setup tab → fill in tournament name, rounds, date.
  2. Go to Sections, add sections with rating ceilings (e.g., U1800 ≤ 1799).
  3. Go to Players → Add players manually or paste a CSV roster. Players are auto-assigned to sections.
  4. Go to Pairings → Click Generate Round 1.
  5. Go to Results → Enter results for each board.
  6. Repeat steps 4–5 for each round. Standings updates automatically.

Developer Setup

# Clone the repository git clone https://github.com/Aweswomedude1234/chess-pairing.git cd chesspair # Create virtual environment python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Run from source python main.py # Build distributable pyinstaller chesspair.spec

Download ChessPair.

All releases are built automatically from open-source code. Verify integrity with SHA-256 checksums. Learn more →

v1.0.0

Initial Release: Full Swiss Engine

Multi-section Swiss pairing, backtracking engine, all USCF tiebreaks, CSV export, bye management.

2025-01-01

All releases and SHA-256 checksums available on GitHub Releases.