mirror of
https://github.com/ghndrx/shellmate.git
synced 2026-02-10 14:55:08 +00:00
- Add CI/Deploy status badges - Add prominent links to website and SSH endpoints - Add environments table (prod/staging/dev) - Add contributing section
113 lines
2.9 KiB
Markdown
113 lines
2.9 KiB
Markdown
# ♟️ ShellMate
|
|
|
|
**SSH into chess mastery.**
|
|
|
|
[](https://github.com/ghndrx/shellmate/actions/workflows/ci.yml)
|
|
[](https://github.com/ghndrx/shellmate/actions/workflows/deploy.yml)
|
|
|
|
```bash
|
|
ssh play@shellmate.sh
|
|
```
|
|
|
|
🌐 **Website:** [shellmate.sh](https://shellmate.sh)
|
|
🎮 **Play:** `ssh play@shellmate.sh`
|
|
📚 **Learn:** `ssh learn@shellmate.sh`
|
|
👀 **Watch:** `ssh watch@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.
|
|
|
|
## 🔗 Environments
|
|
|
|
| Environment | Website | SSH |
|
|
|-------------|---------|-----|
|
|
| **Production** | [shellmate.sh](https://shellmate.sh) | `ssh play@shellmate.sh` |
|
|
| **Staging** | [staging.shellmate.sh](https://staging.shellmate.sh) | `ssh play@staging.shellmate.sh` |
|
|
| **Development** | [dev.shellmate.sh](https://dev.shellmate.sh) | `ssh play@dev.shellmate.sh` |
|
|
|
|
## 🤝 Contributing
|
|
|
|
1. Fork the repo
|
|
2. Create a feature branch (`git checkout -b feature/awesome`)
|
|
3. Commit changes (`git commit -m 'Add awesome feature'`)
|
|
4. Push to branch (`git push origin feature/awesome`)
|
|
5. Open a PR to `develop`
|
|
|
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
|
|
|
## 📝 License
|
|
|
|
MIT
|
|
|
|
---
|
|
|
|
*Built with ♟️ by [Greg Hendrickson](https://gregh.dev)*
|