https://github.com/adamtwiss/coda/releases

Moderator: Ras
Hello,adamtwiss wrote: ↑Wed Jul 08, 2026 9:36 pm Sylwy beat me to it! I was already planning to send an announcement post here tonight anyway once my membership had been approved.
Announcing Coda — first public release (0.9.0)
Hi all — long-time lurker, first post. Please be nice, I'm new here
Over the past few months I've been building a chess engine called Coda, and it's ready for a first public release. The unusual part: it's developed agentically — every line of code was written by Claude (Anthropic's AI), with me providing direction, testing, and review. I'd written a few hobby engines over the years and wanted to see how far this way of working could go. It started as a fun experiment and turned into a bit of a mission.
It has become reasonably strong. In my own testing (a 20-engine round robin, with all the usual caveats about self-run testing and mixed binary vintages), it currently holds its own against everything I've put it against except Stockfish and Reckless. It also plays on lichess as codabot and coda_bot if you'd like to see live games rather than take my word for it.
The essentials:
- From-scratch NNUE trained on Leela data with a customized Bullet trainer. The input layer includes ~67k explicit threat/x-ray features alongside the usual king-bucketed piece-square inputs — the net sees what pieces attack, not just where they stand.
- The standard modern alpha-beta search toolkit, with SPRT/SPSA testing on OpenBench behind every change.
- Lazy SMP, Syzygy, Polyglot books, pondering; runtime SIMD dispatch so one binary runs well across CPU generations (Linux/Windows/macOS binaries on the releases page).
It's only a few months old, so there will be bugs and rough edges — feedback, testing, and bug reports are very welcome. Coda owes a lot to this community: OpenBench, Bullet, the Leela project's data, and the many open engines whose published ideas are an education for anyone building one. Thank you for that.
Source (GPL-3.0-or-later) and pre-built binaries: https://github.com/adamtwiss/coda
Happy to answer any questions, or take any bug reports/issues/feedback!
CODA has been competing in my tournaments for a long time. A superb & powerful chess engine. Congratulations! The ancestor (GoChess) is the most powerful engine written in Go.adamtwiss wrote: ↑Wed Jul 08, 2026 9:36 pm Sylwy beat me to it! I was already planning to send an announcement post here tonight anyway once my membership had been approved.
Announcing Coda — first public release (0.9.0)
Hi all — long-time lurker, first post. Please be nice, I'm new here
Over the past few months I've been building a chess engine called Coda, and it's ready for a first public release. The unusual part: it's developed agentically — every line of code was written by Claude (Anthropic's AI), with me providing direction, testing, and review. I'd written a few hobby engines over the years and wanted to see how far this way of working could go. It started as a fun experiment and turned into a bit of a mission.
It has become reasonably strong. In my own testing (a 20-engine round robin, with all the usual caveats about self-run testing and mixed binary vintages), it currently holds its own against everything I've put it against except Stockfish and Reckless. It also plays on lichess as codabot and coda_bot if you'd like to see live games rather than take my word for it.
The essentials:
- From-scratch NNUE trained on Leela data with a customized Bullet trainer. The input layer includes ~67k explicit threat/x-ray features alongside the usual king-bucketed piece-square inputs — the net sees what pieces attack, not just where they stand.
- The standard modern alpha-beta search toolkit, with SPRT/SPSA testing on OpenBench behind every change.
- Lazy SMP, Syzygy, Polyglot books, pondering; runtime SIMD dispatch so one binary runs well across CPU generations (Linux/Windows/macOS binaries on the releases page).
It's only a few months old, so there will be bugs and rough edges — feedback, testing, and bug reports are very welcome. Coda owes a lot to this community: OpenBench, Bullet, the Leela project's data, and the many open engines whose published ideas are an education for anyone building one. Thank you for that.
Source (GPL-3.0-or-later) and pre-built binaries: https://github.com/adamtwiss/coda
Happy to answer any questions, or take any bug reports/issues/feedback!



