关于 pp-recipe-goat
Recipe Goat 是用于查询、整理和分析食谱的 Printing Press 命令行工具技能,适合个人烹饪与 Agent 工作流。它提供跨站点搜索、食谱收藏与本地 SQLite 同步,并包含只读操作约束。
主要功能
- 01跨站点食谱搜索与排序
- 02获取、保存和检索食谱
- 03食材替换与营养查询
- 04本地食谱库与膳食计划
- 05SQLite 同步和数据导出
适用场景
- 01按食材检索可制作的已保存食谱
- 02规划餐食并汇总购物清单
- 03离线搜索或分析已同步数据
MCP 相关
README 提供独立的 MCP 服务安装方式,并说明可将其注册到 Claude Code。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-recipe-goat安装后在 Claude Code 中输入/pp-recipe-goat确认已加载。
详细介绍
Recipe Goat — Printing Press CLI
前置条件:安装 CLI
此技能通过 recipe-goat-pp-cli 二进制文件运行。**调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果尚未安装,请先安装:
- 通过 Printing Press 安装程序进行安装。在 macOS/Linux 上,二进制文件默认安装到
$HOME/.local/bin;在 Windows 上,默认安装到%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install recipe-goat --cli-only - 验证:
recipe-goat-pp-cli --version - 确保报告的安装目录已加入将调用此技能的 Agent/运行时的
$PATH。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用 Go 直接安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/food-and-dining/recipe-goat/cmd/recipe-goat-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,请勿继续运行技能命令。
何时不使用此 CLI
对于需要创建、更新、删除、发布、评论、点赞、邀请、订购、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此只读 CLI 提供用于检查、导出、同步和分析的命令。
HTTP 传输
此 CLI 使用兼容 Chrome 的 HTTP 传输来访问面向浏览器的端点。正常的 API 调用无需常驻浏览器进程。
命令参考
goat — 跨站点食谱排名器
recipe-goat-pp-cli goat <query>— 从精选食谱网站获取候选结果,然后根据查询相关性、评分、评论数量、时效性和网站可信度进行排名
search — 在精选网站中搜索食谱标题
recipe-goat-pp-cli search <query>— 在精选网站中搜索食谱标题,而不获取完整食谱;使用--site、--kid-friendly、--in-season和--limit缩小结果范围
recipe — 获取、打开和检查食谱
recipe-goat-pp-cli recipe get <url>— 从源 URL 获取并呈现食谱;可选缩放份量、转换单位、输出 Markdown/纯文本,以及补充 USDA 营养信息recipe-goat-pp-cli recipe open <id>— 在默认浏览器中打开已保存的食谱recipe-goat-pp-cli recipe reviews <id>— 显示已保存食谱的评论修改摘要占位符recipe-goat-pp-cli recipe cost <id>— 估算已保存食谱每份的成本
trending — 精选食谱网站上的热门食谱
recipe-goat-pp-cli trending— 显示当前各网站首页推荐的食谱;使用--site和--limit限定检索范围
sub — 烹饪食材替代方案
recipe-goat-pp-cli sub <ingredient>— 查询某种食材的替代方案;可按使用场景筛选,也可筛选适合纯素饮食的建议
trust — 排名器使用的网站可信度分数
recipe-goat-pp-cli trust list— 列出内置的各网站可信度分数recipe-goat-pp-cli trust set <site> <delta>— 保存针对排名器实验的本地网站可信度调整
save — 在本地保存食谱
recipe-goat-pp-cli save [url]— 获取并保存一个食谱 URL,或通过--stdin从标准输入读取 URL;使用--tags添加本地标签
cookbook — 本地食谱搜索、标签和食材储备匹配
recipe-goat-pp-cli cookbook list— 列出已保存的食谱;可按标签、网站或作者筛选recipe-goat-pp-cli cookbook search <query>— 按标题和食材全文搜索已保存的食谱,并筛选要包含或排除的食材recipe-goat-pp-cli cookbook match— 根据通过--have提供的食材储备,查找可以制作的已保存食谱recipe-goat-pp-cli cookbook tag <id> <tag>[,<tag>]— 为已保存的食谱添加一个或多个标签recipe-goat-pp-cli cookbook untag <id> <tag>— 移除已保存食谱的一个标签recipe-goat-pp-cli cookbook remove <id>— 从本地食谱集删除一个食谱
tonight — 从本地食谱集中挑选晚餐
recipe-goat-pp-cli tonight— 根据最长用时、最近使用时间、饮食筛选条件、标签和结果数量上限,从已保存的食谱中挑选晚餐
meal-plan — 膳食计划和购物清单
recipe-goat-pp-cli meal-plan set <date> <meal> <recipe-id>— 为特定日期和用餐时段安排一道已保存的食谱recipe-goat-pp-cli meal-plan show— 显示指定日期范围或当前周的膳食计划recipe-goat-pp-cli meal-plan remove <date> <meal>— 清除指定用餐时段的膳食计划recipe-goat-pp-cli meal-plan shopping-list— 汇总所有计划膳食的食材,可按货架分组,或导出为 Markdown、文本或 CSV
cook — 烹饪记录
recipe-goat-pp-cli cook log <recipe-id>— 记录烹饪过程,可填写评分、备注和日期recipe-goat-pp-cli cook history— 列出过去的烹饪记录,可按食谱或时间范围筛选
sync — API 资源的本地 SQLite 同步
recipe-goat-pp-cli sync— 将 API 数据同步到本地 SQLite,以便离线搜索和分析,并可控制资源、检查点、分页和并发
export — 数据导出
recipe-goat-pp-cli export <resource> [id]— 将 API 数据导出为 JSONL 或 JSON,用于备份、迁移或分析
import — JSONL 导入
recipe-goat-pp-cli import <resource>— 通过调用 API 创建或更新记录,从 JSONL 导入记录;使用--dry-run可预览而不发送请求
workflow — 组合数据工作流
recipe-goat-pp-cli workflow archive— 将所有受支持的资源同步到本地存储,以便离线访问和搜索recipe-goat-pp-cli workflow status— 显示本地存档状态和同步状态
foods — USDA FoodData Central — 食材营养查询
recipe-goat-pp-cli foods get— 根据 FDC ID 获取指定食品recipe-goat-pp-cli foods list— 分页列出食品recipe-goat-pp-cli foods search— 在 USDA FoodData Central 中搜索与查询内容匹配的食品
查找合适的命令
如果你知道想做什么,但不知道该用哪个命令,可以直接询问 CLI:
recipe-goat-pp-cli which "<capability in your own words>"
which 会根据自然语言功能查询,从此 CLI 精选的功能索引中找出最匹配的命令。退出代码 0 表示至少找到一个匹配项;退出代码 2 表示没有可信的匹配项,此时可改用 --help 或缩小查询范围。
身份验证设置
通过环境变量设置 API 密钥:
export USDA_FDC_API_KEY="<your-key>"
也可以将其保存到 ~/.config/recipe-goat-pp-cli/config.toml。
运行 recipe-goat-pp-cli doctor 验证设置。
Agent 模式
为任意命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递 — JSON 输出到 stdout,错误输出到 stderr
-
可筛选 —
--select保留部分字段。点分路径可深入嵌套结构;数组会逐项遍历。对于输出冗长的 API,这对控制上下文大小至关重要:recipe-goat-pp-cli foods list --agent --select id,name,status -
可预览 —
--dry-run显示请求但不发送 -
适合离线使用 — 有本地 SQLite 存储时,同步和搜索命令可以使用该存储
-
非交互式 — 绝不提示输入,所有输入都通过标志提供
-
只读 — 请勿使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、下单、发送或其他会修改数据的请求
响应封装
从本地存储或 API 读取数据的命令会将输出包装在来源信息封装中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时 API 还是本地存储。仅当 stdout 连接到终端时,才会将易读的 N results (live) 摘要输出到 stderr;通过管道接收输出或由 Agent 使用时,stdout 只包含纯 JSON。
Agent 反馈
当你(或 Agent)发现这个 CLI 有什么不对劲时,请记录下来:
recipe-goat-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
recipe-goat-pp-cli feedback --stdin < notes.txt
recipe-goat-pp-cli feedback list --json --limit 10
条目会保存在本地的 ~/.recipe-goat-pp-cli/feedback.jsonl 中。除非设置了 RECIPE_GOAT_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 RECIPE_GOAT_FEEDBACK_AUTO_SEND=true,否则不会发送 POST 请求。默认情况下,反馈仅保存在本地。
请写下让你感到意外的地方,而不是提交 Bug 报告。简短、具体,一行即可:这正是日积月累的部分。
输出交付
每个命令都接受 --deliver <sink>。输出会写入指定的目标位置,同时写入标准输出(或取代标准输出),因此 Agent 无需手动转发管道即可路由命令结果。支持三种目标:
| 目标 | 效果 |
|---|---|
stdout | 默认值;仅写入标准输出 |
file:<path> | 以原子方式将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到该 URL(使用 application/json,或在传入 --compact 时使用 application/x-ndjson) |
不支持的协议会被拒绝,并返回列出支持协议的结构化错误。Webhook 请求失败时会返回非零状态码,并在标准错误中记录 URL 和 HTTP 状态码。
命名配置
配置是保存的一组标志值,可在多次调用中重复使用。如果定时运行的 Agent 每次都使用相同配置调用同一命令,请使用配置——这就是 HeyGen 的 “Beacon” 模式。
recipe-goat-pp-cli profile save briefing --json
recipe-goat-pp-cli --profile briefing foods list
recipe-goat-pp-cli profile list --json
recipe-goat-pp-cli profile show briefing
recipe-goat-pp-cli profile delete briefing --yes
显式标志始终优先于配置值;配置值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置,供进行自省的 Agent 在运行时发现它们。
退出码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 4 | 需要身份验证 |
| 5 | API 错误(上游问题) |
| 7 | 请求过于频繁(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、
help或--help→ 显示recipe-goat-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他任何内容 → 直接使用(以
--agent执行 CLI 命令)
安装 MCP 服务
- 安装 MCP 服务:
go install github.com/mvanhorn/printing-press-library/library/other/recipe-goat-pp-cli/cmd/recipe-goat-pp-mcp@latest - 注册到 Claude Code:
claude mcp add recipe-goat-pp-mcp -- recipe-goat-pp-mcp - 验证:
claude mcp list
直接使用
- 检查是否已安装:
which recipe-goat-pp-cli如果未找到,请提供安装选项(参见本技能顶部的先决条件)。 - 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
- 使用
--agent标志执行:recipe-goat-pp-cli <command> [subcommand] [args] --agent - 如果存在歧义,请查看子命令帮助:
recipe-goat-pp-cli <command> --help。