{"slug": "stockfish", "name": "Stockfish", "category": "other", "category_name": "Other software", "description": "", "recommenders": 6, "commenters": 33, "warners": 3, "score": 8.953, "rising": 3.35, "first": "2025-11-18", "latest": "2026-10-08", "why": "To show you how strong Stockfish 19 is compared to 18, I used to lose 100% against 18, and I now lose 100% against 19", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 6, "neutral": 22, "compare": 4, "warn": 3}, "spark": [0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 4, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "To show you how strong Stockfish 19 is compared to 18, I used to lose 100% against 18, and I now lose 100% against 19", "kind": "", "icon": true, "domain": null, "github_repo": "github.com/official-stockfish/stockfish", "official_url": "https://stockfishchess.org", "pricing": "", "aliases": ["Stockfish"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 794384736, "item_id": 49649046, "url": "https://news.ycombinator.com/item?id=49649046", "by": "nilslindemann", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "Stockfish 19 has gotten better at understanding fortresses", "excerpt": "However, Stockfish 19 has gotten better at understanding fortresses: https://lichess.org/analysis/1b3r2/8/4P3/2pP2k1/3nB2p/3P3P/5PP1/5KRR_b_-_-_0_1 (now finds 1...Rxf2 = immediately, the evaluation is closer to 0.0) https://lichess.org/analysis/8/kp2q3/1Np5/pPPp1b2/P2Pp1p1/4Pp1p/5PPB/1R4K1_w_-_-_0_1 (finds 1.Nc8+ = quicker (let it ponder four lines), the evaluation is closer to 0.0) https://lichess.org/analysis/rk6/1", "context": "", "use_case": "Chess engine analysis", "switched_from": "", "story": "Stockfish 19"}, {"id": 794260464, "item_id": 49641279, "url": "https://news.ycombinator.com/item?id=49641279", "by": "nevi-me", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "To show you how strong Stockfish 19 is compared to 18, I used to lose 100% against 18, and I now lose 100% against 19", "excerpt": "To show you how strong Stockfish 19 is compared to 18, I used to lose 100% against 18, and I now lose 100% against 19, probably faster. Time to fire up En Croissant and see :)", "context": "", "use_case": "chess engine", "switched_from": "", "story": "Stockfish 19"}, {"id": 794259970, "item_id": 49641248, "url": "https://news.ycombinator.com/item?id=49641248", "by": "fileeditview", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "Now I can use an even better Stockfish to benchmark my own engine", "excerpt": "I really like ChessX ( https://chessx.sourceforge.io/ ). Pychess was always unstable and slow for me. Anyways. Now I can use an even better Stockfish to benchmark my own engine..", "context": "", "use_case": "chess engine benchmarking", "switched_from": "", "story": "Stockfish 19"}, {"id": 765332912, "item_id": 47833307, "url": "https://news.ycombinator.com/item?id=47833307", "by": "joshka", "date": "2026-04-20", "version": null, "stance": "recommend", "quote": "Go throw yourself at Stockfish or another chess engine for this. They tend to have good test harness", "excerpt": "> An open question is whether the AIs could find optimizations that are not possible if we use a higher-level language like C or C++. It is an intriguing question that I will seek to answer later. For the time being, the AIs can beat my C++ compiler! Go throw yourself at Stockfish or another chess engine for this. They tend to have good test harness that can give you an idea of whether the speedups are worth the effo", "context": "", "use_case": "testing AI assembly optimization", "switched_from": "", "story": "Can your AI rewrite your code in assembly?"}, {"id": 748335296, "item_id": 46770956, "url": "https://news.ycombinator.com/item?id=46770956", "by": "firasd", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "using Stockfish with multipv", "excerpt": "I've been analyzing classic \"romantic\" games using Stockfish with multipv (showing the top 4-5 lines rather than just the best move) 1. Morphy vs. Duke of Brunswick (The Opera Game) https://lichess.org/study/xAo78qLb/truC6WoM 16. Qb8+. This is viewed as Morphy doing a stylish Queen sacrifice But if you look at the MultiPV: Qb8+* leads to forced mate. Qc3 or Qb7 drops the advantage significantly. Qb5 actually allows e", "context": "", "use_case": "chess move analysis", "switched_from": "", "story": "Not all Chess960 positions are equally complex"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 794297792, "item_id": 49643612, "url": "https://news.ycombinator.com/item?id=49643612", "by": "kuboble", "date": "2026-09-10", "version": null, "stance": "warn", "quote": "stockfish will sometimes take a bad read from a cache", "excerpt": "I believe this is not the case. The first reason is the optimization of the Transposition Table in stockfish. https://github.com/official-stockfish/Stockfish/blob/master/src/tt.cpp#L270 Basically this optimization means that stockfish will sometimes take a bad read from a cache (so it will take an evaluation of the position from cache which was calculated for a different position). It's fairly random when this will t", "context": "", "use_case": "chess engine", "switched_from": "", "story": "Stockfish 19"}, {"id": 794292416, "item_id": 49643276, "url": "https://news.ycombinator.com/item?id=49643276", "by": "strenholme", "date": "2026-09-10", "version": null, "stance": "warn", "quote": "Interesting bug or regression.", "excerpt": "Interesting bug or regression. Let\u2019s take the very famous game Kasparov - Topalov, Wijk aan Zee 1999 and look at the position just after Topalov accepts Kasparov\u2019s Rook Sacrifice: https://samboy.github.io/blog/Kasparov.html#RookSacAccepted - https://lichess.org/lwiPq9wB#48 - White to move FEN: b2r3r/k4p1p/p2q1np1/Np1P4/3p1Q2/P4PPB/1PP4P/1K2R3 w - - 0 25 Run the above position in Stockfish 18 with a depth of 25: [1] I", "context": "", "use_case": "Chess analysis", "switched_from": "", "story": "Stockfish 19"}, {"id": 755217808, "item_id": 47201113, "url": "https://news.ycombinator.com/item?id=47201113", "by": "vunderba", "date": "2026-02-28", "version": null, "stance": "warn", "quote": "the set of valid moves you are passing into Stockfish only affects the initial move.", "excerpt": "> That function runs client-side and filters the list of legal UCI moves before being passed to Stockfish's searchmoves parameter, so Stockfish's skill level, depth, and randomness all still apply correctly within the allowed set. Hmmm... I can immediately think of a reason this won't work. If I create a constraint that says \"Bishops are only capable of moving 4 squares maximum\", the set of valid moves you are passin", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Constrained Chess, Play Stockfish with custom natural-language rules"}, {"id": 735625056, "item_id": 45976566, "url": "https://news.ycombinator.com/item?id=45976566", "by": "aw1621107", "date": "2025-11-18", "version": null, "stance": "warn", "quote": "where Stockfish blunders a seemingly winning position", "excerpt": "> if you playing chess then its oblivious how to differentiate bad move and best move The key words in what I said are \"general\" and \"objective\". Yes, it's possible to determine \"good\" or \"bad\" moves in specific positions. There's no known method to determine \"good\" or \"bad\" moves in arbitrary positions, as would be required for chess to be considered strongly solved. Furthermore, if it's \"obvious\" how to differentia", "context": "", "use_case": "", "switched_from": "", "story": "Cloudflare outage on November 18, 2025 post mortem"}]}], "who": [], "tags": [], "use_cases": ["chess engine", "chess engine analysis", "chess engine opponent", "chess game analysis", "chess analysis", "chess engine benchmarking"], "compared": [{"slug": "lichess", "name": "Lichess", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "pychess", "name": "PyChess", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "leela-chess-zero", "name": "Leela Chess Zero", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [{"id": 795405824, "item_id": 49712864, "url": "https://news.ycombinator.com/item?id=49712864", "by": "kuboble", "date": "2026-09-15", "version": null, "stance": "neutral", "quote": "it's not only my change is making stockfish not blunder", "excerpt": "It's not public, but the diff is tiny: https://pastebin.com/Nd2sS0KX Also - it's not only my change is making stockfish not blunder. Any little change in the code or execution will butterly-effect into no blunder. To reproduce a bunder you have to be very deterministic. You need to specify threads = 1, and fixed cache sizes.", "context": "", "use_case": "Chess engine modification", "switched_from": "", "story": "Stockfish 19"}, {"id": 745752368, "item_id": 46609523, "url": "https://news.ycombinator.com/item?id=46609523", "by": "Viren6", "date": "2026-01-13", "version": null, "stance": "neutral", "quote": "I also work on Stockfish", "excerpt": "I also work on Stockfish, that is not the reason. The reason is because the SF17.1 is functionally different, there is no way to get these to match without changing the net option to be the same as the stockfish binary. See https://tests.stockfishchess.org/tests/view/69515c60572093c1986da0d6 and https://github.com/lichess-org/lila/pull/18671", "context": "works on Stockfish", "use_case": "chess engine", "switched_from": "", "story": null}], "threads": [{"url": "https://news.ycombinator.com/item?id=49599992", "title": "Stockfish 19", "mentions": 10}, {"url": "https://news.ycombinator.com/item?id=47049845", "title": "Chess engines do weird stuff", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=49466917", "title": "Small Models Have Arrived", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=47200982", "title": "Show HN: Constrained Chess, Play Stockfish with custom natural-language rules", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49857528", "title": "Show HN: A Claude Code skill to analyze your chess games", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48136909", "title": "Regex Chess: A 2-ply minimax chess engine in 84,688 regular expressions", "mentions": 2}], "sentiment_by_month": {"2025-11": {"neutral": 1, "warn": 1}, "2025-12": {"neutral": 1}, "2026-01": {"neutral": 2, "recommend": 1}, "2026-02": {"neutral": 5, "compare": 1, "warn": 1}, "2026-03": {"neutral": 2}, "2026-04": {"neutral": 2, "compare": 1, "recommend": 1}, "2026-05": {"neutral": 3}, "2026-06": {}, "2026-07": {}, "2026-08": {"neutral": 2}, "2026-09": {"recommend": 4, "warn": 1, "neutral": 4, "compare": 1}, "2026-10": {"compare": 1}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 800069569, "item_id": 50004348, "url": "https://news.ycombinator.com/item?id=50004348", "by": "squidbeak", "date": "2026-10-08", "version": null, "stance": "compare", "quote": "", "excerpt": "Why don't you mention the second match here, with its adjustments to meet Stockfish's quibbles - and the same result? https://en.chessbase.com/post/the-full-alphazero-paper-is-published-at-long-last/1", "context": "", "use_case": "", "switched_from": "", "story": "\u201cMath 2.0\u201d will need to value mathematical progress more holistically"}, {"id": 797754897, "item_id": 49859681, "url": "https://news.ycombinator.com/item?id=49859681", "by": "Bootvis", "date": "2026-09-26", "version": null, "stance": "neutral", "quote": "integrates an LLM of your choice with StockFish to analyze games", "excerpt": "Already a year ago I vibe coded Babelfish: https://github.com/bobjansen/Babelfish It integrates an LLM of your choice with StockFish to analyze games. Back then, the results weren't very good and I abandoned the project but a lot has changed (the LLM's got better and I did too) so maybe it is time to take another stab at it.", "context": "", "use_case": "chess engine analysis", "switched_from": "", "story": "Show HN: A Claude Code skill to analyze your chess games"}, {"id": 797738545, "item_id": 49858659, "url": "https://news.ycombinator.com/item?id=49858659", "by": "kuboble", "date": "2026-09-26", "version": null, "stance": "neutral", "quote": "I tried to use claude to analyze my games using stockfish", "excerpt": "I'm an ok chess player (roughly OP level) and slightly more experienced claude code user. I tried to use claude to analyze my games using stockfish - this is not a problem claude is good at. I spent few hours (however admittedly around opus 4.8) with claude on this and it was unable to use stockfish in any useful way. I think if the skill created by OP works then it's a real contribution. I'll give it a try.", "context": "", "use_case": "chess game analysis", "switched_from": "", "story": "Show HN: A Claude Code skill to analyze your chess games"}, {"id": 795656752, "item_id": 49728547, "url": "https://news.ycombinator.com/item?id=49728547", "by": "well_ackshually", "date": "2026-09-16", "version": null, "stance": "neutral", "quote": "they shit out a carbon copy of https://github.com/official-stockfish/stockfish", "excerpt": ">What happens when you ask those same frontier models to write a chess-playing program? they shit out a carbon copy of https://github.com/official-stockfish/stockfish that they have in their training data. Still doesn't make Fable good at playing chess.", "context": "", "use_case": "", "switched_from": "", "story": "Why I'm still bearish on LLMs after Navier-Stokes"}, {"id": 794409828, "item_id": 49650614, "url": "https://news.ycombinator.com/item?id=49650614", "by": "Oreb", "date": "2026-09-10", "version": null, "stance": "neutral", "quote": "", "excerpt": "Shameless self promotion: If you\u2019re a Mac user and want something with native look and feel, there is also The Marvelous Brass Chessplaying Automaton (TestFlight beta): https://testflight.apple.com/join/mqfhpmHY There are also iOS and watchOS versions, but those can\u2019t run 3rd party engines like Stockfish.", "context": "", "use_case": "", "switched_from": "", "story": "Stockfish 19"}, {"id": 794384736, "item_id": 49649046, "url": "https://news.ycombinator.com/item?id=49649046", "by": "nilslindemann", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "Stockfish 19 has gotten better at understanding fortresses", "excerpt": "However, Stockfish 19 has gotten better at understanding fortresses: https://lichess.org/analysis/1b3r2/8/4P3/2pP2k1/3nB2p/3P3P/5PP1/5KRR_b_-_-_0_1 (now finds 1...Rxf2 = immediately, the evaluation is closer to 0.0) https://lichess.org/analysis/8/kp2q3/1Np5/pPPp1b2/P2Pp1p1/4Pp1p/5PPB/1R4K1_w_-_-_0_1 (finds 1.Nc8+ = quicker (let it ponder four lines), the evaluation is closer to 0.0) https://lichess.org/analysis/rk6/1", "context": "", "use_case": "Chess engine analysis", "switched_from": "", "story": "Stockfish 19"}, {"id": 794380736, "item_id": 49648796, "url": "https://news.ycombinator.com/item?id=49648796", "by": "canucker2016", "date": "2026-09-10", "version": null, "stance": "compare", "quote": "Stockfish was first, Reckless v0.9.0 was second", "excerpt": "from the TCEC Season 29 Premier Division tournament, Stockfish was first, Reckless v0.9.0 was second, LCZero 0.33 was third, PlentyChess (won tiebreaker) tied with Torch for fourth. see https://tcec-chess.com/#div=p&game=1&season=29 click on the Standings tab to see the results.", "context": "", "use_case": "", "switched_from": "", "story": "Stockfish 19"}, {"id": 794338560, "item_id": 49646160, "url": "https://news.ycombinator.com/item?id=49646160", "by": "FartyMcFarter", "date": "2026-09-10", "version": null, "stance": "neutral", "quote": "", "excerpt": "> I also see the issue on Lichess\u2019s GUI by going to this URL: > https://lichess.org/lwiPq9wB#48 When I go to that link it shows Black is winning with -1.9 eval at depth 32 with SF19 1MB NNUE! It looks like it got this evaluation from the cloud database.", "context": "", "use_case": "", "switched_from": "", "story": "Stockfish 19"}, {"id": 794297792, "item_id": 49643612, "url": "https://news.ycombinator.com/item?id=49643612", "by": "kuboble", "date": "2026-09-10", "version": null, "stance": "warn", "quote": "stockfish will sometimes take a bad read from a cache", "excerpt": "I believe this is not the case. The first reason is the optimization of the Transposition Table in stockfish. https://github.com/official-stockfish/Stockfish/blob/master/src/tt.cpp#L270 Basically this optimization means that stockfish will sometimes take a bad read from a cache (so it will take an evaluation of the position from cache which was calculated for a different position). It's fairly random when this will t", "context": "", "use_case": "chess engine", "switched_from": "", "story": "Stockfish 19"}, {"id": 794292416, "item_id": 49643276, "url": "https://news.ycombinator.com/item?id=49643276", "by": "strenholme", "date": "2026-09-10", "version": null, "stance": "warn", "quote": "Interesting bug or regression.", "excerpt": "Interesting bug or regression. Let\u2019s take the very famous game Kasparov - Topalov, Wijk aan Zee 1999 and look at the position just after Topalov accepts Kasparov\u2019s Rook Sacrifice: https://samboy.github.io/blog/Kasparov.html#RookSacAccepted - https://lichess.org/lwiPq9wB#48 - White to move FEN: b2r3r/k4p1p/p2q1np1/Np1P4/3p1Q2/P4PPB/1PP4P/1K2R3 w - - 0 25 Run the above position in Stockfish 18 with a depth of 25: [1] I", "context": "", "use_case": "Chess analysis", "switched_from": "", "story": "Stockfish 19"}, {"id": 794278288, "item_id": 49642393, "url": "https://news.ycombinator.com/item?id=49642393", "by": "dogman1050", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "", "excerpt": "I can't beat the famous 1k JavaScript version either. I was better when I was younger. https://nanochess.org/archive/toledo_javascript_chess_3.html", "context": "", "use_case": "", "switched_from": "", "story": "Stockfish 19"}, {"id": 794260464, "item_id": 49641279, "url": "https://news.ycombinator.com/item?id=49641279", "by": "nevi-me", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "To show you how strong Stockfish 19 is compared to 18, I used to lose 100% against 18, and I now lose 100% against 19", "excerpt": "To show you how strong Stockfish 19 is compared to 18, I used to lose 100% against 18, and I now lose 100% against 19, probably faster. Time to fire up En Croissant and see :)", "context": "", "use_case": "chess engine", "switched_from": "", "story": "Stockfish 19"}, {"id": 794259970, "item_id": 49641248, "url": "https://news.ycombinator.com/item?id=49641248", "by": "fileeditview", "date": "2026-09-10", "version": null, "stance": "recommend", "quote": "Now I can use an even better Stockfish to benchmark my own engine", "excerpt": "I really like ChessX ( https://chessx.sourceforge.io/ ). Pychess was always unstable and slow for me. Anyways. Now I can use an even better Stockfish to benchmark my own engine..", "context": "", "use_case": "chess engine benchmarking", "switched_from": "", "story": "Stockfish 19"}, {"id": 791572624, "item_id": 49473289, "url": "https://news.ycombinator.com/item?id=49473289", "by": "nl", "date": "2026-08-28", "version": null, "stance": "compare", "quote": "", "excerpt": "> a large language model trained on chess commentary as well as being trained on millions of chess games would outperform stockfish which is only trained on millions of chess games Not really, if anything it's closer to the opposite. The Bitter Lesson essay literally has this as an example: > These researchers wanted methods based on human input to win and were disappointed when they did not.[1] and > Enormous initia", "context": "", "use_case": "", "switched_from": "", "story": "Small Models Have Arrived"}, {"id": 791571696, "item_id": 49473231, "url": "https://news.ycombinator.com/item?id=49473231", "by": "brucehoult", "date": "2026-08-28", "version": null, "stance": "neutral", "quote": "in 2020 Stockfish 12 adding some NN evaluation", "excerpt": "I guess you missed Leela then. And in 2020 Stockfish 12 adding some NN evaluation. And then in 2023 Stockfish 16 entirely removing the classical position evaluation code. https://stockfishchess.org/blog/2023/stockfish-16/", "context": "", "use_case": "", "switched_from": "", "story": "Small Models Have Arrived"}, {"id": 791571617, "item_id": 49473226, "url": "https://news.ycombinator.com/item?id=49473226", "by": "nl", "date": "2026-08-28", "version": null, "stance": "neutral", "quote": "https://mcpmarket.com/server/stockfish", "excerpt": "Au contraire! https://mcpmarket.com/server/stockfish https://til.simonwillison.net/llms/mcp-in-claude-and-chatgpt#chatgpt", "context": "", "use_case": "", "switched_from": "", "story": "Small Models Have Arrived"}, {"id": 771157904, "item_id": 48197369, "url": "https://news.ycombinator.com/item?id=48197369", "by": "Rendello", "date": "2026-05-19", "version": null, "stance": "neutral", "quote": "against \"diluted\" versions of Stockfish", "excerpt": "This reminded me of Tom7's video where he made a bunch of ridiculous engines and pitted them against each other (and against \"diluted\" versions of Stockfish): https://www.youtube.com/watch?v=DpXy041BIlA https://tom7.org/chess/", "context": "", "use_case": "", "switched_from": "", "story": "Regex Chess: A 2-ply minimax chess engine in 84,688 regular expressions"}, {"id": 771030048, "item_id": 48189378, "url": "https://news.ycombinator.com/item?id=48189378", "by": "strenholme", "date": "2026-05-18", "version": null, "stance": "neutral", "quote": "In the Stockfish notation this engine uses", "excerpt": "For people who are interested, here is the solution. In standard PGN, the solution is: 1. e4 e5 2. Nf3 Nf6 3. Nxe5 Nxe4 4. Qe2 Nxd2 5. Nc6+ Ne4 6. Nxd8 Kxd8 7. Qxe4 a6 8. Bg5+ Be7 9. Qxe7# In the Stockfish notation this engine uses, White\u2019s moves are: 1. e2e4 2. g1f3 3. f3e5 4. d1e2 5. e5c6 6. c6d8 7. e2e4 8. c1g5 9. e4e7 Here is a Lichess analysis of this game: https://lichess.org/WnMF3LpX (In terms of Regexes, Java", "context": "", "use_case": "", "switched_from": "", "story": "Regex Chess: A 2-ply minimax chess engine in 84,688 regular expressions"}, {"id": 767807328, "item_id": 47987958, "url": "https://news.ycombinator.com/item?id=47987958", "by": "ucarion", "date": "2026-05-02", "version": null, "stance": "neutral", "quote": "Stockfish's heuristic for \"risk of zugzwang\" is basically \"only kings and pawns left over\"", "excerpt": "In old-school chess AIs, zugzwang is also of interest because it can break null-move pruning[0], which is a way to prune the search tree. \"Null move\" just means \"skip your turn\", and the assumption that skipping your turn is always worse than the optimal move. But in zugzwang positions, that assumption is wrong, so you have to avoid doing null-move pruning. Stockfish's heuristic for \"risk of zugzwang\" is basically \"o", "context": "", "use_case": "", "switched_from": "", "story": "Zugzwang"}, {"id": 765332912, "item_id": 47833307, "url": "https://news.ycombinator.com/item?id=47833307", "by": "joshka", "date": "2026-04-20", "version": null, "stance": "recommend", "quote": "Go throw yourself at Stockfish or another chess engine for this. They tend to have good test harness", "excerpt": "> An open question is whether the AIs could find optimizations that are not possible if we use a higher-level language like C or C++. It is an intriguing question that I will seek to answer later. For the time being, the AIs can beat my C++ compiler! Go throw yourself at Stockfish or another chess engine for this. They tend to have good test harness that can give you an idea of whether the speedups are worth the effo", "context": "", "use_case": "testing AI assembly optimization", "switched_from": "", "story": "Can your AI rewrite your code in assembly?"}, {"id": 763924032, "item_id": 47745252, "url": "https://news.ycombinator.com/item?id=47745252", "by": "bhu1st", "date": "2026-04-12", "version": null, "stance": "compare", "quote": "integrate Stockfish like Engine for Baghchal one day", "excerpt": "Chess engine is already a solved problem, yes, but Baghchal would love some attention. I have been maintaining https://www.baghchal.net for more than a decade now and I dream of the day I could integrate Stockfish like Engine for Baghchal one day. I haven't gotten chance to dive deep into this myself because of work and personal reasons but it could be a great niche to explore since you mentioned about Chess. Look in", "context": "", "use_case": "chess engine", "switched_from": "", "story": "Ask HN: Any Interesting Niche Hobbies?"}, {"id": 762240240, "item_id": 47640015, "url": "https://news.ycombinator.com/item?id=47640015", "by": "ma2kx", "date": "2026-04-04", "version": null, "stance": "neutral", "quote": "https://www.chess.com/news/view/stockfish-outlasts-nakamura-3634", "excerpt": "https://www.chess.com/news/view/stockfish-outlasts-nakamura-3634 > In comparision, Nakamura had the assistance of an older version of Rybka (about 200 points less than Stockfish's 3200+ rating), and it ran on a 2008 MacBook. Of course, he also had his 20-plus years of chess knowledge in play.", "context": "", "use_case": "", "switched_from": "", "story": "The Beginning of Programming as We'll Know It"}, {"id": 762122033, "item_id": 47632627, "url": "https://news.ycombinator.com/item?id=47632627", "by": "ma2kx", "date": "2026-04-03", "version": null, "stance": "neutral", "quote": "Nakamura played with Rybka against Stockfish from 2014", "excerpt": "Here is a Match where Nakamura played with Rybka against Stockfish from 2014: https://www.chess.com/news/view/stockfish-outlasts-nakamura-3634 And here Nakamura still reached 4.5:3.5 vs Komodo in 2016 https://www.chess.com/news/view/komodo-beats-nakamura-in-final-battle-1331 Hikaru surely has more matches like that, but I don't know if they can be found in chess databases or if they were only streamed on YouTube.", "context": "", "use_case": "", "switched_from": "", "story": "The Beginning of Programming as We'll Know It"}, {"id": 761799232, "item_id": 47612452, "url": "https://news.ycombinator.com/item?id=47612452", "by": "vova_hn2", "date": "2026-04-02", "version": null, "stance": "neutral", "quote": "", "excerpt": "> I knew that it was just a minmax with alpha beta pruning and a really good eval function. Now its not. It is still \"just\" a minimax with alpha beta pruning, except the eval function is now a neural network. NNUE, to be more specific. I highly advise anyone who is curious about chess engines, but hasn't heard about NNUE to read about it. I find this technology absolutely fascinating. The key idea is that a neural ne", "context": "", "use_case": "", "switched_from": "", "story": "AI Perfected Chess. Humans Made It Unpredictable Again"}, {"id": 760934816, "item_id": 47558426, "url": "https://news.ycombinator.com/item?id=47558426", "by": "anematode", "date": "2026-03-28", "version": null, "stance": "neutral", "quote": "Here's an example of me beating Stockfish 18 at depth 1", "excerpt": "Actually, the neural net itself is fairly imprecise. Search is required for it to achieve good play. Here's an example of me beating Stockfish 18 at depth 1: https://lichess.org/XmITiqmi", "context": "", "use_case": "chess engine", "switched_from": "", "story": "Further human + AI + proof assistant work on Knuth's \"Claude Cycles\" problem"}, {"id": 756956545, "item_id": 47309784, "url": "https://news.ycombinator.com/item?id=47309784", "by": "spaceships", "date": "2026-03-09", "version": null, "stance": "neutral", "quote": "It uses stockfish and AI for analysis.", "excerpt": "I'm working on a Chess improvement app https://blunders.ai. The main goal is letting people analyze their games and improve by studying their blunders. It uses stockfish and AI for analysis. You can chat with your games like \"Why would I do ___ instead of this?\" Also, there are the standard puzzles and openings type learning with improvement plans.", "context": "", "use_case": "chess engine analysis", "switched_from": "", "story": "Ask HN: What Are You Working On? (March 2026)"}, {"id": 755225761, "item_id": 47201610, "url": "https://news.ycombinator.com/item?id=47201610", "by": "vigrant", "date": "2026-02-28", "version": null, "stance": "neutral", "quote": "Stockfish can never actually play against it", "excerpt": "The constraint is enforced at every move. Stockfish can never actually play against it. The only limitation is that its internal search tree imagines unconstrained future moves, which makes its evaluation slightly off and the engine effectively weaker. For the use case (handicapping for fun) that's an acceptable tradeoff https://constrainedchess.vercel.app/?fen=2b1kb2%2F8%2F8%2F8%2F8%2F8%2FPPPPPPPP%2FRNBQKBNR+w+KQ+-+", "context": "", "use_case": "Chess engine opponent", "switched_from": "", "story": "Show HN: Constrained Chess, Play Stockfish with custom natural-language rules"}, {"id": 755217808, "item_id": 47201113, "url": "https://news.ycombinator.com/item?id=47201113", "by": "vunderba", "date": "2026-02-28", "version": null, "stance": "warn", "quote": "the set of valid moves you are passing into Stockfish only affects the initial move.", "excerpt": "> That function runs client-side and filters the list of legal UCI moves before being passed to Stockfish's searchmoves parameter, so Stockfish's skill level, depth, and randomness all still apply correctly within the allowed set. Hmmm... I can immediately think of a reason this won't work. If I create a constraint that says \"Bishops are only capable of moving 4 squares maximum\", the set of valid moves you are passin", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Constrained Chess, Play Stockfish with custom natural-language rules"}, {"id": 755239712, "item_id": 47202482, "url": "https://news.ycombinator.com/item?id=47202482", "by": "vunderba", "date": "2026-02-28", "version": null, "stance": "neutral", "quote": "It'd be nice if stockfish or its variants exposed the \"ply searcher\"", "excerpt": "Ah yeah that'll get complicated quickly. :( It'd be nice if stockfish or its variants exposed the \"ply searcher\" with some kind of a callback so you could quickly kill a ply based on your custom constraints. When I was doing some research into rolling my own chess engine about 5 years ago I stumbled across this: https://github.com/josefjadrny/js-chess-engine But you'd have to modify its minimax search and now we're g", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Constrained Chess, Play Stockfish with custom natural-language rules"}, {"id": 754032688, "item_id": 47127043, "url": "https://news.ycombinator.com/item?id=47127043", "by": "n_e", "date": "2026-02-23", "version": null, "stance": "neutral", "quote": "stockfish's WDL is very rudimentary", "excerpt": "> but I still think the developers of both engines banter over who is really producing the True WDL numbers for a given position In fact, stockfish's WDL is very rudimentary: it is a function of the centipawn evaluation of the position and the value of the remaining material. See https://github.com/official-stockfish/Stockfish/blob/a6d055d7e27ab3e29a42e8b94215102824760057/src/uci.cpp#L561", "context": "", "use_case": "chess engine evaluation", "switched_from": "", "story": "What Is a Centipawn Advantage?"}, {"id": 752828064, "item_id": 47051754, "url": "https://news.ycombinator.com/item?id=47051754", "by": "sscg13", "date": "2026-02-17", "version": null, "stance": "neutral", "quote": "Stockfish wins the rematch also.", "excerpt": "Surely it is apparent to you that the first few moves are not independently chosen by the engine, but rather intentionally chosen by the TCEC bookmakers to create a position on the edge between a draw and a decisive result. For what it's worth, Stockfish wins the rematch also. https://tcec-chess.com/#game=13&round=fl&season=cup16", "context": "", "use_case": "", "switched_from": "", "story": "Chess engines do weird stuff"}, {"id": 752826768, "item_id": 47051673, "url": "https://news.ycombinator.com/item?id=47051673", "by": "LogicalRisk", "date": "2026-02-17", "version": null, "stance": "compare", "quote": "Here's a game from a month ago where Stockfish loses to Lc0", "excerpt": "Here's a game from a month ago where Stockfish loses to Lc0, played during the TCEC Cup. https://lichess.org/S9AwOvWn Chess is a 2 player game of perfect, finite information, so by Zermelo's theorem either one side always wins with optimal play or it's a draw with optimal play. The argument from the Discord person simply says that Stockfish computationally can't come up with a way to beat itself. Whether this is true", "context": "", "use_case": "", "switched_from": "", "story": "Chess engines do weird stuff"}, {"id": 752822928, "item_id": 47051433, "url": "https://news.ycombinator.com/item?id=47051433", "by": "helloplanets", "date": "2026-02-17", "version": null, "stance": "neutral", "quote": "Stockfish does lose every now and then against top engines.", "excerpt": "There's the TCEC [0] which is a big thing in some circles. Stockfish does lose every now and then against top engines. [1] Usually it's two different engines playing against one another, though. Like Leela Chess Zero [2] vs. Stockfish. In that hypothetical of running 2 instances of Stockfish against one another on a modern laptop, with the key difference being minutes of compute time, it'd probably be very close to 1", "context": "", "use_case": "Chess engine", "switched_from": "", "story": "Chess engines do weird stuff"}, {"id": 752815088, "item_id": 47050943, "url": "https://news.ycombinator.com/item?id=47050943", "by": "helloplanets", "date": "2026-02-17", "version": null, "stance": "neutral", "quote": "Stockfish is not unbeatable by another engine, or another copy of Stockfish.", "excerpt": "This is not true. Stockfish is not unbeatable by another engine, or another copy of Stockfish. Chess engines have been impossible for humans to beat for well over a decade. But a position in chess being solved is a specific thing, which is still very far from having happened for the starting position. Chess has been solved up to 7 pieces. Solving basically amounts to some absolutely massive tables that have every var", "context": "", "use_case": "", "switched_from": "", "story": "Chess engines do weird stuff"}, {"id": 750950192, "item_id": 46934387, "url": "https://news.ycombinator.com/item?id=46934387", "by": "seanhunter", "date": "2026-02-08", "version": null, "stance": "neutral", "quote": "Stockfish 18 is estimated to be in excess of 4000 elo", "excerpt": "The last public ranking of chess centaurs was 2014, after which it is generally held to be meaningless as the ranking of a centaur is just the same as the ranking of the engine. Magnus Carlsen\u2019s peak elo of 2884 is by far the highest any human has ever achieved. Stockfish 18 is estimated to be in excess of 4000 elo. Which is to say the difference between it and the strongest human player ever is about the same as the", "context": "", "use_case": "", "switched_from": "", "story": "First Proof"}, {"id": 748478018, "item_id": 46779876, "url": "https://news.ycombinator.com/item?id=46779876", "by": "atimcha", "date": "2026-01-27", "version": null, "stance": "neutral", "quote": "Play against Stockfish", "excerpt": "Hello HN! I've been working on lichess.el, a full-featured Lichess client for Emacs. This is my first big project in Elisp, so I'd love for seasoned Emacsers to jump in, review the code, or help implement missing features! Current main features: - Watch Lichess TV live with minimal latency. - Play against Stockfish \u2014 supports mouse input as well! - SVG-rendering inside GUI Emacs. - Full TUI support (ANSI/Unicode boar", "context": "", "use_case": "Chess engine opponent", "switched_from": "", "story": "Show HN: Lichess.el \u2013 Play Lichess Inside Emacs"}, {"id": 748335296, "item_id": 46770956, "url": "https://news.ycombinator.com/item?id=46770956", "by": "firasd", "date": "2026-01-26", "version": null, "stance": "recommend", "quote": "using Stockfish with multipv", "excerpt": "I've been analyzing classic \"romantic\" games using Stockfish with multipv (showing the top 4-5 lines rather than just the best move) 1. Morphy vs. Duke of Brunswick (The Opera Game) https://lichess.org/study/xAo78qLb/truC6WoM 16. Qb8+. This is viewed as Morphy doing a stylish Queen sacrifice But if you look at the MultiPV: Qb8+* leads to forced mate. Qc3 or Qb7 drops the advantage significantly. Qb5 actually allows e", "context": "", "use_case": "chess move analysis", "switched_from": "", "story": "Not all Chess960 positions are equally complex"}, {"id": 745541889, "item_id": 46596368, "url": "https://news.ycombinator.com/item?id=46596368", "by": "jfaat", "date": "2026-01-12", "version": null, "stance": "neutral", "quote": "I'm running games through stockfish/lc0/Maia", "excerpt": "I see some chess players so I want to plug the chess coaching app [0] I'm building. I don't know many chess players and could use feedback, but I had been paying for chess.com premium and tried some others and it's always game-level feedback which is insane to me because it's really not that helpful (as evidenced by my abysmal rating.) I'm running games through stockfish/lc0/Maia and doing some analysis of patterns a", "context": "", "use_case": "chess analysis engine", "switched_from": "", "story": "The chess bot on Delta Air Lines will destroy you (2024) [video]"}, {"id": 742449632, "item_id": 46403102, "url": "https://news.ycombinator.com/item?id=46403102", "by": "firasd", "date": "2025-12-27", "version": null, "stance": "neutral", "quote": "These Stockfish multipv (multi-principal-variation) outputs show something interesting", "excerpt": "These Stockfish multipv (multi-principal-variation) outputs show something interesting that contradicts the standard chess narrative of two of the most famous games. For more info on 'sham sacrifices', check out https://en.wikipedia.org/wiki/Sacrifice_(chess)#Sham_sacrifices and https://en.wikipedia.org/wiki/Rudolf_Spielmann", "context": "", "use_case": "analyzing chess games", "switched_from": "", "story": "Stockfish shows Morphy and Fischer didn't sacrifice their queens"}, {"id": 735625056, "item_id": 45976566, "url": "https://news.ycombinator.com/item?id=45976566", "by": "aw1621107", "date": "2025-11-18", "version": null, "stance": "warn", "quote": "where Stockfish blunders a seemingly winning position", "excerpt": "> if you playing chess then its oblivious how to differentiate bad move and best move The key words in what I said are \"general\" and \"objective\". Yes, it's possible to determine \"good\" or \"bad\" moves in specific positions. There's no known method to determine \"good\" or \"bad\" moves in arbitrary positions, as would be required for chess to be considered strongly solved. Furthermore, if it's \"obvious\" how to differentia", "context": "", "use_case": "", "switched_from": "", "story": "Cloudflare outage on November 18, 2025 post mortem"}]}