懶惰之最|GitHub 實測

兩個人各買一瓶牛奶?KitchenOwl 家人共用購物清單實測

2026-10-24|專案:TomBursch/kitchenowl|Markdown 版

重點摘要

  • KitchenOwl 0.7.10 兩個帳號共用同一份清單,各加三次共六次,牛奶與雞蛋第二次加入沒有重複,清單剩四項。
  • 貼上愛料理食譜網址,0.6 秒讀回菜名、10 分鐘、3 人份與 12 行食材。
  • 食材送進清單後,另一個帳號列出清單時看得到全部 16 項。
  • 中文食材整行成為品名(如「調味:白醋 2匙」),份量沒有拆開,需要手動整理;手機 App 與即時同步未測。
  • 結論: 家用共用清單去重有效,但中文食譜匯入後要自己整理品名。
  • 適合: 家裡兩個以上的人共用買菜清單、願意自己架設的人
  • 不適合: 要求食譜匯入免整理、或沒有常開機器可架設的人
實測項目 結果
加入次數/清單項目 6 次/4 項
食譜網址讀回時間 0.6 秒
食譜讀回內容 10 分鐘、3 人份、12 行食材
後端安裝(uv sync,Python 3.14) 11.9 秒
授權 AGPL-3.0

老婆在家把「牛奶」記在手機裡,老公下班順路也買了一瓶,回家冰箱就多一瓶。家裡不只一個人會買菜的話,這種事大概都遇過。

KitchenOwl 是一個可以自己架設的購物清單與食譜管理工具,全家共用同一份清單。這次我在 Mac mini M4 Pro(12 核、64GB)上把它的後端架起來,用兩個帳號實際測了兩件事:重複加入會不會變兩筆、貼食譜網址能不能直接變成要買的東西。

安裝

後端版本 0.7.10,要求 Python 3.14 以上。我沒有用官方的 Docker,而是直接用 uv 安裝:

cd backend
uv sync --python 3.14      # 11.9 秒
flask db upgrade           # 資料庫初始化
python wsgi.py --host 127.0.0.1

測試一:兩個人重複加同一樣東西

建立一個家庭,兩個帳號都是成員。阿美先加牛奶、雞蛋、吐司,阿強再加牛奶、衛生紙、雞蛋,總共加了 6 次:

兩個帳號各加三次,重複的沒有變兩筆

項目 結果
加入次數 6 次
清單項目 4 項(吐司、牛奶、衛生紙、雞蛋)
牛奶、雞蛋第二次加入 沒有重複成兩筆

測試二:貼食譜網址

貼上愛料理(icook.tw)的「四季豆拌肉絲」食譜網址,0.6 秒讀回菜名、10 分鐘、3 人份和 12 行食材。把食材送進共用清單後,另一個帳號列出清單時看得到全部 16 項(原本 4 項加 12 行食材)。

食材送進清單後,整行都成了品名

坑在這裡:中文食材是整行變成品名,例如「調味:白醋 2匙」「醃料:鹽 1/4匙」,連「調味」「醃料」字樣都跟著進去,份量也沒有拆開。我另外貼了英文的 BBC Good Food 食譜,回傳的也是整行(例如 100g plain flour),沒有對應到既有項目。所以匯入後要自己整理品名。

另外,allrecipes.com 和 cookieandkate.com 這兩個網站回覆「不支援的網站」,不是每個食譜站都能貼。

怎麼用才不會誤會

這裡的去重是「共用清單裡的相同項目只留一筆」,不是自動知道冰箱裡有什麼,也不能保證兩個人不會在現場買重複。出門前先約定共用同一份清單,匯入食譜後檢查品名與份量;手機通知與即時同步這次沒測,不能把另一個帳號重新列出清單的結果當成推播測試。

結論

專案連結:https://github.com/TomBursch/kitchenowl 授權:AGPL-3.0

本次為動畫修訂:沿用 2026-10-24 原實測與免費 Edge 旁白,重新繪製成人角色、牛奶與雞蛋,並以重複項目靠近、震動後消失的方式圖解去重;沒有重跑外部操作或新增手機實測。

測試設備:Mac mini M4 Pro(12 核、64GB)。內容依實際執行結果撰寫,數據為撰寫當時的實測值。

← 所有實測