PuzzleTide

io.github.catorch由 GitHub 帳號 catorch 發布v0.2.1更新於 Oct 24, 2026

Word search, crossword, and sudoku generators, printable PDF worksheets, and verifiable LLM evals.

發布方自己的服務:tide

已驗證STDIO僅桌面媒體與設計AI 與機器學習

概覽

AI 產生的概覽

本機 MCP 伺服器,可產生找字、填字與數獨謎題,匯出可列印的 PDF/SVG 學習單,並執行可重現的謎題式 LLM 評測。

可以做什麼
用自訂字表、檔案或內建主題產生找字方格,位置可驗證,並可匯出 PDF/SVG 供列印或向量使用。產生具標準編號與已驗證提示的交叉填字謎題。產生、求解並驗證數獨,包括每個 UTC 日期所有人相同的每日數獨。瀏覽與查詢內建字庫:分類、主題、字表、樣式比對、易位字、隨機取字與統計。產生可重現的謎題評測任務,並依建構規則評分,無須信任答案表。
適用情境
適合讓助理製作課堂或可列印的謎題學習單、檢查數獨或填字答案,或建立確定性的謎題基準來評測模型與代理,而不是讓模型自行手寫方格。
執行需求
以本機 stdio 程序執行,通常用 npx puzzletide-mcp 啟動,因此需要 Node.js 與 npm。未宣告帳號、API 金鑰、環境變數或標頭,README 稱其不需網路存取。
安裝前請注意
README 稱全部在本機執行,無遙測、無網路存取,伺服器也未宣告任何憑證。產生的 PDF、SVG 等檔案會寫入你指定的路徑,請謹慎選擇輸出位置。內建字庫為通用入門字表,完整精選字庫屬專有內容,不包含在內。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 PuzzleTide,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

PuzzleTide CLI — word search, crossword & sudoku generator

[npm package] [Docs] [Agent skills] [smithery badge] [License: MIT]

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.

Install

sh
npm install -g puzzletideptide --version

The package installs both binaries:

  • ptide
  • puzzletide

Why generate puzzles with a CLI

Ask 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:

  • Every word search word is placed and verifiable — placement coordinates are part of the output, and the generators are property-tested.
  • Every generated sudoku is checked to have exactly one solution.
  • Every crossword is validated against its own clues before it's returned.
  • Same --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.

Command model

sh
ptide <namespace> <operation> [input] [options]   # for humansptide run <tool-id> [input] [options] --json      # canonical, for scripts/agentsptide tools list | search <q> | info <id> | docs <id>ptide agent manifest

Use short commands interactively and canonical tool ids in automation:

sh
ptide sudoku generate --difficulty hardptide run puzzle.sudoku.generate --difficulty hard --json

Word search generator

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:

sh
# Word search from your own words, printed in the terminalptide wordsearch generate --words "coral,shark,kelp,wave,tide"
# Themed printable word search (puzzle page + solution page)ptide wordsearch generate --theme animals/ocean-animals --pdf ocean.pdf
# Kids mode: easy = forward-only wordsptide wordsearch generate --theme seasonal/halloween --difficulty easy

Crossword generator

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:

sh
# Crossword with your cluesptide crossword generate --words "PARIS: Capital of France; TOKYO: Capital of Japan"
# From a JSON file, as a printable PDFptide crossword generate --file words.json --pdf review.pdf --title "Unit 4 Review"

Sudoku generator and solver

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:

sh
ptide sudoku generate --difficulty expert --seed 42ptide sudoku solve "53..7....6..195....98....6.8...6...34..8.3..17...2...6.6....28....419..5....8..79"ptide sudoku validate --file puzzle.txtptide daily        # today's daily sudoku, same for everyone on a given UTC day

Printable puzzles: PDF worksheets and SVG

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:

sh
for i in 1 2 3 4 5; do  ptide sudoku generate --difficulty medium --seed "$i" --pdf "sudoku-$i.pdf" --title "Sudoku #$i"done

Prefer ready-made sheets? The mystery and murder printable word search is a reader favorite, with hundreds more at printable puzzles.

Word banks and word tools

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:

sh
ptide words themes --search dinosaurptide words match "c_r_l"        # crossword-style pattern matchingptide words anagram coral

There's a hangman game in the terminal too: ptide play hangman.

Agent skills

Pi can load the bundled skills directly from this npm package:

sh
pi install npm:puzzletide

The package manifest declares:

json
{  "pi": {    "skills": ["./skills"]  }}

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.

MCP server for Claude Desktop, Cursor, and any MCP client

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:

json
{  "mcpServers": {    "puzzletide": {      "command": "npx",      "args": ["-y", "puzzletide-mcp"]    }  }}

See docs/mcp.md for tool names, arguments, and per-client setup.

Tools

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).

Verifiable LLM evals

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:

sh
ptide eval generate --type sudoku --n 20 --difficulty hard --seed 1 --out tasks.json# ...run your model on tasks.json, collect [{id, answer}] ...ptide eval check --tasks tasks.json --answers answers.json --json

The (type, difficulty, n, seed) tuple fully determines the task set, so it names a reproducible benchmark.

Library usage

The engines are importable TypeScript with no CLI involved:

ts
import { generateSudoku, generateWordSearch, wordSearchPdf } from 'puzzletide';
const sudoku = generateSudoku({ difficulty: 'hard', seed: 42 });const search = generateWordSearch({  words: ['coral', 'shark', 'kelp'],  directions: ['E', 'S', 'SE'],  seed: 7,});const pdfBytes = await wordSearchPdf(search, { title: 'Ocean Animals' });

More docs:

Online versions

Prefer a browser?

Privacy

Everything runs locally. No account, no API key, no telemetry, no network access.

Development

sh
npm installnpm run build     # tsc → dist/npm test          # vitest + fast-check property tests (build first: CLI tests run dist/)

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.

Citing PuzzleTide CLI

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):

bibtex
@software{puzzletide_cli,  author  = {{Caravaca Labs}},  title   = {PuzzleTide CLI: word search, crossword \& sudoku generator with verifiable LLM evals},  year    = {2026},  url     = {https://github.com/Caravaca-Labs/puzzletide-cli},  note    = {From the makers of \url{https://puzzletide.com}}}

Plain text: "PuzzleTide CLI (Caravaca Labs, 2026), https://github.com/Caravaca-Labs/puzzletide-cli — from the makers of https://puzzletide.com."

License

MIT © Caravaca Labs

來源:README.md,提交 4651b6e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Tide 整合