Chess

chessGM engine vs Apple’s Chess app: 10 games, 10 wins, and what “256 seconds” really means

The chessGM engine played ten games against the engine inside Apple’s Chess app (Sjeng) at its strongest setting: the results, a fair-time check, accuracy charts, key moments, and what the numbers do not tell you.

The short version

  • The chessGM engine played 10 games against Sjeng 11.2, the chess engine inside Apple’s Chess app (Chess.app) at its strongest setting, and won all 10, every one by checkmate, five opening lines with each colour.
  • Chess.app’s strongest setting says “Computer thinks 256 seconds per move”, but the engine does not actually use that long. We measured about 6.3 to 6.5 seconds of processor time per move, and gave chessGM the same time on the clock. Sjeng actually averaged slightly more than chessGM.
  • Stockfish, run at depth 16 over every move, found 5 blunders, 8 mistakes and 14 inaccuracies by Sjeng and 1 inaccuracy by chessGM. Average centipawn loss was 9.5 for chessGM and 50.4 for Sjeng.
  • We did not place Sjeng on a rating scale from these games, because ten losses only give an upper limit. A separate set of 12 games against Stockfish puts it at about 2557 on Stockfish’s own UCI_Elo scale, with a wide range of 2313 to 2797. That scale is not a chess.com or human rating.
  • These are computer-versus-computer games. Nothing here says how either engine plays people. Apple and Chess.app are Apple’s names, and Apple has not taken part in or approved this test.

What we did, and how fair it was

Chess.app ships with macOS and plays with an engine called Sjeng. We wanted to know how the current chessGM engine compares with it at its best, so we played ten games from five opening lines, played from both colours, so neither side got only the easier side of an opening.

  • chessGM: its current engine, 1 thread and a 64 MB hash, so a modest setup on one core.
  • Sjeng: version 11.2, as shipped inside Chess.app, with the strength slider pushed all the way to the right.
  • Time: Chess.app’s top setting stores a search time value of 12 and sends Sjeng only a depth limit of 30, with no clock command. In practice Sjeng spent about 6.3 to 6.5 seconds of processor time per move. We gave chessGM the same wall time. Averaged over the ten games, chessGM used about 6.4 seconds per move and Sjeng about 7.6, so Sjeng had slightly more.
  • Pondering (thinking on the opponent’s time) was switched off for Sjeng.

One important detail: the games were played headless, with both engines run through the same sjeng program that Chess.app uses, because Chess.app cannot be driven live by another program. The Chess.app screenshots further down are replays: afterwards we opened each game in the app and photographed the window. They show the real app and the real moves, not a live game inside it.

Chess.app window showing Chess.app's own New Game sheet with the computer slider pushed to its right-hand end (Stronger). The app labels this “Computer thinks 256 seconds per move“, but at this setting it only sends Sjen
Chess.app's own New Game sheet with the computer slider pushed to its right-hand end (Stronger). The app labels this "Computer thinks 256 seconds per move", but at this setting it only sends Sjeng a depth limit of 30 and no clock: measured in the same app, Sjeng spends about 6.3 s of CPU per move. That is the level chessGM was matched against. The label is Apple’s wording and does not describe the time the engine really used.

Every game

Accuracy is the deep review’s score from 0 to 100 for how close each side’s moves were to the best moves it found. The deep review searches 18 half-moves per move and is the same review used in the chessGM app.

#chessGMOpeningResultPlieschessGM accuracySjeng accuracySjeng blunders (Stockfish)
1White1. e4 c5 2. Nf3 d61-0 mate5997.889.60
2Black1. e4 c5 2. Nf3 d60-1 mate12496.7921
3White1. e4 e5 2. Nf3 Nc61-0 mate9798.295.31
4Black1. e4 e5 2. Nf3 Nc60-1 mate13698.496.11
5White1. d4 d5 2. c4 e61-0 mate6599.382.41
6Black1. d4 d5 2. c4 e60-1 mate7698.586.50
7White1. e4 e6 2. d4 d51-0 mate6598.285.30
8Black1. e4 e6 2. d4 d50-1 mate13496.292.80
9White1. Nf3 Nf6 2. c4 e61-0 mate3795.672.31
10Black1. Nf3 Nf6 2. c4 e60-1 mate11298.490.60

