核心用法
tandoor-recipe-cli 是一个命令行工具,用于与自托管的 Tandoor Recipe Manager 实例交互。它提供完整的食谱生命周期管理:从创建、更新、导入外部 URL,到膳食计划安排、购物清单维护、食材分类,以及烹饪日志追踪。
典型工作流:
1. 配置认证:tandoor configure 设置 API 令牌
2. 查询食谱:tandoor search <关键词> 或 tandoor random 获取随机灵感
3. 规划膳食:tandoor mealplan add --recipe ID --date YYYY-MM-DD --meal-type N
4. 生成购物清单:基于食谱自动聚合食材,通过 tandoor shopping add 手动补充
5. 追踪烹饪历史:cooklog add 记录份量、评分和备注,支持按食材反查(如"上次吃鸡蛋是什么时候")
数据格式:支持 --format text|json|api 三级输出,推荐用 --file recipe.json 进行食谱的批量创建和更新。
---
显著优点
| 特性 | 说明 |
|------|------|
| **权限分级明确** | 读操作免确认、写操作需单次确认、删除/批量操作需显式二次确认,降低误操作风险 |
| **精细化食材管理** | 支持 grocery category 分类、`onhand`/`ignore_shopping` 标记,优化购物清单生成 |
| **烹饪数据分析** | `cooklog ingredient <食材名>` 可按时间、评分筛选,实现"本月鸡肉消费统计"等场景 |
| **多配置源支持** | 环境变量 > 配置文件 > `.env` 文件,适配 CI/CD 和本地开发 |
| **Household 多租户** | 支持家庭/用户组管理,含邀请链接机制(需 space-owner 权限) |
---
潜在缺点与局限性
1. 依赖自托管实例:无官方托管服务,用户需自行部署 Tandoor 后端
2. 权限门槛高:家庭管理、邀请链接创建等操作需要 space-owner 令牌,普通管理员无法执行
3. 无内置同步机制:与第三方购物应用(如 Todoist、AnyList)无原生集成
4. JSON Schema 严格:创建食谱时必须包含 steps 数组,每个 step 必须有 ingredients(可为空),学习成本略高
5. Node.js 版本要求:≥18,旧环境需升级
---
适合人群
- 自托管技术用户:已部署或计划部署 Tandoor 的开发者/极客
- 家庭厨房管理员:需要为多人家庭协调膳食计划、购物清单
- 数据驱动型厨师:希望追踪烹饪频率、评分、食材消耗统计
- 自动化爱好者:计划将食谱管理接入 Home Assistant、n8n 等自动化工作流
---
常规风险
| 风险类别 | 说明 |
|----------|------|
| **令牌泄露** | API Token 存储在 `~/.config/tandoor-cli/config.json`,需确保文件权限 600;避免使用长期有效的 owner/admin 令牌 |
| **数据误删** | `delete`、`shopping clear --force`、`household delete` 等操作不可逆,需严格执行二次确认流程 |
| **供应链风险** | 需验证 npm 包 `tandoor-cli` 来源,建议 pin 版本安装避免恶意更新 |
| **权限提升滥用** | 普通用户令牌无法执行 admin 操作,但 agent 若配置 owner 令牌后,需警惕自动化脚本越权调用 |
| **并发写入冲突** | 多用户同时修改同一食谱或购物清单时,Tandoor 后端无乐观锁,可能产生覆盖 |
---
安全建议:生产环境使用只读令牌进行日常查询,仅临时切换写令牌;定期轮换令牌并在 references/SECURITY.md 中审计权限分配。