Start a game on chess.com. Then never go back to that tab.
Your game keeps running where it always did. Chess Mirror puts the board in Chrome's side panel, so you play your moves from whatever tab you're actually in — reading, watching, working. You only return to chess.com if you feel like it.
500+ games played through it
Chrome 114+ · live games on chess.com · no engine, no advice
Chess has a lot of waiting in it.
A 15|10 game is mostly your opponent's clock. Chess Mirror is for the players who spend that time doing something else — and who lose games to a tab they forgot to go back to.
Keep the tab you're in
Your game doesn't have to be the window in front of you. Read, write, or watch in the main tab; the panel stays open beside all of them.
Notice it's your turn
The panel updates the moment your opponent moves. If you'd rather not keep a panel open, Chess Mirror can pop a small window instead — and it won't take your focus unless you tell it to.
Premove while they think
The mirror board stays live during your opponent's clock. Queue one move; it's re-checked against the new position and sent the instant their move lands.
Open a game. Then get on with your day.
You do the first two steps. After that the game comes to you.
Start a live game on chess.com, exactly the way you always do.
Click the Chess Mirror icon. Your board appears in Chrome's side panel, beside whatever else is on screen.
Go wherever you were going. Another tab, YouTube, your inbox, work. The panel stays put, and so does your game.
When your opponent moves, the panel shows it. Play your reply right there in the panel — no need to find the chess.com tab.
Your move goes through to the real board on its own. Same game, same clock, same rating. You never had to go back.
What it's doing underneath
Your live game. It stays open, it stays real, and it stays the only thing the server ever sees.
↓ game id · TCN move codes · clocksA small script watches the play-service socket the page already opened. It adds nothing to the page, and forwards no raw frames, headers or cookies — only the moves and the clocks.
↓ sanitized snapshotThe hub. It keeps the latest snapshot and hands it to whichever window you have open.
↓ position · clocks · whose turnThe mirror board and your input. Your move is applied here first, so the board answers straight away and reconciles afterwards.
↓ from square → to squareReplays your move on the real board as a pointer drag, then confirms it landed by watching the board itself rather than trusting a delay.
↓ pointerdown → pointermove ×4 → pointerupThe move is now just a move. Same game, same server, same rating.
Four things it will not do.
It never touches the page
chess.com fingerprints extensions by looking for the elements they inject into the board. Chess Mirror injects none. Every pixel of its interface lives in the panel, where the page can't see it.
It never waits on a timer
Chrome throttles timers and stops animation frames in hidden tabs — which is exactly the situation this extension exists for. A move is dispatched in one synchronous burst, and anything that genuinely has to wait waits on a DOM change instead.
It never guesses your position
A move is rolled back only on evidence: a later snapshot that still doesn't contain it. A backgrounded tab that hasn't repainted yet is not a failed move, and it isn't treated as one.
It has no engine
Nothing here evaluates a position, suggests a move, or plays for you. It shows you the game you're already allowed to see, and sends the move you already chose.
Synthetic input is a real risk to your account.
Chess Mirror plays your moves by dispatching pointer events at chess.com's board. That isn't engine assistance — nothing in it evaluates a position — but chess.com's terms restrict automated interaction with the service, and synthetic input is the pattern their fair-play systems watch for.
There is a real chance of an account flag. That's a judgement call, and it should be made knowingly.
Load it unpacked.
Chess Mirror isn't in the Chrome Web Store. Until it is, you install it from the source folder, which takes about a minute.
Download the extension folder and unzip it somewhere permanent. Chrome reloads the extension from this folder every time it starts, so don't leave it in Downloads.
Open chrome://extensions and turn on Developer mode.
Click Load unpacked and choose the folder you unzipped.
Open a live game on chess.com and click the Chess Mirror icon in the toolbar. Pick Side panel or Popup on move in the panel footer.