Download all 10 games as one PGN file

Accuracy under three reviews

Mean accuracy over the ten games, for each side, under three different analysers. The scale starts at 70. All three agree on the order; Stockfish is the harshest on Sjeng.

The three analysers differ in depth and in how they turn an evaluation into a score, but they agree on the picture: chessGM played close to the best moves the analysers could find, and Sjeng made a steady stream of small and larger errors. Sjeng’s search depth averaged about 10.5 half-moves against about 21.9 for chessGM, in the same amount of time.

How the games went

Stockfish’s evaluation after every move, from chessGM’s side: above the middle line means chessGM is better. Clamped to six pawns; a forced mate is drawn at the edge. In every game the line ends far above zero, at a forced mate.

Key moments

Game 9: the shortest win, a bishop sacrifice on h7

Game 9 is the shortest of the ten: chessGM as White won in 19 moves (37 plies) from a Bogo-Indian line. The position below is before the turning point. The green arrow is the move the engine played.

Game 9, position before 10.Bxh7+ (chessGM has White). The engine plays the classic bishop sacrifice on h7, which drags Sjeng’s king out. chessGM’s own evaluation jumps to about +2.9 after the move.
Chess.app window showing Game 9, after 10.Bxh7+ (ply 19): chessGM starts the classic bishop sacrifice on h7; this is where Sjeng's king is drawn out.
Game 9, after 10.Bxh7+ (ply 19): chessGM starts the classic bishop sacrifice on h7; this is where Sjeng's king is drawn out.
Chess.app window showing Game 9, after 13.Bxg6+ (ply 25): the attack is decisive, chessGM now sees a forced mate.
Game 9, after 13.Bxg6+ (ply 25): the attack is decisive, chessGM now sees a forced mate.
Game 9, the final position after 19.Qg6 mate. The two yellow squares show the last move. The engine’s own log reported a forced mate from move 13.
Chess.app window showing Game 9, final position after 19.Qg6 mate (37 plies), the shortest win of the match.
Game 9, final position after 19.Qg6 mate (37 plies), the shortest win of the match.

Game 1: Sjeng’s biggest slip

Game 1, position after 12...gxf4 (ply 24). Stockfish rated this as Sjeng’s biggest slip of the game: the evaluation moves from +2.7 to +4.2 for chessGM, who has castled long and has the open g-file. chessGM then won by checkmate on move 30.
Chess.app window showing Game 1, after 12...gxf4 (ply 24): Sjeng's biggest slip by Stockfish, the evaluation moves from +2.7 to +4.2 for chessGM, who has castled long and has the open g-file.
Game 1, after 12...gxf4 (ply 24): Sjeng's biggest slip by Stockfish, the evaluation moves from +2.7 to +4.2 for chessGM, who has castled long and has the open g-file.
Chess.app window showing Game 1, final position after 30.Bc4 mate (59 plies): chessGM wins. Chess.app shows the board from Black's side because it is Black's turn.
Game 1, final position after 30.Bc4 mate (59 plies): chessGM wins. Chess.app shows the board from Black's side because it is Black's turn.

Game 3: a blunder in a long game

Game 3, position after 22...Nfd7 (ply 44), a Ruy Lopez with 3...Bc5. Stockfish counted this as a blunder by Sjeng: the evaluation goes from +1.4 to +5.7 for chessGM. The game lasted 97 plies.
Chess.app window showing Game 3, after 22...Nfd7 (ply 44): Sjeng's blunder by Stockfish, +1.4 to +5.7 for chessGM.
Game 3, after 22...Nfd7 (ply 44): Sjeng's blunder by Stockfish, +1.4 to +5.7 for chessGM.

What Stockfish said about the mistakes

We asked Stockfish at depth 16 to grade every move of every game by how much the evaluation fell compared with its best move. By that measure Sjeng made 5 blunders, 8 mistakes and 14 inaccuracies across the ten games. chessGM made one inaccuracy and no mistakes or blunders. Average centipawn loss, a rough measure of how far each side’s moves were from Stockfish’s best, was 9.5 for chessGM and 50.4 for Sjeng. These are one analyser’s opinions, so we use them as a second view, not as proof.

