The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the PuzzleTide listing page.
Word search generator, crossword generator, and sudoku generator + solver in one local-first puzzle generator CLI — with printable PDF worksheets, starter word banks, verifiable LLM evals, and bundled agent skills. From the makers of puzzletide.com.
The package installs both binaries:
ptidepuzzletideAsk a language model to write a word search and you get a grid where half the words are broken; ask it for a sudoku and you usually get one with several solutions, or none. Grids are exactly the kind of output LLMs are bad at and deterministic code is good at.
PuzzleTide CLI is that deterministic code:
--seed in, same puzzle out, on any machine.The package also ships SKILL.md agent skills, so coding agents (Pi, Hermes,
OpenClaw, and other SKILL.md-based systems) reach for the CLI instead of
hand-writing grids.
Use short commands interactively and canonical tool ids in automation:
Eight placement directions with easy/medium/hard presets, auto-sized grids (6–30), accent/space/hyphen normalization. Words come from flags, files, or bundled themes:
Interlocking placement with standard crossword numbering, clue-grid validation, and deterministic fallback clues for theme words. Words that cannot interlock are reported instead of silently dropped:
Easy, medium, hard, and expert sudoku (17–21 givens) with a uniqueness guarantee, an instant solver, and a validator that reports conflicts, solvability, and solution uniqueness:
Every generator takes --pdf <file> for a print-ready worksheet — puzzle
page(s) plus a solution page (--paper letter|a4, omit the answer key with
--no-solution-page) — and --svg <file> for vector images. Printable word
search and printable sudoku sheets for a classroom packet are one loop away:
Prefer ready-made sheets? The mystery and murder printable word search is a reader favorite, with hundreds more at printable puzzles.
30 starter themes (ocean animals, fruits, space, halloween, ...) — browse,
search, pattern-match, anagrams, random picks. Bring your own lists via
--words/--file, or play the full curated collection at
puzzletide.com:
There's a hangman game in the terminal too: ptide play hangman.
Pi can load the bundled skills directly from this npm package:
The package manifest declares:
Five skills are included: word search, crossword, sudoku, printable puzzles,
and agent evals. Each prefers the local CLI and checks ptide, puzzletide,
then npx puzzletide. Skills never auto-install anything; agents should ask
the user before installing.
The companion package puzzletide-mcp
exposes every non-interactive tool over the Model Context Protocol — the same
word search generator, crossword generator, sudoku generator/solver, word
tools, and evals, callable from Claude Desktop, Cursor, Windsurf, or any MCP
client:
See docs/mcp.md for tool names, arguments, and per-client setup.
The MCP server (and ptide run <tool-id>) exposes 15 tools:
puzzle_wordsearch_generate: Generate a word search grid from custom words, files, or themed word banks — every placement verifiable, printable via PDF/SVG.puzzle_crossword_generate: Generate an interlocking crossword with standard numbering and validated clues.puzzle_sudoku_generate: Generate easy, medium, hard, or expert sudoku with a guaranteed unique solution.puzzle_sudoku_solve: Solve a sudoku from its 81-character string and report whether the solution is unique.puzzle_sudoku_validate: Validate a sudoku grid — conflicts, solvability, and solution uniqueness.words_categories: List word bank categories.words_themes: List or search the bundled themed word lists.words_list: List the words in a theme, filtered by length or count.words_match: Find words matching a crossword-style pattern (c_r_l).words_anagram: Find anagrams of the given letters in the word bank.words_random: Pick a random word, optionally from one theme.words_stats: Word bank statistics.eval_generate: Generate reproducible, objectively gradable puzzle tasks for benchmarking LLMs and agents.eval_check: Grade answers to generated eval tasks by construction — no answer key trusted.play_daily: Print today's daily sudoku (same for everyone on a UTC day).Puzzle answers are checkable without an answer key: a sudoku answer either satisfies the rules and preserves the givens or it doesn't; a word search answer either spells the word along a straight line in the grid or it doesn't. That makes puzzles clean benchmark tasks for LLM evals — no LLM judge needed:
The (type, difficulty, n, seed) tuple fully determines the task set, so it names a reproducible benchmark.
The engines are importable TypeScript with no CLI involved:
More docs:
Prefer a browser?
Everything runs locally. No account, no API key, no telemetry, no network access.
The starter word banks are generic, original lists written for this package
(scripts/wordbanks-source.json, compiled with npm run build:wordbanks).
Theme contributions are welcome — add an entry to the source file and run the
build. The full curated PuzzleTide word bank collection is proprietary to
puzzletide.com and is not part of this repository.
If you use PuzzleTide CLI in your work — for example the verifiable puzzle evals in a model benchmark — please cite it (or use GitHub's "Cite this repository" button):
Plain text: "PuzzleTide CLI (Caravaca Labs, 2026), https://github.com/Caravaca-Labs/puzzletide-cli — from the makers of https://puzzletide.com."
MIT © Caravaca Labs