or paste with Ctrl+V
Double-click a digit to highlight it.
Press Esc to clear highlight.
This is an advanced sudoku client built for puzzle enthusiasts who want a single tool that handles classic puzzles as well as the many popular modern variants. You can create puzzles, solve them, and switch between editor and solving modes whenever you need to.
The app supports six rule variants, three constraint types (killer cages, sandwich clues, thermometers), pencilmarks, cell coloring, automatic pencilmark generation that respects all active rules, OCR import from image files, and persistent settings — all in one self-contained page that works offline once loaded.
The app has two distinct modes. You start in Editor mode, where you can place the puzzle's given numbers, define cages, add sandwich clues, and draw thermometers. When the puzzle definition is complete, click 🔓 Lock board to switch to Solve mode.
The app has two distinct modes. You start in Editor mode, where you can place the puzzle's given numbers, define cages, add sandwich clues, and draw thermometers. When the puzzle definition is complete, tap 🔓 Lock board to switch to Solve mode.
In Solve mode, the given numbers and puzzle structure are locked. Any digits you place are shown in a different color (yours, not the puzzle's). Pressing Reset in Solve mode clears your progress but keeps the puzzle structure intact. To edit the puzzle itself, click 🔒 Unlock board to return to Editor mode.
In Solve mode, the given numbers and puzzle structure are locked. Any digits you place are shown in a different color (yours, not the puzzle's). Tapping Reset in Solve mode clears your progress but keeps the puzzle structure intact. To edit the puzzle itself, tap 🔒 Unlock board to return to Editor mode.
Click a cell to select it, then type a digit 1-9. Three input modes determine what the digit does:
Tap a cell to select it, then tap a digit on the number pad below the board. Three input modes determine what the digit does:
Switch modes by clicking the tabs at the bottom of the board, or press Space to cycle through them. Typing the same digit again removes it from a pencilmark cell. Backspace or Delete clears the selected cells.
Switch modes using the Digit / Center pencil / Corner pencil tabs that appear above the number pad in Solve mode. Tapping the same digit again removes it from a pencilmark cell. The ⌫ Delete key on the number pad clears the selected cells.
The variant dropdown in Settings chooses which extra rules apply when solving. The variant determines what counts as an error and affects auto-pencilmarks.
Enable "Killer cages" in Settings to activate cage support. A killer cage is a group of cells whose contents must sum to a target value, with no repeated digits within the cage.
To create a cage: select the cells (drag or Ctrl+click), then click ➕ Add cage from selection in the left panel. You'll be prompted for the cage's sum. To edit an existing cage's sum, click any cell of the cage to select it, then click ✎ Edit sum of selected cage. To remove a cage, click any cell of it and choose 🗑 Remove cage from selection.
To create a cage: tap and drag to select the cells, then open the Killer cages card (under the board) and tap ➕ Add cage from selection. You'll be prompted for the cage's sum. To edit a cage's sum, tap any cell of it and choose ✎ Edit sum of selected cage. To remove a cage, tap any cell of it and choose 🗑 Remove cage from selection.
Cages are drawn with a dashed perimeter and the sum displayed in the top-left corner of the cage's smallest cell.
Enable "Sandwich clues" in Settings to add margin clues. A sandwich clue is a number outside the grid that gives the sum of all digits between the 1 and the 9 in that row or column.
In Editor mode, click the clue area in the left or top margin to enter a value (0-35). Click the same clue again to edit or clear it. Sandwich clues are validated as part of solving when the row or column is complete.
In Editor mode, tap the clue area in the left or top margin of the board to enter a value (0-35). Tap the same clue again to edit or clear it. Sandwich clues are validated as part of solving when the row or column is complete.
Enable "Thermometers" in Settings to add thermo support. Values along a thermometer must strictly increase, starting at the bulb and moving outward along the bar.
To draw a thermometer: in Editor mode, click the cell where the bulb should go and drag along adjacent cells (king-step adjacency — orthogonal or diagonal). A live preview shows the planned thermo. Release to confirm. To remove a thermometer, click any cell of it and use the Remove option in the thermo panel.
To draw a thermometer: in Editor mode, tap the cell where the bulb should go and drag along adjacent cells (king-step adjacency — orthogonal or diagonal). A live preview shows the planned thermo. Lift your finger to confirm. To remove a thermometer, tap any cell of it and use the Remove option in the Thermometers card.
In Editor mode, you can import a sudoku puzzle from an image using OCR. Either drag and drop an image into the "Drop image here" area, paste an image with Ctrl+V, or click 📂 Choose image file.
In Editor mode, tap 📷 Scan puzzle to read a sudoku with your camera. Point the rear camera at the puzzle and hold steady — a green outline appears once the grid is locked on, and the scan fires automatically after a moment (or tap 📸 Capture now). You'll then see the detected digits on a preview grid where you can tap ✓ Use this to import them or ↻ Retry to scan again.
The OCR reads the given digits and places them in your grid. Cages, sandwich clues, and thermometers are not auto-detected (auto- detection from images is unreliable in practice) — you'll add those manually afterwards using the editor tools described above.
The scan reads the given digits and places them in your grid. Numbers are colour-coded by how confident the reader was — green is high confidence, orange is lower, so you know which to double-check. Cages, sandwich clues, and thermometers are not detected; add those manually afterwards using the editor tools.
When importing a killer-sudoku image (with the Killer toggle on), the OCR automatically ignores the small sum-text in the top-left corner of each cell, so cage sums won't be mis-read as digits.
In Editor mode, the Generate puzzle card creates a fresh, uniquely-solvable puzzle. Pick a difficulty (Easy, Medium, Hard, Very Hard, or Expert), optionally keep Symmetric ticked for a tidy rotationally-symmetric layout, and click 🎲 Generate.
In Editor mode, open the Generate puzzle card, pick a difficulty (Easy, Medium, Hard, Very Hard, or Expert), optionally keep Symmetric ticked for a tidy layout, and tap 🎲 Generate.
For Classic puzzles the difficulty is real: it's based on which solving techniques the puzzle actually requires, not just how many numbers are given. Easy needs only single-candidate spotting; Medium needs pairs and triples; Hard brings in pointing pairs and X-Wings; Very Hard and Expert require advanced patterns like wings, fish, and chains. Every generated puzzle is solvable by logic alone — no guessing needed. Expert puzzles are rare, so they can take a few seconds to generate.
For the variant modes (Anti-King, Anti-Knight, Non-Consecutive, Miracle) the difficulty setting controls roughly how many givens are removed rather than a technique rating, since the difficulty analyser currently covers Classic only. Killer, Sandwich, and Thermometer puzzles can't be auto-generated (their extra structure has to be authored by hand or imported), so Generate isn't available while those are on.
While in Editor mode, a line just below the board tells you how many solutions the current numbers allow: exactly one (a proper puzzle), multiple (not enough clues to be unique yet), or none (the numbers conflict). It updates as you type, generate, or import.
This is handy in three ways: right after importing from an image it flags whether a digit was missed or mis-read (you'd see "multiple" or "no solution" instead of "exactly one"); it lets you craft your own puzzle by removing or adding numbers until you hit a single solution; and it confirms a generated puzzle is proper. The check covers Classic and the global-rule variants; it's hidden for Killer, Sandwich, and Thermometer, whose extra rules it doesn't evaluate.
In Editor mode, click 📊 Rate difficulty below the board to grade the current puzzle: Easy, Medium, Hard, Very Hard, or Expert.
In Editor mode, tap 📊 Rate difficulty below the board to grade the current puzzle: Easy, Medium, Hard, Very Hard, or Expert.
The grade reflects which solving techniques the puzzle actually needs — not how many numbers are given. It works on any proper (uniquely-solvable) Classic puzzle, whether you typed it, imported it, or generated it, so you can check how tough a puzzle really is before you start. If a puzzle is unique but needs methods beyond the app's solver (deep chains or guessing), it's labelled Diabolical. Rating runs only when you ask, since it can take a moment on hard puzzles, and — like the generator's difficulty — it currently covers Classic only.
The 💡 button in the header opens the hint panel.
The 💡 button in the header opens the hint panel.
It first tells you the puzzle's difficulty and which techniques to look for at that level — a nudge in the right direction without giving anything away. Then a single button reveals a next-step hint in stages: press once for the technique to look for, again for the area (which row, column, or box), and a third time for the exact cell and digit (or which candidates to remove). Each hint is the easiest available next step, and it's based on the numbers you've already entered — so it helps you on from wherever you are. If your current entries contain a mistake, the hint panel says so instead of giving a misleading tip. Hints currently cover Classic puzzles only.
Click the ⚙ button in the header. Settings persist between sessions in your browser's local storage.
Tap the ⚙ button in the header. Settings persist between sessions in your browser's local storage.
This is an independent hobby project and is not affiliated with, endorsed by, or sponsored by any puzzle platform.
Version 1.8.0
Found a bug, have a suggestion, or just want to share what you think? Your feedback goes straight to the developer.
You've solved a few puzzles — how's it going so far? Your rating helps a lot.