- name
- sudoku
- description
- Fetch Sudoku puzzles and store them as JSON in the workspace; render images on demand; reveal solutions later.
- version
- 2.6.0
- homepage
- https://github.com/odrobnik/sudoku-skill
- metadata
- openclaw
- emoji
- 🧩
- requires
- bins
- ["python3"]
- python
- ["requests", "Pillow", "lzstring"]
Sudoku
Overview
Fetch, render, and reveal Sudoku puzzles. Use sudoku.py to get new puzzles from sudokuonline.io, generate printable PDFs or images, and reveal solutions.
For details on the saved JSON format, see DATA_FORMAT.md.
Available Puzzle Types
kids4n: Kids 4x4kids4l: Kids 4x4 with Letterskids6: Kids 6x6kids6l: Kids 6x6 with Letterseasy9: Classic 9x9 (Easy)medium9: Classic 9x9 (Medium)hard9: Classic 9x9 (Hard)evil9: Classic 9x9 (Evil)
Setup / Requirements
- Binaries:
python3 - Python libs:
python3 -m pip install requests Pillow lzstringGet a Puzzle
Fetches a new puzzle and stores it as JSON. Output is JSON by default (use --text for human-readable output).
Use --count N to fetch/store multiple puzzles in one call. If a batch does not contain enough unseen puzzles, the command will fetch additional batches until it has enough.
Use --id <fragment> to select a specific source puzzle by matching any unique part of its UUID. If multiple IDs match, the command errors and lists candidates.
Get a Classic Easy puzzle:
./scripts/sudoku.py get easy9Get multiple new puzzles at once (e.g. 4 easy 9x9):
./scripts/sudoku.py get easy9 --count 4Get a Kids 6x6 puzzle:
./scripts/sudoku.py get kids6Render Puzzle
Render a puzzle as an image, PDF, or minimal HTML.
Render latest puzzle as A4 PDF (for printing):
./scripts/sudoku.py render --pdfRender latest puzzle as clean PNG (for viewing):
./scripts/sudoku.py renderRender a specific previous puzzle by short ID:
./scripts/sudoku.py render --id a09f3680Render minimal HTML (square cells + bold box lines):
./scripts/sudoku.py html --id a09f3680Reveal Solution
Reveal the solution for the latest or specific puzzle. Use --id <short_id> (e.g., a09f3680) to target a specific puzzle.
Reveal full solution as printable PDF:
./scripts/sudoku.py reveal --pdfReveal full solution for a specific ID:
./scripts/sudoku.py reveal --id a09f3680 --imageReveal full solution as PNG image:
./scripts/sudoku.py revealReveal a single cell (row 3, column 7):
./scripts/sudoku.py reveal --cell 3 7Reveal a specific 3x3 box (index 5):
./scripts/sudoku.py reveal --box 5Share Link
Generate a share link for a stored puzzle. Targets the latest puzzle by default; use --id <short_id> for a specific one.
Generate a SudokuPad share link (default):
./scripts/sudoku.py shareGenerate link for specific ID:
./scripts/sudoku.py share --id a09f3680Generate an SCL share link:
./scripts/sudoku.py share --type sclTelegram Formatting Tip: Format links as a short button-style link and hide the full URL: [Easy Classic \[<id>\]](<url>).