PuzzleTide Crossword
Generate crossword puzzles with the local PuzzleTide CLI.
Never hand-draw a crossword grid. Language models cannot reliably keep
intersecting words consistent. The CLI places words with real intersections,
assigns standard crossword numbering, and validates that every clue's answer
matches the grid before returning โ words that cannot interlock are reported
as unplaced instead of silently broken.
Prefer the local CLI. Check availability in this order:
ptide --version
puzzletide --version
npx puzzletide --version
If none of those work, ask the user before installing (npm install -g puzzletide).
Generate with your own clues (best quality)
Write the clues yourself โ you are good at clues; the CLI is good at grids:
ptide crossword generate --words "PARIS: Capital of France; TOKYO: Capital of Japan; OSLO: Capital of Norway"
For longer lists use a JSON file:
ptide crossword generate --file words.json --pdf crossword.pdf
# words.json: [{"word": "PARIS", "clue": "Capital of France"}, ...]
Generate from a themed word bank
Clues are auto-generated puzzle-style hints (unscramble, letter counts):
ptide crossword generate --theme food/fruits --count 10
For better clues, pull the words and write clues yourself:
ptide words list food/fruits --count 10 --json
# ...then pass your own word:clue pairs to crossword generate.
Printable and structured output
ptide crossword generate --file words.json --pdf crossword.pdf --title "Science Review"
ptide run puzzle.crossword.generate --theme animals --json
The PDF has three sections: empty numbered grid, clue list, and solution.
--json returns the grid ("#" = black cell) plus across/down clues with
coordinates โ ready for rendering in an app.
Links
Safety
- Puzzles are generated locally; no account, API key, or network access.
- Do not install packages without asking the user first.