A VS Code extension that monitors your Chess.com Daily (correspondence) games and calmly signals when it is your turn to move, with a link to open the most urgent game in the browser.
Features
- Turn awareness — watches your ongoing Daily games and surfaces how many await a move.
- Grouped sidebar — a Chess view in the activity bar lists your Daily games by whose move it is: Your move, Low time (under an hour left to move), and Opponent's move — each group with a count, each game showing your opponent's name and exactly how long is left to move, soonest deadline first. Groups fold and unfold, so the panel stays calm and scannable.
- Click a game to see its board — click or keyboard-activate (Enter / Space) a game to open its live board right beneath it, oriented to your color; one board is open at a time. Click the board to open that game on Chess.com, or click the name again to fold the board away. Games stay listed and clickable even during a transient network failure.
- Opponent cards — hover over, or keyboard-focus, an opponent's name to see who you're
playing: their title, country, Daily rating, total Daily games, and the year they joined
Chess.com. Purely informational and screen-reader friendly; a View profile on Chess.com
button beneath the open board opens their full profile. On by default; turn it off entirely
with
vscodeChess.opponentCards. - New-games count on the chess icon — when games newly become your move while the panel is hidden, a number appears on the activity-bar icon, so you can tell something changed without opening the panel. Opening the panel clears it; it counts only games that are new since you last looked, and it survives restarts.
- Move Trail — the open board highlights the two squares of the most recent move (where the last piece came from and where it landed) with a warm gold tint.
- Board Theme — the board squares wear your active VS Code color theme, while the pieces stay
unchanged; switch back to classic board colors with
vscodeChess.boardTheme. - Always-visible signal — a status-bar ♟ stays visible in every state, even when no game awaits your move or the sidebar is hidden.
- Proof of life — the ♟ appears the moment the extension loads, before you've set a username, so you always know it's installed and running.
- One-click to the board — opens the most urgent game (soonest move deadline) on Chess.com.
- Calm by design — never blanks the UI on a transient network error and never nags; a blip shows a quiet "Reconnecting…" while keeping the last-known count.
- No credentials — uses only a Chess.com username against the public, unauthenticated Chess.com API.
Covers Daily (correspondence) games only; Live formats (Blitz, Rapid, Bullet) are not supported.
Accessibility
- Group headers, game rows, and the open board are native VS Code webview buttons with descriptive accessible names; group headers announce whether they are expanded or collapsed.
- Keyboard users can Tab through the panel in reading order and activate any control with Enter or Space — fold a group, open a game's board, or open the game on Chess.com.
- Empty states are plain text messages, so focus never lands on a dead control.
- The focused control uses VS Code's focus color, including High Contrast themes.
- The opponent card is a pure description, not a control: it never traps focus or requires entering it, and the same content is announced to screen readers on keyboard focus as on hover. Escape dismisses it without moving your focus.
Requirements
- Visual Studio Code
- A public Chess.com username with ongoing Daily games
Installation
Install from the VS Code Marketplace, search VS Code Chess in the Extensions view, or run:
code --install-extension eunai.vscode-chess
From source
npm install
npm run build # bundle the extension host + webview into dist/
Then open the repository in VS Code and press F5 to launch an Extension Development Host with the extension loaded.
Usage
-
Open VS Code settings and set your Chess.com username:
// settings.json "vscodeChess.username": "your-chesscom-username"
Once a username is set, the extension begins monitoring automatically. A status-bar ♟
— the Presence — is always visible: it shows ♟ N when N Daily games await your
move (click it to open the most urgent game, soonest move deadline, in your browser),
and a bare ♟ when none await. Before you've configured a username it prompts you with
♟ Set Username, and if Chess.com doesn't recognise the username it shows
♟ Unknown User — both click through to Settings. It never disappears, so you always
have a proof of life that the extension is running.
Open the Chess view from the activity bar to see your Daily games grouped by whose move it is — Your move, Low time, and Opponent's move — each game named after your opponent with how long is left to move, soonest deadline first. Click a game to open its live board beneath it (one board at a time, oriented to your color); click the board to open that game on Chess.com. While the panel is hidden, a count on the chess icon shows how many games have newly become your move since you last looked — opening the panel clears it. Before you've set a username (or if Chess.com doesn't recognise it), the panel shows a short note and the status-bar ♟ is the click-through to Settings.
Versioning
This project follows Semantic Versioning 2.0.0. Notable changes are recorded in CHANGELOG.md.
License
Licensed under the GNU General Public License v3.0 or later
(GPL-3.0-or-later).
Board rendering uses chessground, the open-source board UI from Lichess, which is GPL-3.0-or-later; bundling it makes the combined extension subject to the GPL.