Sabertooth

A lightweight UCI chess engine

What is Sabertooth?

Sabertooth is a lightweight and free chess engine written in C. It is fully UCI-compatible, for use with your favorite chess GUI. It currently plays at moderate-to-amateur strength, and improves every day!

This is an open source project. The code is located here.

Is it compatible with my system?

Sabertooth works with Mac OS and Linux. It doesn't presently support Windows, but support is coming soon! (The only incompatible library is POSIX threads.) Sabertooth requires a 64-bit computer.

How can I get Sabertooth?

Download it using the link above! Since Sabertooth is a UCI engine and doesn't include a GUI, you will need your own. I recommend XBoard, which has an excellent Mac port.

First, download the engine from the link above, and put it somewhere you'll remember. Then download the XBoard package for Mac or Linux.

After you install XBoard, open it, and select Engine->Load New First Engine from the menu. In the dialog box, point XBoard to the directory of the engine file, like this:

Select the engine directory and name in XBoard

The engine command is ./ followed by the name of the engine file. Here, it is ./sabertooth.

Be sure you have checked the "UCI" box.

Version History

Version 0.1.4bmac/linux


- En passant capture
- Bugfix that allows transposition table size configuration
- Bugfix involving illegal move selection at search depth zero

Version 0.1.3mac/linux


- Extended futility pruning
- Fixed a bug causing blunders in quiescence search
- More efficient check detection
- New time managment algorithm

Version 0.1.2mac/linux


- Various critical bugfixes reduce blunders
- Smaller evaluation structures give more efficient ttable usage
- New ttable behavior when filled
- Non-pthread based search worker termination
- Search extensions framework

Version 0.1.1mac/linux


- Patched a severe memory leak
- Fixed a transposition table race condition
- Fixed a move generator bug involving castling

Version 0.1mac/linux


- First stable release
- Alpha-Beta search with transposition tables and MTD-F
- MVV-LVA and best-first heuristic
- Quiescence search
- UCI Protocol (with rudimentary time managment and FEN parsing)
- Array-based move generator (excluding en passant)

Authors and Contributors

Sabertooth is developed by Dylan D. Hunn (@dylhunn).

Please report any bugs you discover to me!