Yikes, that title was a mouthful.
Maia is a chess bot developed by ten students at various universities. The Maia project is open source, but GPL licensed, so to use it in “my code” I had to make my project open source as well.
I did, but I can’t imagine why anyone would care about it. It’s AI slop.

Introduction
I thought that maybe I had stumbled on this brilliant, revolutionary idea that no one had thought of before.
Chess programs are great, and once received quite a bit of funding and media attention. Deep Blue defeated the world chess champion in the 1990s, but Arcade Fire is still writing songs about it to this day. “Deep Blue moment” has a certain ring to it, the idea that AI defeating humans at a game of wits represented our last great moment before we were bested by our machines.
But a human-like chess bot? Who would care about, let alone commission, something like that? The fact that we have algorithms to optimally pair equal-skilled players and the network infrastructure to connect them in a matter of seconds is a feat of engineering. It is now trivially easy to have a good chess game against a human, so who would want to play against a human-like bot?
Me. Games against AI can be paused. You can try out new openings, you can ponder a position for hours, you can start at any point. You can pick up a game in three minutes and then abruptly resign without worrying about some score or offending the person you are playing against.
AI like Stockfish always felt…wrong. Even at low (by which I mean my) level of chess, they would play seemingly perfect games and then blunder at all the wrong times.
My Experience With Maia
This is still Codex running with a $20 a month ChatGPT subscription. I am not sharing it (yet?), even though it is up on GitHub Pages and someone who really hates this blog could easily find it and then make fun of it. The reason for this is session storage. This thing still relies completely on session storage to save PGN files because GitHub pages does not provide a free custom backend, and I have not adequately explored the implications of that to the user. Also, the UX just isn’t there. The pieces have no animations and the analysis, though it clearly has SOME sense, fails to form results consistent with that of Lichess.

I have been playing my own version of the Maia bot at 1100, and I have been really impressed by it. First of all, Codex was able to use the Maia API. Second, there’s something…indescribable about it. I should probably blind-test Maia because maybe I am full of it, but humans play chess in a way that is hard to put into words. I had considered maybe injection “emotion” into a chess bot, leveraging Stockfish but inserting “hesitation fear” if the analysis suddenly favored the human, or “anger” that influenced the pseudo-human to make increasingly irrational moves as their score declined. Maia does none of that, it just makes moves that a human is more likely to make.
Then it did something a little weird.

It was kicking my ass, then it just blundered and hung a queen. Would a human in the same position at 1100 make a mistake like that? Maybe, but it seemed to me more like something I would expect Stockfish to do. Humans at my level, I find, tend to make “human mistakes.” They make little mistakes here and there over time, but they don’t just blunder like that after an otherwise good game. It’s like the ability suddenly dropped by 400 points.
Analysis

I rewinded a bit, and yes…hanging the queen was obviously a blunder and marked a significant turning point in which Maia was favored to win to…well…a game that I was favored to win. There is still something off about the analysis. The code seems reasonable, I guess (though the AI-generated explanation of it went to the trouble of explaining the design of an analysis graph that doesn’t exist), mostly asking the Stockfish AI to do the heavy lifting and provide the best move…but the actual values aren’t the same as those Lichess comes up with.

Closing Thoughts
That a team of researchers created a convincing human-like chess bot that I was able to use in my own slop was really impressive to me. Doesn’t seem perfectly human-like, but definitely a convenient and cool tool.
That my slop was also able to use it with a static backend is impressive as well, but if I am not careful I will quickly learn why paying for the hosting of an actual coded backend may prove beneficial. Session storage? A bunch of imaginary users could get really upset when all their games are lost.