Greg Hendrickson 19a7fcfb0e Fix: remove invalid set_terminal_size_handler call
asyncssh SSHServerProcess doesn't have that method. Simplified
input handling - now updates size on each keypress instead.
2026-01-27 18:41:12 +00:00
2026-01-27 17:11:58 +00:00
2026-01-27 15:12:59 +00:00

♟️ ShellMate

SSH into chess mastery.

ssh play@shellmate.sh

Experience chess in your terminal. Play against AI, challenge friends, or master the game with interactive tutorials.

Features

🎮 Game Modes

  • vs AI — Challenge Stockfish at adjustable difficulty (beginner → grandmaster)
  • vs Player — Real-time PvP matchmaking with ELO ratings
  • vs Friend — Private rooms with shareable codes

📚 Learn Mode

  • Interactive Tutorials — From absolute basics to advanced tactics
  • Move Analysis — AI explains why each move matters
  • Puzzle Rush — Tactical training exercises
  • Opening Explorer — Learn popular openings with explanations
  • Endgame Drills — Master critical endgame patterns

🏆 Compete

  • Global ELO leaderboard
  • Game history & replay
  • Achievements & stats

🚀 Quick Start

# Play a game
ssh play@shellmate.sh

# Learn chess
ssh learn@shellmate.sh

# Spectate live games
ssh watch@shellmate.sh

🖥️ Controls

Key Action
Arrow keys Navigate board
Enter Select/Move piece
h Get hint
u Undo move
n New game
r Resign
q Quit

🏗️ Tech Stack

  • Python 3.11+ with type hints
  • Textual — Modern TUI framework
  • python-chess — Chess logic & notation
  • Stockfish — AI engine
  • asyncssh — SSH server
  • Redis — Matchmaking & sessions
  • PostgreSQL — User data & game history

🐳 Self-Hosting

git clone https://github.com/ghndrx/shellmate.git
cd shellmate
docker compose up -d

Then connect:

ssh -p 2222 play@localhost

See docs/self-hosting.md for configuration options.

📝 License

MIT


Website: shellmate.sh
Game: ssh play@shellmate.sh

Built with ♟️ by Greg Hendrickson

Description
No description provided
Readme 142 KiB
Languages
Python 99.3%
Dockerfile 0.7%