Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Karballo Chess Engine

Karballo is a Kotlin version of the Carballo Chess Engine, a Java chess engine (

Karballo has only a command line UCI interface that can be used in chess interfaces like SCID or Arena.

The source code is hosted at with a MIT license, you are free to use, distribute or modify the code.


  • Based on bitboards with a magic bitboard move generator, it also includes code for magic number generation
  • Move iterator sorting moves with four killer move slots, Static Exchange Evaluation (SEE), Most Valuable Victim/Least Valuable Aggressor (MVV/LVA) and history heuristic
  • PVS searcher
  • Aspiration window, moves only one border of the window if it falls out
  • Transposition Table (TT) with zobrist keys (it uses two zobrist keys per board to avoid collisions) and multiprobe
  • Quiescent Search (QS) with only good or equal captures (according to SEE) and limited check generation
  • Internal Iterative Deepening to improve sorting
  • Extensions: Check (only with positive SEE), pawn push, mate threat and singular move
  • Reductions: Late Move Reductions (LMR)
  • Pruning: Null move pruning, static null move pruning, futility pruning and history pruning
  • Pluggable evaluator function, distinct functions provided: the Simplified Evaluator Function, other Complete and other Experimental
  • Selectable ELO level with an UCI parameter
  • Supports Chess960
  • Polyglot opening book support; in the code it includes Fruit's Small Book
  • FEN notation import/export support, also EPD support for testing
  • JUnit used for testing, multiple test suites provided (Perft, BS2830, BT2630, LCTII, WinAtChess, etc.)

Building: Jvm

Carballo uses the Gradle build system with a gradle wrapper.

Build the UCI interface creating a karballo.jar in karballo-jvm/:

cd karballo-jvm
../gradlew clean proguard

Running: Jvm

java -jar karballo.jar

Building: Js

Js is a limited version (without opening book and only with a thread) that runs in NodeJS

cd karballo-js
npm install
../gradlew clean assemble

This generates a CommonJS module in js/karballo.js

Running: Js

cd karballo-js
node js/karballo.js



A Kotlin Chess Engine




No releases published


You can’t perform that action at this time.