Hi Arzam - thanks for the suggestion. Happy to try and get you one, but I don't have the means to test.Arzam wrote: ↑Thu Jul 09, 2026 8:04 am Hello,
Thank you for your work on the Coda chess engine. I run a small Android chess engine tournament and have really enjoyed testing different engines.
If possible, I hope you might consider releasing an Android build and improving Android compatibility in the future, so more users can experience Coda on Android devices.
I completely understand if this isn't possible, but I wanted to express my interest. Thank you again, and I wish you all the best with the future development of Coda!
Hi Adam, thanks for the reply! I will test the Linux aarch64 binary right now and let you know if it works on Android.adamtwiss wrote: ↑Thu Jul 09, 2026 8:56 amHi Arzam - thanks for the suggestion. Happy to try and get you one, but I don't have the means to test.Arzam wrote: ↑Thu Jul 09, 2026 8:04 am Hello,
Thank you for your work on the Coda chess engine. I run a small Android chess engine tournament and have really enjoyed testing different engines.
If possible, I hope you might consider releasing an Android build and improving Android compatibility in the future, so more users can experience Coda on Android devices.
I completely understand if this isn't possible, but I wanted to express my interest. Thank you again, and I wish you all the best with the future development of Coda!
Have you tried the existing linux-aarch64 binary? I am curious as to whether or not that will work out of the box on an ARM/Android? It's a static musl binary — fully self-contained, no dynamic libc — so it doesn't depend on Android's bionic libc and can execute directly on the Linux kernel under Termux. Static musl aarch64 ELFs run in Termux fairly often. If it works, we're done today. If that doesn't work, I can change the github actions to build an Android binary too.
Hi Adam,adamtwiss wrote: ↑Thu Jul 09, 2026 8:56 amHi Arzam - thanks for the suggestion. Happy to try and get you one, but I don't have the means to test.Arzam wrote: ↑Thu Jul 09, 2026 8:04 am Hello,
Thank you for your work on the Coda chess engine. I run a small Android chess engine tournament and have really enjoyed testing different engines.
If possible, I hope you might consider releasing an Android build and improving Android compatibility in the future, so more users can experience Coda on Android devices.
I completely understand if this isn't possible, but I wanted to express my interest. Thank you again, and I wish you all the best with the future development of Coda!
Have you tried the existing linux-aarch64 binary? I am curious as to whether or not that will work out of the box on an ARM/Android? It's a static musl binary — fully self-contained, no dynamic libc — so it doesn't depend on Android's bionic libc and can execute directly on the Linux kernel under Termux. Static musl aarch64 ELFs run in Termux fairly often. If it works, we're done today. If that doesn't work, I can change the github actions to build an Android binary too.
It's great that it worked. Over the weekend, I'll check the status of the ARM NEON SIMD stuff. I realy want ARM to be a first class architecture for Coda. There's two things that might be causing the lower NPS on ARM:Arzam wrote: ↑Thu Jul 09, 2026 10:30 am Thanks for the technical breakdown! I can confirm that the static musl linux-aarch64 binary of Coda works correctly on my Android device.
I tested it both in Analysis mode on DroidFish and ran a 4-game tournament in the ChessEngine Tournament GUI. It executed smoothly across both apps without any crashes or errors.
The only thing I noticed is that the engine's NPS (nodes per second) is quite low compared to most native Android engines I typically run. I thought it might be worth reporting in case it's an optimization quirk related to the static compilation or library handling on Android.
Thanks again for the great work on Coda!
Arzam.
Hi, Adam!adamtwiss wrote: ↑Thu Jul 09, 2026 3:44 pmIt's great that it worked. Over the weekend, I'll check the status of the ARM NEON SIMD stuff. I realy want ARM to be a first class architecture for Coda. There's two things that might be causing the lower NPS on ARM:Arzam wrote: ↑Thu Jul 09, 2026 10:30 am Thanks for the technical breakdown! I can confirm that the static musl linux-aarch64 binary of Coda works correctly on my Android device.
I tested it both in Analysis mode on DroidFish and ran a 4-game tournament in the ChessEngine Tournament GUI. It executed smoothly across both apps without any crashes or errors.
The only thing I noticed is that the engine's NPS (nodes per second) is quite low compared to most native Android engines I typically run. I thought it might be worth reporting in case it's an optimization quirk related to the static compilation or library handling on Android.
Thanks again for the great work on Coda!
Arzam.
* Coda has pretty extensive threat-based feature inputs (richer than most other engines) that can hammer memory bandwidth on some platforms. It's quite possible on phone hardware (fast chips, but typically slower memory and smaller cache sizes) that this may make it worse. Can you let me know what hardware you're testing on.
* The ARM NEON SIMD support can sometimes lag slightly behind the x86 support, and has had slightly less optimisation work. Over the weekend I'll do some profiling here when I have access to my ARM-based Macbook.