{"id":21543050,"url":"https://github.com/adamsol/chesshue","last_synced_at":"2026-02-10T07:31:03.113Z","repository":{"id":230717210,"uuid":"779992798","full_name":"adamsol/ChessHue","owner":"adamsol","description":"GUI for analysis of chess games, with automatic move grading. Built with Chessground, Chess.js, and Electron.","archived":false,"fork":false,"pushed_at":"2024-09-29T18:30:56.000Z","size":585,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-24T08:43:47.384Z","etag":null,"topics":["analysis","chess","chessground","electron","game","gui","review"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adamsol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-31T11:45:10.000Z","updated_at":"2025-01-08T01:27:44.000Z","dependencies_parsed_at":"2024-03-31T12:40:14.313Z","dependency_job_id":"c228ada9-5766-4f3f-8f16-bf19cab569f0","html_url":"https://github.com/adamsol/ChessHue","commit_stats":null,"previous_names":["adamsol/chesshue"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamsol%2FChessHue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamsol%2FChessHue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamsol%2FChessHue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adamsol%2FChessHue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adamsol","download_url":"https://codeload.github.com/adamsol/ChessHue/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244130283,"owners_count":20402753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analysis","chess","chessground","electron","game","gui","review"],"created_at":"2024-11-24T05:12:43.376Z","updated_at":"2026-02-10T07:31:03.088Z","avatar_url":"https://github.com/adamsol.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003ch1\u003eChessHue\u003c/h1\u003e\n    \u003cimg alt=\"Logo\" src=\"img/logo.jpg\" width=\"200\" /\u003e\n\u003c/div\u003e\n\n### GUI for analysis of chess games, with automatic move grading. ###\n\nCreated to make post-game analysis as convenient as in the browser, but faster.\n\n![Screenshot](img/app.png)\n\n\nUnique features\n---------------\n\n* ChessHue registers `chess://` protocol handler,\n  which makes it easy to start the application directly from the browser,\n  after any game on sites like Chess.com or Lichess, with the PGN automatically filled in.\n  See [below](#running-from-the-browser) for details.\n\n* Engines usually evaluate moves that result in repeating a given position the same as the actual winning moves,\n  which makes it harder to see what should've been played to convert the advantage.\n  In ChessHue there's an option called \"Prevent repetitions\",\n  which fools the engine into thinking that the position has already appeared twice and so the next repetition would be a draw.\n\n* Other applications classify your moves as mistakes, blunders, etc.\n  Since these categories are arbitrary and impossible to define unambiguously,\n  ChessHue rates moves using a continuous color scale instead.\n\n\nRequirements\n------------\n\n* [Node.js](https://nodejs.org/) (tested with version 20)\n* Chess engine: any UCI-compliant engine should theoretically work,\n  but only [Stockfish](https://stockfishchess.org/download/) has been tested.\n* OS: any modern OS should theoretically work, but only Windows has been tested.\n\n\nHow to use\n----------\n\n1. Download your favourite chess engine, rename the executable to `engine.exe`,\n   and put it in the root folder of the project.\n\n2. Run `npm install` and `npm run build`, then `npm start` to start ChessHue.\n\n\nRunning from the browser\n------------------------\n\nAfter ChessHue is run once, the next time it can be started using the `chess://` protocol.\nYou can pass your PGN in the URL, like `chess://e4_e5/`.\n\nTo analyse your games in ChessHue right after they end:\n\n1. Install a browser extension that can inject JavaScript code on any website,\n   like [Code Injector](https://github.com/Lor-Saba/Code-Injector).\n\n2. Depending on whether you play on Chess.com or Lichess, set up one of the following snippets to inject:\n\n   * Code for Chess.com:\n\n     ```js\n     document.addEventListener('keydown', e =\u003e {\n         if (e.key === 'l' \u0026\u0026 document.querySelector('.game-review-buttons-component')) {\n             const nodes = document.querySelectorAll('.main-line-ply');\n             if (nodes.length \u003e 0) {\n                 const moves = [...nodes].map(e =\u003e e.textContent.trim());\n                 const clock = document.querySelector('.clock-bottom');\n                 const color = clock.classList.contains('clock-black') ? 'b' : 'w';\n                 const url = `chess://${moves.join('_')}/${color}`;\n                 window.open(url.replace('#', '%23'), '_blank');\n             }\n         }\n     });\n     ```\n\n   * Code for Lichess:\n\n     ```js\n     document.addEventListener('keydown', e =\u003e {\n         if (e.key === 'l' \u0026\u0026 document.querySelector('.rematch')) {\n             const nodes = document.querySelectorAll('l4x kwdb');\n             if (nodes.length \u003e 0) {\n                 const moves = [...nodes].map(e =\u003e e.textContent.trim());\n                 const clock = document.querySelector('.rclock-bottom');\n                 const color = clock.classList.contains('rclock-black') ? 'b' : 'w';\n                 const url = `chess://${moves.join('_')}/${color}`;\n                 window.open(url.replace('#', '%23').replace(/½\\?/g, ''), '_blank');\n             }\n         }\n     });\n     ```\n\n3. After your game, press \u003ckbd\u003eL\u003c/kbd\u003e to start ChessHue with the moves imported automatically.\n\n   Note that the code prevents you from accidentally starting the application during the game.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamsol%2Fchesshue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadamsol%2Fchesshue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadamsol%2Fchesshue/lists"}