A modern Chrome extension for local Stockfish chess analysis on Chess.com, with best-move arrows, multi-line engine suggestions, evaluation, saved positions, visual themes, and a focused learning workflow.
KnightSense is a local browser extension that embeds the Stockfish chess engine in a Chrome Manifest V3 package. It observes the visible Chess.com board, builds a FEN position, runs Stockfish through a Web Worker/WASM bridge, and displays engine guidance as arrows and evaluation overlays.
Developer: Diwas Khatri
Repository: DiwasKhatri07/KnightSense-Chess-Engine
Release: Download the latest ZIP
Fair-play notice: This is a chess-learning and analysis tool. Use engine assistance only where the platform, event, teacher, or opponent permits it. It does not automatically move pieces. The supplied extension includes an overlay visibility control for review and screen sharing; it is not an anti-detection or fair-play bypass feature.
Stockfish runs locally from the included stockfish.js and stockfish.wasm files. Positions are not sent to a remote analysis API. The popup exposes search depth and think-time controls for adjusting analysis strength and responsiveness.
KnightSense can render the best engine move as an arrow, highlight the best square, and show an evaluation chip. You can draw up to three MultiPV lines, customize arrow colors, select palette presets, and tune arrow thickness, opacity, and arrowhead size.
The extension detects visible Chess.com pieces and builds a FEN-like position for analysis. You can select whether you are playing White or Black, flip the analysis side, save up to 30 positions locally, and re-analyze saved positions later from the popup.
The popup is organized into Engine, Arrows, Privacy, and About tabs. It includes a Nepal-inspired theme option, an engine status indicator, evaluation/depth/nodes information, saved-game controls, and a global overlay visibility shortcut.
- Download
KnightSense-Chess-Engine-v2.3.0.zipfrom the latest GitHub release. - Extract the ZIP into a normal folder. The extracted folder must directly contain
manifest.json. - Open
chrome://extensionsin Chrome or another Chromium-based browser. - Enable Developer mode.
- Click Load unpacked and select the extracted folder.
- Open a supported Chess.com board. The first install opens the supplied welcome page with terms and developer credits.
The packaged extension targets *://*.chess.com/*. It does not include a separate login flow and does not ask for your Chess.com credentials.
Open a Chess.com game or analysis board and wait for the board to appear. Open KnightSense from the extensions menu, leave the engine enabled, choose your side, and adjust depth or think time if needed. The popup displays engine lines as they become available, while the board overlay shows the selected arrows and evaluation.
Use the Arrows tab to choose colors, opacity, line count, and highlighting. Use Saved games to save the current position and analyze it later. Use the overlay visibility control when you want to temporarily hide the visual layer during a lesson or screen share.
The default global shortcut is Alt+Shift+H on Windows/Linux and macOS. It toggles overlay visibility on the active Chess.com tab. Chrome can show or change extension shortcuts at chrome://extensions/shortcuts.
flowchart LR
A[Chess.com board] --> B[content.js + helpers.js]
B --> C[Piece detection and FEN builder]
C --> D[engine.html iframe]
D --> E[engine_bridge.js]
E --> F[Stockfish Web Worker + WASM]
F --> E
E --> B
B --> G[SVG arrows and evaluation chip]
B --> H[Popup state via chrome.storage]
I[popup.html / popup.js] --> H
J[background.js] --> K[Global overlay shortcut]
K --> B
.
├── manifest.json # Manifest V3 metadata and permissions
├── background.js # Welcome page, badge, and overlay shortcut
├── content.js # Board detection, FEN, Stockfish commands, overlays
├── helpers.js # Piece mapping, board orientation, square coordinates
├── engine.html # Hidden extension engine frame
├── engine_bridge.js # Worker/WASM bridge for Stockfish
├── stockfish.js # Bundled Stockfish worker runtime
├── stockfish.wasm # Bundled Stockfish WebAssembly binary
├── popup.html / popup.css / popup.js
├── welcome.html / welcome.css / welcome.js
├── styles.css # Content overlay styles
├── icons/ # Extension icons
├── assets/ # README preview artwork and animation
├── docs/ # Maintenance and release documentation
└── KnightSense-Chess-Engine-v2.3.0.zip
The extension requests storage, commands, and host access to Chess.com pages. storage keeps preferences and saved positions locally. commands enables the overlay visibility shortcut. Chess.com host access is required to read the board and render analysis overlays. The extension does not request passwords, cookies, browsing history, or a remote API key.
The supplied source is published as received from the attached ZIP. If Chess.com changes its DOM, inspect and update the selector logic in content.js and helpers.js, then reload the unpacked extension and refresh the Chess.com tab. See docs/DOM-MAINTENANCE.md for the maintenance workflow.
This extension is a no-build browser package. Basic checks can be run with Node.js:
node --check background.js
node --check content.js
node --check engine_bridge.js
node --check helpers.js
node --check popup.js
node --check welcome.js
node -e 'JSON.parse(require("fs").readFileSync("manifest.json"))'Because Stockfish is distributed as a large JavaScript/WASM runtime, do not minify, rename, or remove stockfish.js, stockfish.wasm, engine.html, or engine_bridge.js without testing the engine worker bridge.
KnightSense is credited to Diwas Khatri. The included Stockfish engine is an independent open-source component distributed under GPL-3.0; see THIRD-PARTY-NOTICES.md and the official Stockfish license. The original extension source and bundled assets are provided as the attached project build.
See CHANGELOG.md for the published build history and v2.3.0 for the packaged release.
