It runs on the device
The engine is compiled into the app and searches locally. That is not a privacy slogan — it is what makes the app work on a train, and what makes “analyse this” instant rather than a round trip to somebody’s GPU with a queue in front of it.
It also means the app has nothing to send anywhere, which is why the privacy policy is as short as it is.
It plays at a strength you set
Anywhere from about 1400 to full strength. A limited engine is not a strong engine playing badly on purpose in the obvious way: strength is limited by restricting how deep and how widely it searches, so it plays like somebody who did not see far enough — which is what a human opponent actually feels like.
It defends properly in the endgames
In the endgame drills the engine takes the other side and puts up the best defence there is. Knowing that king and pawn against king is winning is not the same as converting it against a defence that never errs, and the difference between those two states is exactly the thing the mode is for.
The one design decision worth arguing about
Move grading uses win probability, not centipawns.
Losing a hundred centipawns when you are already up a queen barely matters. Losing them in a level position is decisive. Centipawns cannot tell those apart — they are a linear scale laid over a game whose outcomes are not linear at all.
So every evaluation is converted to a win probability first, and the grade is the drop in your chances of winning. A trainer that says blunder when nothing happened stops being worth listening to, and once you stop listening the whole thing is decoration.
Same −100 cp, two positions
+9.0 → +8.0−1% to win
+0.2 → −0.8−24% to win
Illustrative. The app computes this from the actual evaluation each time.
And then it says something
“−1.4” is not feedback. This is.
Once the engine has an answer, a coaching layer turns it into a sentence about the position — built from the features that actually changed, not from a template with the move pasted in.
- “takes the open d-file”
- “plants the knight on the e5 outpost, where no pawn can dislodge it”
- “pries open lines toward the enemy king”
- “leaves the opponent with an isolated pawn”
- “lands the rook on the seventh rank”
- “breaks up the enemy bishop pair”
All of it translated into 31 languages — including the chess vocabulary, which is the part a player notices being wrong. A fork is a horquilla in Spanish, a fourchette in French, 捉双 — “catching two” — in Chinese and 両取り in Japanese.