How strong is Sjeng at its maximum? The honest answer

A 10–0 score tells you chessGM is clearly stronger. It cannot tell you by how much, because a perfect result has no upper limit on the other side of the score. Ten losses bound Sjeng from above: the 95 percent upper limit on its rating is about 2994, which is not very informative.

To place it better we played Sjeng against Stockfish limited to fixed strength settings (its UCI_Elo scale), 12 games in all: four each against Stockfish settings of 2300, 2600 and 2900. Sjeng scored 75 percent against 2300, 62.5 percent against 2600 and nothing against 2900. A maximum-likelihood fit puts Sjeng at about 2557 on that scale, with a 95 percent range of 2313 to 2797. The range is wide because 12 games is a small sample. Stockfish had 1 second per move and Sjeng about 6.5 seconds in those games.

So please read it as “somewhere around the mid-2500s on Stockfish’s scale”, not as a precise number. That scale is anchored to engine ratings at long time controls. It is not chess.com’s bot scale and not a human rating, and it should not be compared with them.

What the numbers do and do not mean

  • Ten games is a small sample. The clear gap in accuracy and in errors is the stronger evidence than the 10–0 itself.
  • Both sides ran on our hardware at about the same time per move. A different machine or time control would change the details.
  • Sjeng here is version 11.2 at the strongest Chess.app setting with pondering off, and chessGM is its current engine on one thread. Other settings give other results.
  • These are computer games. Nothing here says how either engine would do against a person, and the games were not rated or competitive.
  • The screenshots are replays opened in Chess.app, not live games.
  • Accuracy scores are each analyser’s own measure and a winning side scores high more easily.

How to repeat this yourself: open Chess on a Mac (the app that comes with macOS) and choose New Game with Human vs. Computer, then slide the computer setting to Stronger. The engine inside is Sjeng. Play it, then paste the game into any analysis tool to see where the evaluation moved. You will not get the same equal-time conditions we used by playing live, because the app’s own timer is not the time the engine really uses, but it is the quickest way to see Sjeng for yourself.

Try it

The engine in this report is the one behind chessGM. You can play it at the strength you choose, review your own games with the same quick and deep reviews we used here, and follow a training plan for your rating. Both the app and its guide are free.

Play chessGM in your browser

Read the chessGM user guide

The earlier report: chessGM against chess.com’s computer bots

Sources

  • The ten games: PGN file linked above, played headless on 20 October 2026.
  • Accuracy and labels: the chessGM app’s quick (depth 12) and deep (depth 18) reviews, and Stockfish 19 at depth 16.
  • Calibration: 12 games of Sjeng against Stockfish at UCI_Elo 2300, 2600 and 2900, with a maximum-likelihood fit and a 95 percent likelihood interval.
  • Apple, Mac, macOS and Chess are Apple’s names and trademarks, used here as plain text. We are not affiliated with Apple, and Apple did not take part in this test.

About the authors

22Softwares is a software company in Thessaloniki, Greece and Dhaka, Bangladesh. We build and run chessGM and Carrom by 22Softwares. This report was written by the 22Softwares team from data produced by the chessGM engine team. Questions and corrections are welcome at info@22softwares.com.

Facts and numbers from the chessGM team’s Apple Chess report (20 October 2026). Counts, means and charts on this page are computed from that data.

Questions

Does “Computer thinks 256 seconds per move” mean Chess.app thinks for 256 seconds?

No. At that setting Chess.app sends Sjeng a depth limit and no clock, and in our measurements the engine spent about 6.3 to 6.5 seconds of processor time per move.

What is Sjeng?

Sjeng is the open-source chess engine that Chess.app uses. We played version 11.2, as shipped in the app.

What rating does this give Sjeng?

We do not give it an exact rating. Against Stockfish’s own UCI_Elo scale it comes out at about 2557 with a range of 2313 to 2797, from only 12 games. That scale is not a human or chess.com rating.

Did Apple take part?

No. We used the engine that ships in Chess.app and photographed the app window. Apple has not endorsed or reviewed this test.