I have some positions in my games which engine analysis indicates that some lines (not the ones I played) lead to a checkmate in 6 or 7 or 10 moves. But normal engines are not reliable here so I use ChestUCI as a proofing tool with some success till now.

Is there anything better and faster than ChestUCI that is also free? For those who don't doubt stock fish Please check Here https://talkchess.com/forum3/viewtopic.php?f=2&t=36714&start=10 and Here https://github.com/vondele/matetrack

  • 1
    Stockfish does the job nice enough...
    – Stevo
    Oct 28, 2023 at 10:44
  • 3
    @WassimSaeed is there a position where you find Stockfish fails? If so, it would be valuable to edit the question to add that so people can better understand your motivation here. Oct 28, 2023 at 19:09
  • 3
    "normal engines are not reliable here" A few example positions would be helpful and greatly improve this post. Oct 28, 2023 at 19:10
  • 2
    I highly doubt you can build a legal position that is #6 that SF16 on a decent computer does not find instantly.
    – JP Alioto
    Oct 31, 2023 at 17:13
  • 1
    Here is a mate in two position that Stockfish is inept at until higher depths (due to null-move pruning): n1N3br/2p1Bpkr/1pP2R1b/pP3Pp1/P5P1/1P1p4/p2P4/K7 w - - 0 1 I found this at talkchess.com/forum3/viewtopic.php?f=7&t=82816 Nov 23, 2023 at 17:23

1 Answer 1


So, it looks like you are searching for an engine that supports Mate Search. In regards to the UCI protocol, you would want an engine that supports the go mate <x> command. Stockfish does implement this command, so you should be able to use it to search for mate if a mate exists. I believe that some chess GUIs allow you to run a mate search, which should run this command.

However, Stockfish is a full-fledged chess engine, and it is built to find the best move in the position, not necessarily a forced checkmate. The way that it does this is by aggressively pruning the search tree so that it can focus the search on moves that are likely to be the best. A quick peek at the source code appears to show that the go mate <x> command is used to cut the search off only when a mate is found within x moves. I don't see anything that changes much in the way that the search operates based on this parameter.

Tools for finding checkmate, such as Chest UCI or the Fritz Mate engine, work differently. They will typically not prune any part of the search tree, and they do not include any sort of static evaluation. They merely search every possible move until it finds a sequence of moves ending in checkmate. This means that it will inevitably be slower than a standard engine.

Here's a snippet from an article that Fritz published in 2004.

This brings us to why the Mate engine is so different from other chess engines: it has no "pruning" function. Mate will always evaluate every position it comes across in its search, ignoring nothing. And that's precisely why the engine appears to be so slow. It's not actually any "slower" than a regular chess engine (it's still evaluating approximately the same number of positions per second as a normal chess engine) -- it just looks slower because it's not cutting out any candidate moves, so it takes much longer for Mate to reach a particular search depth.

This TalkChess.com post from 2012 discusses a desire for a successor to Chest for finding checkmates, but it doesn't appear to have gone too far other than to conclude that chess engine developers are interested in building strong chess playing applications, so standard engines are probably not going to support this functionality. Somebody in the post mentioned that Critter is good at these endgame puzzles, but it doesn't look like its been worked on since 2012, and it is still an engine first and foremost. However, it wouldn't hurt to give it a try and see if it works well for any of the positions that you find to be problematic.

This more recent post for a couple months ago is asking for a similar application. They mention both Matefish and Huntsman in this thread as Stockfish forks which are meant for searching for mate, but also state that they are slower than ChestUCI or Gustav (which appears to be proprietary, German-language, and hard to acquire).

  • A proper test, then, would be to choose something like 500 or 1000 problems (I presume the OP refers to composed problems), feed them to ChestUCI and whatever other XxxUCI engine is being tested, and check the results (not only key move, but all lines, presumably). Chosing the 'best' engine is the next problem. www.yacpdb.org can probably be be used for selecting some of the problems. Personally, I don't know of anything better than Chest, but I've never set up a strict test, which would be a highly interesting exercise.
    – user30536
    Nov 1, 2023 at 7:10
  • chess.stackexchange.com/users/30255/nelson-o Finally someone who knows about the problem with regular engines. Your answer in short sums it up. But I was hoping for some kind of new software which store the proofed solution in some kind of table bases format so after calculating the forced mate tree lines, you could navigate the situation and all the possible responses back and forth like the already calculated table bases and the GUIs that support them Nov 1, 2023 at 16:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.