{"id":31800127,"url":"https://github.com/jsilll/codfish","last_synced_at":"2025-10-10T23:00:00.369Z","repository":{"id":37175687,"uuid":"449890991","full_name":"jsilll/codfish","owner":"jsilll","description":"UCI Compliant Chess Engine","archived":false,"fork":false,"pushed_at":"2024-03-02T12:26:55.000Z","size":2899,"stargazers_count":11,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-03-02T14:03:14.127Z","etag":null,"topics":["chess","chess-ai","chess-engine"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsilll.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"AUTHORS","dei":null}},"created_at":"2022-01-19T23:40:48.000Z","updated_at":"2024-03-02T14:03:19.307Z","dependencies_parsed_at":"2024-03-02T14:13:23.657Z","dependency_job_id":null,"html_url":"https://github.com/jsilll/codfish","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/jsilll/codfish","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilll%2Fcodfish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilll%2Fcodfish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilll%2Fcodfish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilll%2Fcodfish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsilll","download_url":"https://codeload.github.com/jsilll/codfish/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilll%2Fcodfish/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279005449,"owners_count":26083902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["chess","chess-ai","chess-engine"],"created_at":"2025-10-10T22:59:54.505Z","updated_at":"2025-10-10T23:00:00.361Z","avatar_url":"https://github.com/jsilll.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eCodfish\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/jsilll/codfish/actions\"\u003e\u003cimg src=\"https://github.com/jsilll/codfish/actions/workflows/cmake.yml/badge.svg\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nCodfish is a strong chess engine written in C++.\n\nCurrently, Codfish doesn't support opening books, endgame tables, multi-threading or any kind of neural network evaluation. Some of these features will certainly be implemented in future releases.\n\nThe main goal of this project is to provide a simple introduction to newcomers to the chess programming world. The code is meant to be efficient and fast but also clean, maintainable and, above all, understandable.\n\nFeatures\n===\n### Interfaces\n- [UCI](http://wbec-ridderkerk.nl/html/UCIProtocol.html) Mode for GUI interaction\n- CLI Mode for Terminal Usage\n\n### Move Generation\n- [Bitboard Representation](https://www.chessprogramming.org/Bitboards)\n- [Pre-calculated Attack Tables](https://www.chessprogramming.org/Attack_and_Defend_Maps)\n- [Magic Bitboards](https://www.chessprogramming.org/Looking_for_Magics)\n- [Pseudo-Legal Move Generation](https://www.chessprogramming.org/Pseudo-Legal_Move)\n- [Make Unmake Approach](https://www.chessprogramming.org/Make_Move)\n\n### Move Picker\n- [PeSTO inspired evaluation function](https://www.chessprogramming.org/PeSTO%27s_Evaluation_Function)\n- [NegaMax Search](https://www.chessprogramming.org/Negamax)\n- [Quiescense Search](https://www.chessprogramming.org/Quiescence_Search)\n- [Move Ordering with PV, Killer, History and MVV LVA moves](https://www.chessprogramming.org/index.php?title=Move_Ordering\u0026mobileaction=toggle_view_mobile)\n- [Triangular PV-Table](https://www.chessprogramming.org/index.php?title=Triangular_PV-Table\u0026mobileaction=toggle_view_mobile)\n- [Iterative Deepening](https://www.chessprogramming.org/Iterative_Deepening)\n- [Principal Variation Search](https://www.chessprogramming.org/Principal_Variation_Search)\n- [Late Move Reduction](https://www.chessprogramming.org/Late_Move_Reductions)\n- [Null Move Pruning](https://www.chessprogramming.org/Null_Move_Pruning)\n- [Null Window Search](https://www.chessprogramming.org/Null_Window)\n- [Transposition Table](https://en.wikipedia.org/wiki/Transposition_table)\n- [Repetition Detection](https://www.chessprogramming.org/Repetitions)\n\nBuilding and Installation\n===\n\nCodfish is meant to be built only for Unix systems (although it may be built for other target platforms with little to no effort).\n\nTo compile the source code and the unit tests into their respective binaries:\n```\nmkdir build\ncd build\ncmake ../\ncd ../\ncmake --build build --config Release --target all\n```\n\n### Build Dependencies\n- C++ Standard Library\n- [Catch2](https://github.com/catchorg/Catch2) (header included) for Unit Tests\n\nUsage\n===\n### Starting in UCI mode\n```\ncodfish --uci\n```\n\n### Starting in CLI mode\n```\ncodfish --cli\n```\n\nIf this argument is not specified at startup the engine will default to UCI mode.\nOnce in UCI mode mode you can use any UCI compliant chess GUI to interact with the engine,\nsome examples are [CuteChess](https://cutechess.com/) and [Arena](https://cutechess.com/).\n\nFiles\n===\nCodfish consists of the following files:\n- [`CMakeLists.txt`](https://github.com/jsilll/codfish/blob/master/CMakeLists.txt), a file that contains the rules for building the engine using [cmake](https://cmake.org/).\n- [`src`](https://github.com/jsilll/codfish/blob/master/src), a subdirectory that contains all the source code for the engine.\n- [`tests`](https://github.com/jsilll/codfish/blob/master/tests), a subdirectory that contains all the source for the unit tests.\n- [`Doxyfile`](https://github.com/jsilll/codfish/blob/master/Doxyfile), a file for generating documentation for the source code using [Doxygen](https://doxygen.nl/).\n\nContributing\n===\nEveryone is more than welcome to contribute to the development of the project. In case you want to help improve this project here's a list of resources to get you started with chess programming:\n\n- [Bitboard Chess Engine in C Video Tutorials Playlist](https://youtube.com/playlist?list=PLmN0neTso3Jxh8ZIylk74JpwfiWNI76Cs)\n- [Chess Programming Wiki](https://www.chessprogramming.org/Main_Page)\n- [Chess Programming Youtube Channel](https://www.youtube.com/channel/UCB9-prLkPwgvlKKqDgXhsMQ)\n- [FEN Editor](http://en.lichess.org/editor)\n- [Load PGN Files](http://en.lichess.org/paste)\n\nTerms of Use\n===\nCodfish is free, and distributed under the **MIT License**.\n\nFor full details, read the copy of the MIT License found in the file named\n[LICENSE](https://github.com/jsilll/codfish/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsilll%2Fcodfish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsilll%2Fcodfish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsilll%2Fcodfish/lists"}