PuzzleTide Puzzle Generator

官方

单词搜索、填字游戏和数独生成器MCP服务器,支持可打印的PDF练习册、主题词库以及可验证的LLM评估。本地优先,来自puzzletide.com的开发者。

你可以用 Puzzle Tide Puzzle Generator MCP 做什么?

  • 生成单词搜索 — 通过自定义单词、文件或内置主题,使用 puzzle_wordsearch_generate 创建单词搜索网格。
  • 生成填字游戏 — 使用 puzzle_crossword_generate 制作带有标准编号和验证线索的交叉填字游戏。
  • 生成或解数独 — 创建具有唯一解的保证的数独(puzzle_sudoku_generate),或解一个81字符的谜题字符串(puzzle_sudoku_solve)。
  • 验证数独 — 使用 puzzle_sudoku_validate 检查数独网格的冲突、可解性和解的唯一性。
  • 探索词库 — 使用 words_themeswords_matchwords_anagramwords_random 列出主题、按模式搜索单词、查找变位词或随机选取单词。
  • 运行可验证的LLM评估 — 使用 eval_generate 生成可复现的基于谜题的基准测试任务,并通过 eval_check 按构造方式对答案进行评分。

文档

PuzzleTide CLI — 单词搜索、填字游戏和数独生成器

npm package Docs Agent skills smithery badge License: MIT

集单词搜索生成器、填字游戏生成器、数独生成器和求解器于一体的本地优先谜题生成 CLI — 提供可打印的 PDF 工作表、入门词库、可验证的 LLM 评估以及捆绑的智能体技能。由 puzzletide.com 的制作者打造。

安装

npm install -g puzzletide
ptide --version

该软件包会安装两个二进制文件:

  • ptide
  • puzzletide

为什么使用 CLI 生成谜题

让语言模型编写一个单词搜索,你会得到一个有一半单词都错位的网格;让它生成一个数独,你通常会得到有多个解或无解的谜题。网格正是 LLM 不擅长而确定性代码擅长的输出类型。

PuzzleTide CLI 就是这种确定性代码:

  • 每个单词搜索的单词都被放置并可验证 — 放置坐标是输出的一部分,并且生成器经过了属性测试。
  • 每个生成的数独都经过检查,确保有且仅有一个解。
  • 每个填字游戏在返回前都会根据其自身的线索进行验证。
  • 相同的 --seed 输入,在任何机器上都会得到相同的谜题输出。

该软件包还附带 SKILL.md 智能体技能,因此编码智能体(Pi、Hermes、OpenClaw 和其他基于 SKILL.md 的系统)会调用 CLI,而不是手动编写网格。

命令模型

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

交互式使用短命令,自动化中使用规范的工具 ID:

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

单词搜索生成器

提供八个放置方向,具有简单/中等/困难预设,自动调整网格大小(6–30),支持重音/空格/连字符规范化。单词来自命令行参数、文件或捆绑的主题:

# Word search from your own words, printed in the terminal
ptide 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 words
ptide wordsearch generate --theme seasonal/halloween --difficulty easy

填字游戏生成器

采用标准填字编号的互锁放置,线索-网格验证,以及为主题词提供的确定性回退线索。无法互锁的单词会被报告,而不是被静默丢弃:

# Crossword with your clues
ptide crossword generate --words "PARIS: Capital of France; TOKYO: Capital of Japan"

# From a JSON file, as a printable PDF
ptide crossword generate --file words.json --pdf review.pdf --title "Unit 4 Review"

数独生成器和求解器

提供简单、中等、困难和专家级数独(17–21 个已知数字),具有唯一性保证、即时求解器,以及一个能报告冲突、可解性和解的唯一性的验证器:

ptide sudoku generate --difficulty expert --seed 42
ptide 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.txt
ptide daily        # today's daily sudoku, same for everyone on a given UTC day

可打印谜题:PDF 工作表和 SVG

每个生成器都接受 --pdf <file> 来生成可打印的工作表 — 谜题页加上答案页(--paper letter|a4,使用 --no-solution-page 可省略答案页)— 以及 --svg <file> 来生成矢量图像。只需一个循环,即可为课堂资料包生成可打印的单词搜索和数独表:

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

