This Lozza UI allows you to type UCI commands in a console-like manner.


In addition to the standard UCI protocol, the following commands can be used, most of which also work offline; i.e. by running "node lozza.js".


Kill the Lozza engine. In a web context you can use start to restart it.


Do some self checks.


Web context only. Start Lozza. i.e. create a new web worker containing the Lozza. After a start the following are automatically sent: uci, ucinewgame, position startpos, board.

A start command is issued when the console UI starts.


Web context only. Clear the previous output.


Display a textual FEN and in a web context a graphical representation of the current position.

perft depth d [moves m] [inner 1|0]

Perform a perft analysis to a depth of d ply based on the current position. m is the expected number of moves and is optional, defaulting to 0. inner 1 will show inner node counts with the default being inner 0. You can see Lozza do various PERFTs here.


Show how the static evaluation of the current position is constructed.

id idstring

Attach an identification label to the current position. Only relevant if UCI debugging is on.


Check that the engine is alive.


u == ucinewgame

q == quit

p == position

p s == position startpos

g == go

g d = go depth

b == board


An explicit ucinewgame is needed to reset the transposition tables; and is required before the first position. It is optional during a game since it has no effect other than to clear the TT.

Lozza plays it's best move when a go command completes, changing the current position.

The current position is unchanged after a perft

Lozza Chess