# ♟️ ShellMate **SSH into chess mastery.** ```bash 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 ```bash # 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 ```bash git clone https://github.com/ghndrx/shellmate.git cd shellmate docker compose up -d ``` Then connect: ```bash ssh -p 2222 play@localhost ``` See [docs/self-hosting.md](docs/self-hosting.md) for configuration options. ## 📝 License MIT --- **Website:** [shellmate.sh](https://shellmate.sh) **Game:** `ssh play@shellmate.sh` *Built with ♟️ by [Greg Hendrickson](https://gregh.dev)*