Free UCI / WinBoard chess engines

Written in 2001.
Still thinking.

Hagrid and Snitch were written between 2001 and 2006 – from a first buggy 1800 Elo prototype to an engine playing around 2350. Twenty years later, Snitch 2.0 learned to evaluate with a neural network. Both are free and run in any UCI or WinBoard GUI – and the game on the board is a real one.

Hagrid 0.7.56 – Snitch 1.6.1 · Sicilian (B31) · played 25 Oct 2026
The engines

Hagrid & Snitch

Two independent engines with very different internals. Hagrid came first and is fast; Snitch is a complete rewrite – slower, but stronger. Both speak UCI and WinBoard and ship without a GUI. Speeds are measured on an Intel Core i7-12700T.

Snitch

v2.0.0 · October 2026

A complete rewrite with piece lists, table-based move generation, attack-based king safety, evaluation-based pruning and book learning. Version 2.0 replaces the hand-written evaluation with an NNUE network and runs natively on Windows, Linux and ARM.

~2350Est. Elo (1.0)
1.91Mnodes/s (2.0)
UCI · WBProtocol

Hagrid

v0.7.56 · July 2002

The first engine. Bitboards and attack boards, Nalimov tablebase support, UCI and WinBoard pondering. Fast – and the one that started it all.

~2250Est. Elo
2.5Mnodes/s
UCI · WBProtocol
News & history

From 1800 to 2350 Elo

Five years of evenings, bugs and small victories – newest first.

Snitch 2.0.0 – now with NNUE

Twenty years after 1.6.2, Snitch evaluates positions with an NNUE network instead of hand-tuned terms. Native 64-bit builds for Windows and Linux (AVX2, plus a POPCNT fallback for very old CPUs) and for Linux on ARM64, e.g. Raspberry Pi 4/5.

A new home page

This site gets its first redesign since 2002. Both engines still play: the replay at the top is Hagrid 0.7.56 against Snitch 1.6.1, played on 25 October 2026 at 10 s + 0.1 s.

Faster x64 build

The previous 64-bit compile was accidentally a debug build. No version number change.

Snitch 1.6.2

WinBoard protocol fixes only – no evaluation or search changes.

Snitch 1.6.1

  • Asymmetry bugs in rook and king safety evaluation fixed
  • WinBoard protocol bug fixed – this one haunted Snitch for quite a while and made it freeze at the end of a game
  • Outpost and space evaluation added, knight and bishop evaluation tuned

Snitch 1.4.5

MultiPV mode added, several minor search and evaluation tunings, general code cleanup.

Snitch 1.2.4

Fixes a time control bug introduced in 1.2.x that could make Snitch forfeit on time.

Snitch 1.2.2

Minor bug fixes and evaluation changes, general speedup.

Snitch 1.0.8

Fixed a bug that sometimes made Snitch hang after the end of a game. Better move ordering, changed quiescence pruning.

Snitch 1.0.4

Removed super-verbose UCI info output that slowed Snitch down under some UCI GUIs.

Snitch 1.0.0

A completely new engine – slower but stronger than Hagrid. See the internals for a detailed comparison.

Hagrid 0.7.56

Minor bug fixes and evaluation tuning – the final public Hagrid.

Hagrid 0.7.47

UCI fix: Hagrid pondered only with the latest Fritz interface. Now pondering works with other UCI GUIs as well.

Hagrid 0.7.45

WinBoard pondering added, evaluation tuning, several minor bugs removed.

Hagrid 0.7.2

Nalimov tablebase support (compressed or uncompressed), pawn hashing bug fixed, evaluation tuning – plays much stronger than before.

Hagrid 0.6.34

Fixed a crash with incremental time controls under WinBoard. New or fixed WinBoard features: move now, analyze, draw claims on threefold repetition and the 50-move rule, resigning.

Big opening book

A big opening book for Hagrid becomes available.

Hagrid 0.6.32

Fixed a bug in the hashtable update and replaced a broken book file.

This site is born

…to make Hagrid available to the public.

Speaking UCI

The UCI protocol is implemented so Hagrid runs under the Fritz GUI. By the end of March it plays somewhere between 2100 and 2200 Elo.

Hagrid gets a name

Mostly WinBoard features – the only real improvement is null-move pruning, worth several Elo. After months of developing a nameless engine it needs a name: Hagrid is born.

The first running version

Full of bugs – playing around 1800 Elo, or crashing. Weeks of bug hunting later, by the end of 2001, a WinBoard engine plays reasonable chess at about 2000 Elo.

First interest in computer chess

A first idea – keeping the complete game tree in memory – does not go well. A few days of reading about how it is really done later, the first own engine is under way.

For developers

Internals

A short overview of the techniques used in my engines, rated by their impact on playing strength – based on my own experience. Snitch 2.0.0 keeps the search of 1.x but replaces the hand-written evaluation with an NNUE network.

TechniqueHagrid 0.7.56Snitch 1.0.0Snitch 2.0.0Importance
Search
Alpha-beta / PVSyesyesyes
Hashtablesingle (depth)double (depth, always)double (depth, always)
Null moveyes (R=2)yes (R=3,2)yes (R=3,2)
Aspiration searchyes (sophisticated)yesyes
Quiescence pruningyesyesyes
Special eval-based pruningnoyesyes
Futility pruningyesyesyes
Lazy evalyesyesno
Fail-high reductionsyeskind ofkind of
Endgame tablebasesyesyesyes
Opening bookyesyesyes
Book learningnoyesyes
Checks in quiescencenoyesyes
SEEsometimesnono
Pawn hashyes (basic)yes (basic)no
Singular extensionsnonononegative
Move ordering
MVV/LVAyesyesyes
Killer movesyesyesyes
History heuristicyesyesyes
Knowledge-basednoyesyes
SEE-based orderingnonono
Evaluation
NNUE (768 → 2×256 → 1, AVX2)nonoyes
Materialyesyesyes (NNUE)
Square controlnoyesno (NNUE)
Pawnsyesyesno (NNUE)
King safetyyes (basic)yes (attack-based)no (NNUE; king-danger proxy for search)
Piece-square tablesyesyesno (NNUE)
Rooksyesyesno (NNUE)
Bishopsyesyesno (NNUE)
Endgame knowledgebasicbasicbasic
Board representation & move generation
Piece listsyesyesyes
Bitboardsyesnono
Attack tablesnoyesyes
Move generator based onbitboards, attack boardspiece lists, tablespiece lists, tables
Move undoyesnono
Attack boardsyesnono
Plain 8×8 boardnoyesyes
Generated movespseudo-legallegallegal
Result
Speed (Athlon XP 1700)700 kn/s300 kn/s–
Speed (Core i7-12700T)2.5 Mn/s1.75 Mn/s (1.6.2)1.91 Mn/s
Estimated Elo22502350+127 vs. 1.6.2 (measured)

Importance: no measurable gain … essential; “negative” means it did not pay off.

Download

Get the engines

Engines only – no GUI included. Load them into any UCI or WinBoard interface and set the working directory to the unpacked folder. On x64, use the AVX2 build – it runs on any Intel Haswell / AMD Zen or newer, i.e. practically every PC from the last ten years. The slower POPCNT build is only meant for very old CPUs without AVX2.

Older versions

Free GUIs

Computer chess resources