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.
Features
Built around USCF tournament rules, ChessPair handles the hard parts so you can run a smooth tournament.
Recursive constraint-satisfaction solver that finds valid pairings even in complex score groups: just like professional software.
Modified Median, Solkoff, Cumulative, Opposition Cumulative, and Sonneborn-Berger: all computed correctly from final scores.
Unlimited sections (Open, U1800, Scholastic, etc.) each with independent pairings, standings, and tiebreaks.
Tracks white/black balance per player, prevents triple-color streaks, and assigns colors optimally on each board.
Paste a roster directly from a spreadsheet. Auto-assigns each player to the lowest section they qualify for by rating.
Round-by-round standings update instantly as results come in. Export to CSV for printing or uploading to USCF.
Automatically awards half-point or full-point byes to the lowest eligible player who hasn't yet received one.
Export player lists, pairings sheets, and final standings to CSV for printing or USCF rating submission.
No account, no cloud, no internet required. Tournament data stays on your machine and opens instantly.
Preview
A modern dark interface designed for quick data entry, not distraction.
Documentation
Full documentation for tournament directors and developers contributing to the project.
Windows, macOS, and Linux install instructions. No Python required for end users: just download and run.
Set up a tournament, add players, generate pairings, enter results, and view standings in under 5 minutes.
Detailed reference for Swiss pairing rules, color assignments, floaters, byes, and withdrawals.
How Modified Median, Solkoff, Cumulative, and Sonneborn-Berger are computed with worked examples.
Clone the repo, set up the Python environment, run from source, and build distributable binaries.
Found a bug? Open an issue on GitHub. Feature requests welcome: this is a community project.
ChessPair is distributed as a standalone executable: no Python installation needed.
ChessPair-Setup.exe, run it, follow the installer.ChessPair.dmg, open it, drag to Applications.python main.py after installing dependencies.Releases
All releases are built automatically from open-source code. Verify integrity with SHA-256 checksums. Learn more →
Multi-section Swiss pairing, backtracking engine, all USCF tiebreaks, CSV export, bye management.
All releases and SHA-256 checksums available on GitHub Releases.