Skip to main content

Questions tagged [uci]

Universal Chess Interface (UCI) is the interface protocol used by most of the major chess engines.

Filter by
Sorted by
Tagged with
1 vote
0 answers
41 views

Is 'stop' not working with 'go perft' in SF a violation of UCI protocol?

According to the UCI protocol specs [ https://page.mi.fu-berlin.de/block/uci.htm ], when a 'stop' command is issued, the UCI engine should "stop calculating as soon as possible". This is not ...
tim bits's user avatar
  • 129
2 votes
1 answer
842 views

Weird Stockfish UCI output for d2d4 before and after

I am currently trying to code a training tool and am a bit confused by what Stockfish returns. Before doing d2d4 it states that this move will have a 56 centipawn advantage for White - which is what I ...
Torge's user avatar
  • 123
1 vote
1 answer
82 views

Identifying stalemate in chess engine output (UCI)

I am using Stockfish 15.1 via UCI to analyse chess positions. Unfortunately, the UCI documentation is a bit silent on how stalemates should be handled. As shown in the example below, it seems that ...
Mercutio1243's user avatar
1 vote
1 answer
275 views

Understanding UCI Output of Chess Engine - how to get best continuation

I am trying to understand and parse the UCI (Universal Chess Interface) output of a chess engine (here Stockfish 15.1). Specifically, I calling Stockfish with the following command and want to get the ...
Mercutio1243's user avatar
0 votes
1 answer
333 views

How to get a list of top number of moves in stockfish uci format?

This is what I have written so far: stockfish.postMessage("uci"); stockfish.postMessage("ucinewgame"); stockfish.postMessage(`isready`); stockfish.postMessage(`position startpos ...
Vivaan Kumar's user avatar
2 votes
2 answers
732 views

How to tell which engine is going to play white or black in UCI Protocol?

Is there a UCI protocol command that tells the other engine which team white or black to play? For instance, I wrote a chess engine. I connected my engine to play against Stockfish 15.1 using chess ...
GMan3000's user avatar
3 votes
1 answer
168 views

Is there any UCI GUI for arbitrary variants?

I have a UCI-compatible chess engine which I modified to play a chess variant (gravity chess, where all non-pawn pieces fall towards increasing rank). However, there's no easy way to play against the ...
416E64726577's user avatar
2 votes
1 answer
135 views

UCI Play Colors

How do I get the color the engine should play? My minimax function requires color to return the best move for that color. I'm using uci protocol, but I'm looking at the docs and cannot find anything ...
ShadowProgrammer's user avatar
1 vote
1 answer
229 views

Can an engine function implementing UCI except without always reading stdin?

According to the UCI protocol, an engine implementing UCI should always be able to respond to stdin. I thought of two ways to accomplish this in an engine of my own: Implement threads like Stockfish ...
qwr's user avatar
  • 3,792
1 vote
1 answer
2k views

How do I implement UCI in my Python chess engine?

I have developed a chess engine in Python with negamax, alpha beta and piece square table. I want to "compile" my code into a UCI compatible one so I can load it to Arena GUI, but I have no ...
Felipe L's user avatar
2 votes
0 answers
144 views

Issue with connecting engine to lichess bot (uci communication)

My engine is responding correctly to the first inputs from the GUI (as above), but when it receives go movetime 10000 it just crashes and I don't know why. When I test my engine manually in CMD I get ...
ZED's user avatar
  • 103
3 votes
0 answers
435 views

Understanding Leela Chess Zero (Lc0) "verbose-move-stats output"

I'm trying to fully understand the Leela's verbose-move-stats output: Are the statements below correct? The move that will be played is e2e4, since it's the one with the greatest count of visits (N: ...
Murilo Perrone's user avatar
-1 votes
1 answer
225 views

UCI - what should be the value of movestogo

Playing a bullet game(1 min) against UCI engine, I would send these command from GUI uci setoption name Hash value 256 isready ucinewgame position startpos e2e4 go wtime 60000 btime 60000 ...
beginner's user avatar
  • 191
1 vote
2 answers
314 views

Example of "lowerbound" and "upperbound" in the UCI protocol

I am having trouble understanding how "upperbound` and "lowerbound" come into play in the UCI protocol. The spec says: lowerbound: the score is just a lower bound. upperbound: the ...
Pablochaches's user avatar
5 votes
1 answer
778 views

Obtain information about a a position from Stockfish

I want to know from Stockfish: All possible moves in a position, a.k.a. a depth 1 analysis with no score. If the king is in check, is checkmated, or if there is a draw. The current FEN string, after ...
Aviv Aviv's user avatar
  • 301
1 vote
1 answer
270 views

Unable To Communicate with UCI through Java Program

I am writing a java program to connect to the Stockfish Engine and get the best move for some FENs. My Connection code is : public class connector { private Process engineProcess; private ...
Sarr's user avatar
  • 31
4 votes
1 answer
466 views

What is the idea of 'ponder' in the UCI protocol?

I've created my own chess engine and now I'm trying to connect it into the Chess Arena. Everything is actually working fine when I play them together (Demo). But I tried to play with it and didn't ...
James Urian's user avatar
3 votes
1 answer
920 views

Can all UCI engines output a FEN for the current position or is it just StockFish?

I know in StockFish if you type "d" you get an ascii view of the board and a FEN string for the current state. Is there any command in other UCI engines such as Rybka 4 that will output a ...
SoDamnMetal's user avatar
2 votes
1 answer
185 views

Why do some UCI engines restrict input moves to 23 when using the command prompt?

I am using some UCI engines from a command prompt. Most work fine (i.e. Stockfish, Houdini, Komodo) but when I use e.g. SOS (ver.5.1) or Hermann (Ver.2.8), I cannot seem to type any more moves after ...
John's user avatar
  • 21
1 vote
2 answers
578 views

Is it preferable to pass a FEN notation or list of moves to a chess engine?

I am actually programming a chess UI and I'd like to communicate with a chess engine using UCI protocol. After reading the protocol specifications, I am not sure how to use the position command. For ...
Hugo's user avatar
  • 13
1 vote
1 answer
722 views

Why is stockfish not accepting my move?

I am trying to play with stockfish from terminal. I entered the following commands: position startpos e2e4 d The output was: Why is stockfish not accepting my move?
Ritesh Singh's user avatar
1 vote
1 answer
911 views

Using Stockfish in an automated way, for example, to analyze games in pgn format

I am looking for a way to use Stockfish for an automated analysis of games which I have in pgn format. Similar to Fritz/Chessbase's Blunder Check function I would like Stockfish (or any other UCI ...
Gecko's user avatar
  • 206
2 votes
1 answer
612 views

How can I send a UCI command to a chess engine in Python?

I have a followup question to my previous thread: Python script to let stockfish selfplay 10 games from a given position There are some engines that allow you to set a command that imposes that the ...
Arturo's user avatar
  • 273
5 votes
1 answer
2k views

Python script to let stockfish selfplay 10 games from a given position

I would like to have Stockfish to selfplay 10 games starting from a given position. Game should end after 10 moves. From the python-chess documentation there is an example of playing only one such ...
Arturo's user avatar
  • 273
2 votes
1 answer
857 views

Debugging my chess engine through the Arena GUI

I coded (with visual studio 2019 on windows 10) an ultra naive chess engine that complies with UCI engine interface rules. Before starting to develop it in more fancy ways, I want to make sure that I ...
Olórin's user avatar
  • 606
-2 votes
1 answer
315 views

How to force Stockfish to make mistake [closed]

I developed a bot. It had a 100% win rate and my account was banned. I need to get it to make mistakes but can't force Stockfish to do it. How can I modify Stockfish to make mistakes?
user20963's user avatar
3 votes
3 answers
2k views

When to use Clear Hash

I am developing a program that analyzes games sequentially, i.e. one game after another. Below are the parameters. Engine: Stockfish 10 Threads: 2 Hash Table: 4000 Depth: 30 My question is about ...
user2320832's user avatar
2 votes
3 answers
738 views

How to use Arena GUI outputs in a python program

I'm currently developing a self-playing chessboard on which I'd like to implement an Artificial Intelligence (AI) (currently it's Stockfish. I would like to know how I could, if I can, export Arena ...
DGGB's user avatar
  • 21
4 votes
1 answer
3k views

How to use the Ponder option in stockfish / UCI

I'm trying to understand stockfish Ponder functionality. I'm very interested to let stockfish think when the opponent is thinking. From what I understand you can do it as follows $> uci $> ...
Jeanluca Scaljeri's user avatar
0 votes
1 answer
755 views

Standard for current position evaluation via UCIs

I am trying to interact with stockfish via UCI to get a current evaluation of the board. When you do a simple position startpos go depth 10 The board will helpfully return ...[previous depths] ...
OganM's user avatar
  • 103
3 votes
1 answer
477 views

How does "go mate <x>" work in UCI

In the UCI documentation, it says mate x search for a mate in x moves However, I believe this should say "search for mate in x plies", as plies are used in most of the protocol. I can ...
me''s user avatar
  • 315
0 votes
2 answers
222 views

Regarding Chessbase softwares

I have bought Houdini 6 pro ( ChessBase version ), for the primary purpose of practising by playing games against Houdini 6 pro (and other engines I own) I cannot figure out how to play a game against ...
Sauron's user avatar
  • 21
1 vote
2 answers
558 views

Testing an engine (UCI) against an older version of itself

I am making modifications to a chess engine. I want to get quick feedback on whether the modified version seems stronger than an unmodified version or not, by fighting the older version multiple ...
GPK's user avatar
  • 13
4 votes
2 answers
2k views

Python and UCI engine

I'm working with Stockfish in Python 3. And when I do something like this: I get just "bestmove e2e4". How can I retrieve full information? Like this:
MrTrushka's user avatar
7 votes
8 answers
2k views

Reasonable engines to test against (Not StockFish)

I've built a chess engine in Python which I've been testing against StockFish through the use of the Python-Chess package. Testing against StockFish seems/is problematic, and as a result I'm ...
Sam Ragusa's user avatar
5 votes
1 answer
2k views

Why does Stockfish give a negative score in a theoretical win for white?

8/3k4/8/3K4/3P4/8/8/8 b - - 0 1 (Black to move) This is a theoretical win since White has the opposition and the king is in front of the pawn. I have downloaded the Windows version for Stockfish 9 ...
Michael Haddad's user avatar
2 votes
1 answer
1k views

Connecting UCI engine with iOS? [closed]

So I'm not actually making a Chess app, but I am trying to hook up an engine that uses a protocol almost exactly the same as UCI. I can get it working quite easily on a macOS app. Now, the hard part ...
swigganicks's user avatar
4 votes
2 answers
4k views

Is there a list of hidden/deleted Stockfish commands?

I have downloaded the latest version of Stockfish, and I am running it on the command line. There is a hidden command 'd' which displays the current board. Also, the "debug on" command is not ...
EddieRich's user avatar
5 votes
2 answers
919 views

How do UCI chess engines handle the 50-move or threefold repetition rules when playing against other engines?

I'm working on an engine that implements the UCI protocol that is intended to play against other engines. Since the UCI protocol has no commands for offering or accepting draws, how does this work ...
mclaassen's user avatar
  • 151
-1 votes
1 answer
797 views

where are the revision logs for asmFish

Please help because I can't find the revision logs on any website. I want to download version 051117 but I literally cannot get any website to have it.
BruceDeluxe GD's user avatar
5 votes
1 answer
724 views

how does a uci engine draw or resign?

I am writing a UCI chess AI/engine. It has the ability to draw and resign. How do I communicate this to the uci chess interface? what string shoud i send back to the GUI?
Νικόλαος Μανωλακος's user avatar
1 vote
2 answers
182 views

Changing UCI output to include piece names

UCI output from engines is generally raw in the form of g1f3 and e2e4 representing Nf3 and Pe4. One engine I saw (lozza) sends its PV output with the piece names. Others, like Stockfish, don't ...
Jess Ortiz's user avatar
1 vote
1 answer
247 views

Stockfish: Engine suddenly changed the side?

I asked this question in stockfishchess.org support but didn't get any response. So I'm trying to get some answers from you all. My question: Please find the output of communication with the engine ...
Bee's user avatar
  • 165
4 votes
1 answer
1k views

How to use ending evaluation in UCI interaction with Stockfish

Playing around with the Stockfish 8 UCI from the terminal, I've managed to make it compute moves, and set the position and load Syzygy tables. But how I can know if an endgame, one that corresponds ...
loloof64's user avatar
  • 143
2 votes
1 answer
3k views

What exactly means centipawns field in stockfish/uci output?

According to this page: cp the score from the engine's point of view in centipawns. but is it a score for the current (start) position of the game that I feed to engine, or it is a ...
scythargon's user avatar
3 votes
1 answer
431 views

Best way to use UCI engine to play against itself

So far I used UCI only to make analysis of particular positions, sending FEN, showing multipv, analysing fixed depth/time, clearing hash for every next position. Now I would like to make the same ...
hoacin's user avatar
  • 3,286
1 vote
1 answer
239 views

Is there any UCI engine that presents DTZ information from syzygy in analyse mode?

Many UCI engines that can read syzygy database put same score for every winning move (#1000 in komodo, +123.53 in stockfish, ...) and you have no idea how to make real progress when analysing root ...
hoacin's user avatar
  • 3,286
10 votes
1 answer
5k views

Returning scores for all possible moves from a chess engine

I am looking for a way to return scores for all possible moves from a chess engine (preferably, Stockfish). The UCI protocol does not seem to require it, but is seems like a useful feature to include....
QuarterlyQuotaOfQuotes's user avatar
0 votes
1 answer
333 views

How I tell the UCI engine to show less info during search?

Is there a UCI command to output only selected info? For example if my input is setoption name MultiPV value 3 go depth 8 I get info for every depth itineration in the search: info depth 1 seldepth ...
chessfix88's user avatar
5 votes
1 answer
710 views

Why am I getting different behaviour between using stockfish as a child node process and a CLI called process?

Copied this question from stackoverflow. Not 100% sure it belongs here but we'll see... I am building a web interface for the stockfish chess engine using Node, and I noticed that the behaviour of ...
Loupax's user avatar
  • 151