更喜欢现成的工作表? 神秘与谋杀主题的可打印单词搜索 是读者最爱,更多内容请访问 可打印谜题

词库和单词工具

30 个入门主题(海洋动物、水果、太空、万圣节……)— 浏览、搜索、模式匹配、字谜、随机选取。通过 --words/--file 引入你自己的列表,或在 puzzletide.com 上体验完整的精选合集:

ptide words themes --search dinosaur
ptide words match "c_r_l"        # crossword-style pattern matching
ptide words anagram coral

终端里还有一个猜词游戏:ptide play hangman

智能体技能

Pi 可以直接从这个 npm 包加载捆绑的技能:

pi install npm:puzzletide

包清单声明:

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

包含五个技能:单词搜索、填字游戏、数独、可打印谜题和智能体评估。每个技能都优先使用本地 CLI,并检查 ptidepuzzletide,然后是 npx puzzletide。技能绝不会自动安装任何东西;智能体应在安装前询问用户。

适用于 Claude Desktop、Cursor 和任何 MCP 客户端的 MCP 服务器

配套包 puzzletide-mcp 通过模型上下文协议公开了所有非交互式工具 — 相同的单词搜索生成器、填字游戏生成器、数独生成器/求解器、单词工具和评估,可从 Claude Desktop、Cursor、Windsurf 或任何 MCP 客户端调用:

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

有关工具名称、参数和每个客户端的设置,请参阅 docs/mcp.md

工具

MCP 服务器(和 ptide run <tool-id>)公开了 15 个工具:

  • puzzle_wordsearch_generate:从自定义单词、文件或主题词库生成单词搜索网格 — 每个放置都可验证,可通过 PDF/SVG 打印。
  • puzzle_crossword_generate:生成具有标准编号和已验证线索的互锁填字游戏。
  • puzzle_sudoku_generate:生成简单、中等、困难或专家级数独,并保证解的唯一性。
  • puzzle_sudoku_solve:从其 81 个字符的字符串中求解数独,并报告解是否唯一。
  • puzzle_sudoku_validate:验证数独网格 — 冲突、可解性和解的唯一性。
  • words_categories:列出词库类别。
  • words_themes:列出或搜索捆绑的主题词列表。
  • words_list:列出主题中的单词,可按长度或数量过滤。
  • words_match:查找匹配填字风格模式(c_r_l)的单词。
  • words_anagram:在词库中查找给定字母的字谜。
  • words_random:随机选取一个单词,可选择来自某个主题。
  • words_stats:词库统计信息。
  • eval_generate:生成可复现、可客观评分的谜题任务,用于对 LLM 和智能体进行基准测试。
  • eval_check:通过构造对生成的评估任务的答案进行评分 — 无需信任答案键。
  • play_daily:打印今日每日数独(在 UTC 日内对所有人相同)。

可验证的 LLM 评估

谜题答案无需答案键即可检查:数独答案要么满足规则并保留已知数字,要么不满足;单词搜索答案要么在网格中沿直线拼出单词,要么没有。这使得谜题成为 LLM 评估的干净基准任务 — 无需 LLM 评判:

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

(类型、难度、n、种子)元组完全决定了任务集,因此它命名了一个可复现的基准。

库用法

引擎是可导入的 TypeScript,无需 CLI 参与:

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' });

更多文档:

在线版本

更喜欢浏览器?

隐私

一切都在本地运行。无需账户、无需 API 密钥、无遥测、无网络访问。

开发

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

入门词库是为本包编写的通用原始列表(scripts/wordbanks-source.json,使用 npm run build:wordbanks 编译)。 欢迎贡献主题 — 在源文件中添加条目并运行构建。完整的精选 PuzzleTide 词库合集是 puzzletide.com 的专有财产,不属于此仓库。

引用 PuzzleTide CLI

如果你在工作中使用了 PuzzleTide CLI — 例如在模型基准测试中使用了可验证的谜题评估 — 请引用它(或使用 GitHub 的“引用此仓库”按钮):

@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}}
}

纯文本:"PuzzleTide CLI (Caravaca Labs, 2026), https://github.com/Caravaca-Labs/puzzletide-cli — 来自 https://puzzletide.com. 的制作者"

许可证

MIT © Caravaca Labs