ClassicChess Notebook

Linux · Windows · local-first

Analyze games and organize your notebooks

Watch Notebook organize games, analyze positions, and sync your work.

Download ClassicChess Notebook

Version 1.0.32 · Linux x86-64 or Windows 10/11 64-bit

Linux

Flatpak · 64-bit

flatpak remote-add --if-not-exists --user classic-chess https://classicchess.com/desktop/flatpak/repo/classic-chess.flatpakrepo
flatpak install --user classic-chess com.classicchess.desktop
Download Flatpakx64 · 104.9 MB

Use Check for Updates in Notebook to update from the signed Classic Chess repository.

Built for chess work

Files

Portable files

Each Notebook is one .ccnb file on your computer that you can copy, back up or email whole. Chapters stay standard PGN, and any game copies out as PGN.

Engines

Local engines

Install Stockfish, LCZero CPU, or LCZero GPU from the Engine Library. Notebook downloads the official release and keeps it updated.

Account

Browser sign-in

Sign in through your browser to sync. The desktop app never asks for your site password or authenticator code.

Documentation

ClassicChess Notebook works offline and keeps your files on your machine. Start on a scratch board, move the work you want to keep into a Notebook, and connect any Notebook to your Classic Chess account if you want it synced.

Getting started

Help → Welcome brings back the start page. New Blank Analysis opens a board straight away without creating a Notebook; the analysis stays in memory until you save it into a new or existing Notebook.

Use the Explorer to create folders and analyses. Right-click a Notebook or folder to create inside it, or right-click an analysis to create beside it.

Notebooks and cloud

The Library marks each Notebook as On this device, on your Classic Chess profile, or both. For synced Notebooks the status shows whether the copies match, which one is ahead, or whether both changed and need a look.

Analysis engines

Open Engines in the activity bar and install Stockfish, LCZero CPU, or LCZero GPU with one click. Notebook downloads the engine from its official project and keeps it updated.

Engines start with their own defaults. Advanced Settings lists every UCI option the selected engine reports, and you can reset one option or Reset all to engine defaults.

Commands and keyboard shortcuts

Ctrl+Shift+P opens the Command Palette. It starts empty; enabled extensions add their commands to it. Plain Ctrl+P is reserved.

File → Keyboard Shortcuts lets you search actions, add or change a key combination, remove one, fix a conflict, or go back to the defaults.

Remote access

Remote shares a Notebook session you start on one machine with another desktop signed in to the same account, over an encrypted connection tied to that account. On the second machine, choose Connect to Remote and Notebook reopens as a full workbench — Explorer, Library, books, engines, extensions and analysis — running on the host machine. Disconnect and you're back in your local workbench; the host keeps running. The connection only carries Notebook; it is not a shell and gives no general file access.

Extensions and authoring

Extensions installs local .ccx packages and lets you enable, disable, or uninstall them. A new extension starts disabled so you can look at its publisher, license, commands and requested permissions before any of its code runs.

Create a package

Choose Create Extension Starter for a working command-and-theme project. A theme-only extension does not need executable code or permissions: package extension.json with one or more validated themes/*.json files. A command extension adds extension.js. README.md and LICENSE are optional. ZIP the files, rename the archive to end in .ccx, and keep the finished package at 2 MB or smaller.

{
  "schemaVersion": 1,
  "id": "example.hello-chess",
  "displayName": "Hello Chess",
  "description": "A small analysis helper.",
  "version": "0.0.1",
  "publisher": "Example",
  "license": "MIT",
  "main": "extension.js",
  "permissions": ["analysis:read", "ui:notifications"],
  "contributes": {
    "commands": [
      {
        "command": "example.hello-chess.describePosition",
        "title": "Hello Chess: Describe Current Analysis"
      }
    ]
  }
}

Commands and permissions

Every command identifier must begin with the extension identifier. Supported permissions are analysis:read, analysis:write, and ui:notifications.

Register declared commands, read or replace the analysis, and show a notification with these API calls:

classicChess.commands.registerCommand(id, handler);
classicChess.analysis.read();
classicChess.analysis.replace(pgn);
classicChess.window.showInformationMessage(message);

Themes

To contribute only a color theme, omit main, permissions, and commands. Add contributes.themes entries with:

  • A unique lowercase id and a label.
  • A uiTheme: vs, vs-dark, hc-black, or hc-light.
  • A safe ./themes/name.json path. The theme file needs a non-empty colors object using Code OSS workbench color identifiers.

Notebook validates paths, JSON, identifiers, sizes, and color values before installation. Theme-only packages never run code.

Execution limits

Extensions run in an isolated, network-disabled Web Worker.

  • No access to Electron, Node, DOM, account credentials, shell commands, network requests, or arbitrary filesystem access.
  • Long-running activation or commands are stopped automatically.

Optional travel protection

Password protection is optional. A Notebook stays an ordinary unencrypted file unless you turn protection on in Notebook Settings or protect an exported copy.

Protected Notebooks use authenticated AES-256-GCM encryption. The password is never saved, and there is no password recovery—keep a separate backup.

Release integrity and licenses

ClassicChess Notebook is proprietary software. Every release includes SHA-256 checksums, a CycloneDX software bill of materials, and third-party notices.

The separate GPL archive contains only the covered Chessground board component, GPL chess-piece sets, AGPL sound themes, their notices and licenses, and the minimal component-specific instructions. It does not contain proprietary application source or its build chain.

Release commit: 4e5c0649b574ebd64974965f75fda28781643079