把“今天吃什么”这件小事,变成一个更健康、更省心、更有掌控感的日常系统。
很多人不是不会做饭,而是每天都卡在同一个问题上:冰箱里有几样食材,但不知道能做什么;收藏夹里有几十个菜谱,但真正下厨时还是手忙脚乱;想吃得健康一点,却很难把营养、口味、时间和采购清单串起来。
ChefMind 想做的不是又一个菜谱列表,而是一位贴身的厨房产品经理。它从“我有什么食材”开始,帮你搜索、生成、收藏、采购、烹饪、复盘营养,最后把这套流程沉淀成个人厨房数据。用户不需要注册账号,也不需要把饮食偏好交给云端;API Key、购物清单、收藏和个人信息都优先保存在本机。
一句话:ChefMind 让厨房从临时决策,变成可持续迭代的个人健康系统。
- 从食材到成菜:输入食材或直接选择冰箱里的东西,搜索热门菜谱,或让 AI 生成专属方案。
- 从菜谱到行动:一键收藏、加入购物清单、按菜谱分组采购,烹饪时按步骤推进并可设置计时器。
- 从吃饱到吃好:记录个人资料和饮食,进行营养概览、平衡分析和 AI 建议。
- 从演示到真实 AI:新增设置页支持 OpenAI 协议 API Key,预设 OpenAI、DeepSeek、通义千问、Moonshot、智谱、硅基流动等 Base URL,也允许自定义兼容网关。
- 从云端焦虑到本地掌控:不注册账号、不代付模型额度;业务数据优先留在本机,适合个人使用、课程展示和桌面端封装。
- Node.js >= 18.0.0
- npm >= 8.0.0
- Rust >= 1.70.0,用于构建 Tauri 桌面应用
npm install
npm run dev访问 http://localhost:1420 查看 Web 应用。
npm run tauri:dev
npm run tauri:build进入应用顶部导航的 设置 页面,选择供应商预设并填写:
Base URL:OpenAI-compatible 服务地址,例如https://api.deepseek.com/v1Model:模型名称,例如deepseek-chatAPI Key:对应供应商控制台创建的 Key
设置页会展示该供应商的 API Key 获取地址,并提供 测试连接 按钮。测试会调用 /chat/completions,用于确认 Key、Base URL 和模型是否可用。
- 凭据不会进入
.env、VITE_*变量或构建产物。 - Web / GitHub Pages:Key 仅存在当前页面内存,刷新页面后需要重新填写。菜谱、收藏和购物清单保存于浏览器本地;请定期使用设置页的导出功能备份。
- Tauri 桌面版:Key 保存于操作系统凭据库,Rust 原生层直接请求供应商;Key 不写入 SQLite,也不会返回 WebView。
- 自定义 Base URL 必须是公共 HTTPS 地址。供应商还必须允许浏览器 CORS,GitHub Pages 才能直接调用。
本地演示或截图时可在设置页切换到 Mock 模式。
仓库包含 GitHub Pages 部署工作流。启用仓库的 Pages → GitHub Actions 后,推送到 main 会发布静态 Web 版本。
Pages 版本是浏览器直连供应商的 BYOK 体验:ChefMind 和 GitHub 不接收、不托管 API Key;请求时所选供应商会收到该 Key。不要将任意供应商 Key 写入 GitHub Secret、.env 或 VITE_* 变量。若供应商不支持该 Pages 域名的 CORS,浏览器会阻止连接;静态站点无法绕过该限制。
# 构建生产版本
npm run build
# 预览生产构建
npm run preview
# 重新生成 README 展示截图(默认使用 Mock 模式)
npm run dev -- --host 127.0.0.1 --port 1420
npx playwright test scripts/capture-user-screenshots.spec.mjs --reporter=line- 前端:Vue 3, TypeScript, Vite, Vue Router, Pinia, Element Plus
- 桌面端:Tauri 2, Rust
- AI 接入:OpenAI-compatible Chat Completions,BYOK、多供应商预设与自定义 Base URL
- 本地数据:Web 使用 IndexedDB 与受控 localStorage;桌面端使用 SQLite 保存业务数据和系统凭据库保存 Key
- 工具链:Sass, Playwright, html2canvas, qrcode
ChefMind/
├── docs/screenshots/ # README 产品截图
├── scripts/ # 数据库脚本与截图自动化
├── src/
│ ├── components/ # 可复用组件
│ ├── data/ # 供应商预设、Mock 数据
│ ├── router/ # 路由配置
│ ├── services/ # AI、收藏、购物清单、数据库服务
│ ├── stores/ # Pinia 状态
│ ├── styles/ # 全局样式
│ └── views/ # 页面视图
├── src-tauri/ # Tauri 桌面应用
└── README.md
ChefMind 的长期方向是把“做饭”拆成更可管理的产品闭环:
- 决策:今天吃什么,为什么适合我。
- 准备:还缺什么,应该怎么买。
- 执行:每一步怎么做,什么时候该停。
- 复盘:这顿饭对健康目标有什么影响。
当每一次下厨都能被记录、分析和复用,厨房就不只是一个做饭的地方,而是个人健康系统的入口。
本项目基于 MIT License 开源。



















