{"id":20431974,"url":"https://github.com/sauce-code/cuckoo","last_synced_at":"2026-02-28T15:31:49.285Z","repository":{"id":39649686,"uuid":"98561502","full_name":"sauce-code/cuckoo","owner":"sauce-code","description":"This is an adaption of Peter Österlund's CuckooChess 1.12. The source code provided is a Java Maven project in UTF-8. The program, except for the chess font, is copyrighted by Peter Österlund, and is available as open source under the GNU GPL v3 license.","archived":false,"fork":false,"pushed_at":"2025-04-03T04:06:20.000Z","size":340,"stargazers_count":18,"open_issues_count":2,"forks_count":24,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-12T20:52:04.437Z","etag":null,"topics":["ai","artificial-intelligence","chess","chess-ai","chess-application","chess-engine","cuckoo","gui","java","java-8","java-maven","java-swing","java8","maven","swing","swing-gui","tui","uci","utf-8","utf8"],"latest_commit_sha":null,"homepage":"https://sauce-code.github.io/cuckoo/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sauce-code.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-07-27T17:02:26.000Z","updated_at":"2025-03-02T19:24:46.000Z","dependencies_parsed_at":"2023-12-18T18:09:07.333Z","dependency_job_id":"11bd2494-401e-402e-93fd-b1f5ea2f45b4","html_url":"https://github.com/sauce-code/cuckoo","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sauce-code/cuckoo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauce-code%2Fcuckoo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauce-code%2Fcuckoo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauce-code%2Fcuckoo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauce-code%2Fcuckoo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sauce-code","download_url":"https://codeload.github.com/sauce-code/cuckoo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauce-code%2Fcuckoo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29940284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T13:49:17.081Z","status":"ssl_error","status_checked_at":"2026-02-28T13:48:50.396Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","artificial-intelligence","chess","chess-ai","chess-application","chess-engine","cuckoo","gui","java","java-8","java-maven","java-swing","java8","maven","swing","swing-gui","tui","uci","utf-8","utf8"],"created_at":"2024-11-15T08:13:31.242Z","updated_at":"2026-02-28T15:31:49.248Z","avatar_url":"https://github.com/sauce-code.png","language":"Java","readme":"[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0)\n![Java Version 21](https://img.shields.io/badge/Java%20Version-21-blue.svg)\n![Source Encoding](https://img.shields.io/badge/Source%20Encoding-UTF--8-blue)\n\n![Java CI with Maven](https://github.com/sauce-code/cuckoo/workflows/Java%20CI%20with%20Maven/badge.svg)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=sauce-code_cuckoo\u0026metric=alert_status)](https://sonarcloud.io/summary/new_code?id=sauce-code_cuckoo)\n[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=sauce-code_cuckoo\u0026metric=bugs)](https://sonarcloud.io/summary/new_code?id=sauce-code_cuckoo)\n[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=sauce-code_cuckoo\u0026metric=code_smells)](https://sonarcloud.io/summary/new_code?id=sauce-code_cuckoo)\n[![Duplicated Lines (%)](https://sonarcloud.io/api/project_badges/measure?project=sauce-code_cuckoo\u0026metric=duplicated_lines_density)](https://sonarcloud.io/summary/new_code?id=sauce-code_cuckoo)\n\n# Cuckoo Chess\n\nThis is an adaptation of Peter Österlund's CuckooChess 1.12, see [official page](http://hem.bredband.net/petero2b/javachess/index.html).\n\nThe source code provided is a Java Maven project in UTF-8.\n\nThe program, except for the chess font, is copyrighted by Peter Österlund, and is available as [open source](http://www.opensource.org/) under the [GNU GPL v3 license](http://www.gnu.org/licenses/gpl.html).\n\n## About the program\n\nMost of the ideas in the program are from the [Chess Programming Wiki](http://chessprogramming.wikispaces.com/) or from the [TalkChess.com](http://talkchess.com/forum/) forum.\n\nThe program implements many of the standard methods for computer chess programs, such as iterative deepening, negascout, aspiration windows, quiescence search with SEE pruning and MVV/LVA move ordering, hash table, history heuristic, recursive null moves, futility pruning, late move reductions, opening book and magic bitboards.\n\nThe program is rather slow compared to state of the art chess programs. However, it is still quite good at tactics and scores [299](http://hem.bredband.net/petero2b/javachess/wac_10s.txt) of 300 on the [win at chess](http://chessprogramming.wikispaces.com/Test-Positions) tactical test suite, at 10 seconds thinking time per position, using an Intel Core i7 870 CPU. The only position not solved is the extremely complicated position 230, which according to [current analysis](http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=18403), seems like a draw and therefore an invalid test position.\n\nNote that the author does not consider Java the best language for implementing a chess engine. He wrote this program mostly to get some hands-on experience with Java and [Eclipse](http://www.eclipse.org/).\n\nThe program uses the [Chess Cases](http://www.chessvariants.org/d.font/) chess font, created by Matthieu Leschemelle.\n\nThe author picked the name CuckooChess because the transposition table is based on [Cuckoo hashing](http://en.wikipedia.org/wiki/Cuckoo_hashing).\n\n## Downloads\n\nYou can also run the applet as a standalone program. Download the [cuckoo-app-1.12-jar-with-dependencies.jar](https://github.com/sauce-code/cuckoo/releases/download/1.12/cuckoo-app-1.12-jar-with-dependencies.jar) file and run it like this (graphical mode):\n\n    java -jar cuckoo-app-1.12-jar-with-dependencies.jar gui\n\n![GUI Preview](doc/img/gui-preview.png)\n    \nOr like this (text mode):\n\n    java -jar cuckoo-app-1.12-jar-with-dependencies.jar txt\n\n![GUI Preview](doc/img/tui-preview.png)\n\nMore commands are available in text mode than in graphical mode. Try the `help` command for a list of available commands.\n\n## Build instructions\n\nCompile the project using:\n\n    mvn install\n\nYou can find the compiled standalone JAR here:\n\n    cuckoo-app/target/cuckoo-app-1.12-jar-with-dependencies.jar\n\nTo run it, see description above.\n\n\nYou can also find GUI only, TUI only and UCI only versions here:\n\n    cuckoo-gui/target/cuckoo-gui-1.12-jar-with-dependencies.jar\n    cuckoo-tui/target/cuckoo-tui-1.12-jar-with-dependencies.jar\n    cuckoo-uci/target/cuckoo-uci-1.12-jar-with-dependencies.jar\n\nFor those, you don't need to add any parameters to run them.\n\n## UCI mode\n\nIt is also possible to use the program as a [UCI engine](http://en.wikipedia.org/wiki/Universal_Chess_Interface), which means that you can use it with many graphical chess programs. For example, to use it with XBoard/WinBoard + polyglot, set EngineCommand like this in the polyglot ini file:\n\n    EngineCommand = java -jar path/to/jar/cuckoo-app-1.12-jar-with-dependencies.jar uci\n\nTo use the program with the [Arena](http://www.playwitharena.com/) GUI, create a one-line bat-file containing:\n\n    javaw -Xmx256m -jar cuckoo-app-1.12-jar-with-dependencies.jar uci\n\nNote that you must set the maximum heap size using `-Xmx` to a value larger than the hash size you set in the Arena program (the author doesn't know exactly how much larger).\n\nIf you are using Windows, you may also be interested in a compiled version available from Jim Ablett's [chess projects page](http://jim-ablett.co.de/).\n\n## Speed\n\nThe program runs fastest when run in a 64-bit OS using a 64-bit Java implementation (JVM). Here is a speed comparison using CuckooChess 1.11 in 64-bit Windows 7 on an Intel core i7 870, when analyzing from the initial position to depth 17:\n\n| Version               | Speed (N/s) |\n|-----------------------|------------:|\n| 64-bit JVM (1.6.0_29) |   1,130,275 |\n| 32-bit JVM (1.6.0_29) |     584,194 |\n\nOn this computer, the 64-bit version is more than 90% faster. \n\n## Changelog\n\nYou can find the changelog [here](CHANGELOG.md).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsauce-code%2Fcuckoo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsauce-code%2Fcuckoo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsauce-code%2Fcuckoo/lists"}