Pawno

Multiplayer chess in your terminal.

Pawno is a free, open-source chess game that runs in your terminal. Compete online against friends and colleagues, or locally against bot players.

Demo

Installation

If you don't already know what a terminal is, this probably isn't for you. Never mind, have you tried Lichess or Freechess instead?

Package managers

Homebrew

brew tap philbooth/pawno https://gitlab.com/philbooth/homebrew-pawno
brew install pawno

Scoop

scoop bucket add pawno https://gitlab.com/philbooth/scoop-pawno.git
scoop install pawno

Note the packaged binaries are unsigned right now, so you'll get a warning when running these.

Direct downloads

Debian/Ubuntu (x86)

curl -sSLO https://www.playpawno.com/pawno_amd64.deb
sudo dpkg -i pawno_amd64.deb

Debian/Ubuntu (arm)

curl -sSLO https://www.playpawno.com/pawno_aarch64.deb
sudo dpkg -i pawno_aarch64.deb

Red Hat/Fedora (x86)

curl -sSLO https://www.playpawno.com/pawno_x86_64.rpm
sudo rpm -i pawno_x86_64.rpm

Red Hat/Fedora (arm)

curl -sSLO https://www.playpawno.com/pawno_aarch64.rpm
sudo rpm -i pawno_aarch64.rpm

Other platforms

Pre-built binaries for other platforms are available on the releases page.

Build from source

  1. Install Go if you don't already have it.

  2. git clone https://gitlab.com/philbooth/pawno.git
    cd pawno
    make run

YOLO

curl -sSL https://www.playpawno.com/install.sh | sh

Usage

Run pawno in your terminal. After that, most things should be straightforward.

When you create a multiplayer game, you must share the join code with your opponent through other channels. Likewise if you want to join someone else's multiplayer game, you must ask them to send you the join code. In future it may be possible to share join codes from inside the client, but that possibility does not exist right now.

Note the multiplayer backend is pretty ruthless in handling lost connections currently. This is to minimize resource usage as I'm running on a small instance with a tiny database. If the server fails to receive a heartbeat from a client in a 1-minute window, the connection is deemed lost and the game is aborted with no possibility of reconnection. Aborted games are awarded to the opposing player as a win by resignation.

The game persists state locally as JSON. You can delete this file if you need to clear state, or edit it if you're unhappy with the leaderboard. 🙂

If have any problems, please open an issue!

Acknowledgements

Pawno is free open source software (FOSS), licensed under the AGPL, version 3. You can view, fork and clone the source code on GitLab.

Development was LLM-assisted. The user interface was 100% vibe-coded, with Claude Code. The core chess logic was 100% written the old way, with Vim and stupid meat fingers. The rest of it was a joint effort.

The chess puzzles were copied from the Lichess open database, which is in the public domain (CC0 1.0 Universal).