The Zen of Chess 🧘♂️
# One command setup - downloads everything automatically
python3 setup.pyThen add MonkFish to your chess GUI using MonkFish.sh as the engine command. See QUICKSTART.md for detailed setup instructions.
MonkFish is a chess engine that maintains perfect balance, only capitalizing on its opponent's missteps. Like a Zen master, it doesn't force advantages but rather lets players create their own downfall. Built on Stockfish's powerful evaluation, MonkFish chooses moves that maintain equality, making it a mirror that reflects your own chess journey. Every loss against MonkFish is a lesson in self-inflicted defeat. ♟️
- "Every move a meditation"
- "Victory through self-defeat"
- "The stillness before the fall"
A modified Stockfish engine that seeks positions with minimal advantage, playing the most equal continuation until the opponent creates winning chances through their own moves. Uses deep calculation and multiple principal variations to find the most balanced positions possible. see Technical Overview
"I was winning... I think I was winning... was I winning? No, I defeated myself."
- Raghav, 1300 Rated Player
"Played against it for 2 hours. Lost every game. Reviewed them all. It was just waiting... menacingly... before I blundered. Every. Single. Time."
- Magnus Carlsend, Definitely Not The Real Magnus
"The most passive-aggressive chess engine I've ever played."
- Weak Stockfish, Chess Engine
"Me: makes brilliant move MonkFish: I am one with the position Me: blunders queen MonkFish: The student becomes the teacher"
- Martin, Chess.com
python3 setup.pyThe setup script automatically:
- Downloads the correct Stockfish binary for your system
- Sets up all permissions
- Creates default configuration
- Tests that everything works
If you prefer the old method:
-
Prerequisites:
- Python 3.6+
- A UCI-compatible chess GUI
- Download stockfish binary from Official Stockfish Repository
-
Setup:
# Make files executable chmod +x stockfish chmod +x MonkFish.sh
- Cute Chess: Engines → Configure Engines → Add
- Arena Chess: Engines → Install New Engine
- Any UCI GUI: Add engine with these settings:
- Command:
/full/path/to/MonkFish.sh - Working Directory:
/full/path/to/MonkFish/folder - Protocol: UCI
- Command:
python3 uci.py
# Then type: uci, position startpos moves e2e4, go depth 2, quitEdit monkfish_config.json to customize MonkFish's zen level:
{
"engine": {
"skill_level": 3, // 0-20 (higher = stronger)
"drawing_threshold": 0.01 // Lower = more zen
}
}monkfish.py- Core engine logicuci.py- UCI interfaceconfig.py- Configuration systemuci_options.py- UCI options handlingMonkFish.sh- Shell script for GUI integrationsetup.py- Automatic setup scripttests/- Test suitestockfish- Downloaded automatically by setup
- "Stockfish not found": Run
python3 setup.py - "Permission denied": Run
chmod +x MonkFish.sh stockfish - Engine too strong/weak: Edit
skill_levelinmonkfish_config.json - Need help: Check QUICKSTART.md
Built on Stockfish, modified to achieve enlightenment through equality.
Note: Your defeat was within you all along. 🪞
