#chess #engine #tui #uci #front-end #log-level #experiment

app ucui

A minimal UCI engine frontend experiment

5 releases

new 0.1.4 Jan 16, 2025
0.1.3 Jan 16, 2025
0.1.2 Jan 16, 2025
0.1.1 Jan 16, 2025
0.1.0 Jan 16, 2025

#65 in Game dev

Download history

90 downloads per month

GPL-3.0 license

235KB
2.5K SLoC

ucui

A minimal UCI engine frontend experiment.

It's intended to be used as a least disruptive interface when playing over the board with a chess engine.

It's a work in progress. If you want to give it a try, you'll have to compile it from source. For this you'll need to install rust, clone or download this repository, then cargo run --release -- --help (release builds are very long to compile, but it happens only once) from the directory where the code ended up.

Edit: It's now on crates.io, you can therefore install it with cargo install ucui.

Note that it embeds the blunders chess engine that is enough to test the interface. To play with a more advanced engine, you need to instruct ucui to do so, e.g.:

$ which stockfish
/usr/games/stockfish
$ cargo run --release -- --engine /usr/games/stockfish --white-time 1200 --black-time 300

Usage: ucui [OPTIONS]

Options:
  -e, --engine <ENGINE>
          Path to a UCI engine

  -w, --white-time <TIME>
          White time in seconds

          [default: 600]

  -b, --black-time <TIME>
          Black time in seconds

          [default: 600]

  -c, --engine-color <COLOR>
          set engine color

          [default: black]

          Possible values:
          - white: Engine takes white
          - black: Engine takes black

  -f, --fen <FEN>
          Optional starting position in FEN format

      --engine-args <ARGS>
          Optional arguments to pass to the engine (separated by ";")

          Example: --engine-args '--uci;--quiet'

      --log-level <LOG_LEVEL>
          set log level

          [default: info]

          Possible values:
          - off:   A level lower than all log levels
          - error: Corresponds to the `Error` log level
          - warn:  Corresponds to the `Warn` log level
          - info:  Corresponds to the `Info` log level
          - debug: Corresponds to the `Debug` log level
          - trace: Corresponds to the `Trace` log level

      --uci-option <UCI_OPTION>
          UCI option

          This argument can be repeated. UCI options are of the form "ID[:VALUE]". VALUE can be missing if not needed (buttons). See the engine's documentation for available options and their default values.

          Example: --uci-option 'Threads:2' --uci-option 'Skill Level:12'

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

Dependencies

~11–21MB
~303K SLoC