Sudoku

Daily sudoku in four difficulties, with notes and hints that explain

palupdated 2026-09-29FunIn pal's registry

Open in pal

In pal's registry: the button shows it in pal, which asks before installing; the command does the same from a terminal. This page can't see what your pal has installed.

Sudoku: Today's medium, half solved: the digit in focus and its notes lit across the board, the pad's bars
Today's medium, half solved: the digit in focus and its notes lit across the board, the pad's bars
Sudoku: A hint: where to look first, then why, and the move on Enter
A hint: where to look first, then why, and the move on Enter
Sudoku: Solved: the time, the streak, Flawless, and today's next daily on Enter
Solved: the time, the streak, Flawless, and today's next daily on Enter
Sudoku: ⌘N: today's puzzle or a new one, per difficulty
⌘N: today's puzzle or a new one, per difficulty
Sudoku: Stats per difficulty: the best, the average, the streak and every solve
Stats per difficulty: the best, the average, the streak and every solve
1 of 5

What it does

Sudoku made on your machine: a daily puzzle in Easy, Medium, Hard and Expert (the same for everyone that day) and a new one whenever you like, graded by the techniques it takes. Notes without switching modes, auto notes, hints that explain in plain words, and every move saved.

  • A daily puzzle per difficulty, the same on every machine, and a new one any time with cmd+n; nothing is fetched
  • Graded by the techniques it needs, from singles you can spot to X-wings and swordfish
  • Notes without an extra step: type a second digit into a cell and it keeps both as notes; auto notes on c
  • Hints in three steps: where to look, why in plain words, then the move
  • A digit-first mode on d, undo and redo, and clashes or mistakes marked as you play
  • A clock you can hide, streaks, best and average times per difficulty, and every past daily by month

Palettes 1

  • Sudokusudokuview

    The game left half-done, else today's daily. Escape leaves at any point; every move is saved.

    • 1Place a digit (1 to 9); a different one over it makes notes
    • ⇧1A note (shift or alt with a digit)
    • NNotes mode (or space)
    • CAuto notes
    • DDigit first: pick a digit, click cells
    • ⌫Erase
    • ↑Move (or h j k l)
    • IHint: where, why, then the move
    • UUndo (shift+u redo)
    • ⌘NNew game or today's puzzle
    • ?Every key

Actions

  • HintWhere to look; again for why; again for the move.I
  • Notes modeDigits write notes instead. Shift with a digit writes one without switching, and a second digit over a placed one makes notes anyway.N
  • Auto notesEvery empty cell shows what still fits; you only take notes out. Again to bring your own back.C
  • Digit firstPick a digit, then click the cells it goes in. Again to leave.D
  • Fill in notesEvery empty cell gets what fits; notes you wrote are only trimmed. Shift-A clears them.A
  • UndoShift-U or ⌘⇧Z redoes.U
  • New gameToday's puzzle or a new one, per difficulty.⌘N
  • BrowseThe dailies by month, and every half-done game.⌘O
  • StatsTimes, streaks and the history per difficulty.⌘S
  • PauseStops the clock and hides the board.P
  • Hide the clockNo running time on screen; again to bring it back. Times still count.T

Settings

Extension, [extensions.sudoku]

difficulty
Medium select

Whose daily the first open shows when nothing is left half-done. ⌘N picks any difficulty either way. One of easy, medium, hard, expert.

check
Show clashes only select

Clashes are the same digit twice in a row, column or box. Mistakes also mark a digit that is not the answer, and count them. Also on ⌘K. One of conflicts, mistakes.

clock
On boolean

Off hides the running time. Your times still count for stats and show when you finish. Also T or ⌘K in the game.

auto_notes
Off boolean

Each empty cell shows the digits that still fit, updated as you play; you only take out the ones you rule out, and they stay out. Off brings your own notes back. Also C or ⌘K in the game.

Defaults shown. Change them in pal's settings window or in the config file.

The README

Everything Sudoku does, key by key, from the extension's own README.md

Sudoku

Sudoku in the panel, made on your machine. Enter on the palette's row opens the board as a view level whose body is the extension's own page (surface/, a surface view node): the board, and beside it a slim side with the clock, a line filling as the cells do, a pad of slim keys (a bar under each digit for how many are down) and one row of tools.

The page imports the rules from game.ts and the solver from sudoku.ts, the same files the host tests use, so it draws and takes input but never decides a rule. Every move goes to the extension (pal.send), which keeps the game in progress.json, so Escape anywhere loses nothing.

  • Puzzles: a daily for each of Easy, Medium, Hard and Expert, made from the date (the same on every machine that day), and a new one of any difficulty on ⌘N. A full grid is filled at random, clues are taken away in mirrored pairs while the answer stays unique, and the result is solved the way a person would and graded by the hardest technique it needed: singles you can spot (Easy), a cell with one digit left (Medium), locked candidates, pairs and triples (Hard), X-wings, swordfish and XY-wings (Expert). A puzzle of the wrong grade is thrown away and another made; an expert one takes a few dozen tries, about 30 ms.
  • Notes without an extra step (game.ts enter): a different digit typed over one you placed turns the cell into notes holding both (j marks the cell), and digits toggle notes there until Backspace clears it. With check = "mistakes" a wrong digit is replaced and a right one stays. Shift or Option with a digit, or N (Space) for notes mode, as before; on the pad a click places, a right-click, ⌥-click or the key's corner writes the note. Notes sit in a 3 by 3 in the cell; a placed digit clears its note from the cells it sees. A fills every note in, Shift-A clears them.
  • Auto notes (C, auto_notes = true): a second layer. Every empty cell shows what fits, less what you took out (x, kept per cell, so a removal survives the board changing); your own notes (n) stay underneath for when it is turned off. marks(p, auto) is the layer on show; each move takes auto and writes only that layer.
  • Digit first (D): pick a digit, the cells it fits in light up, a click places it (a note in notes mode). Enter places at the cursor, Tab goes to the next lit cell, D leaves.
  • Clarity: clues solid, your digits in the accent colour; the cursor's row, column and box lit, its digit lit everywhere and that digit's notes circled; a clash is a red line under your digit with the clue it runs into ringed (every mistake in red with check = "mistakes"); a sweep of light for a finished row, column or box.
  • Hints (I): where to look, then why in plain words, then the move.
  • Undo (U, ⌘Z) and redo (Shift-U, ⌘⇧Z), erase (Backspace, 0), Tab to the next empty cell, arrows or hjkl, clicks on the cells and the pad.
  • The clock runs only while the board is on screen; P pauses it and covers the board. T (or clock = false) hides it for anyone it rushes: no time on screen while you play, though the time still counts for the stats and shows on the finish.
  • Browse (⌘O): every half-done game and a calendar of dailies per difficulty. Stats (⌘S): best and average time, the streak, a chart, the history, per difficulty.

Files: sudoku.ts (solver, generator, grader), game.ts (moves, marks, the saved form, the hint), stats.ts, store.ts, index.ts (the extension's calls), surface/ (the page; screens.ts Browse and Stats, fx.ts the confetti).