The weekly menu your whole family builds together.

One list for dinners, breakfast, lunch, snacks, and staples. Everyone adds a dish. Everyone sees what is ready. An agent turns the list into groceries.

No grocery login stored. No order placed without you.

How it works

1

Build together

Anyone on the list adds a dinner, says who picked it, and fills breakfast, lunch, and snacks for the week.

2

Mark it ready

Each day and each meal block is Ready to go or Needs decision. The week is done when every block is ready.

3

Hand it to an agent

Share a read-only link. The agent reads the menu, the settings, and past lists, and builds the grocery run from it.

Made for a family, not a spreadsheet

  • One column, one field per row. Easy on a phone, easy for kids.
  • Staples pull in with one tap, so the regulars never get forgotten.
  • General requests hold the whole-list rules: allergies, no pork, a budget target.
  • Members build the menu. Only the owner changes list settings.

Agents read this too.

A list owner creates a share link in the app. The link needs no login and no account, and it never edits the list. The owner can rotate or disable it at any time. A share-all link covers every list a person owns or is a member of, in one document.

Fetch it like this:

GET /api/agent/<share-key>

It returns versioned JSON, with the settings, the board, past grocery lists, and a plain-text brief:

{
  "version": "bitrecipes-agent-brief/v1",
  "scope": "list",
  "settings": {
    "grocerySource": "Hy-Vee",
    "fulfillment": "Pickup",
    "pickupSource": "Hy-Vee Center Road, Omaha #3",
    "bestDay": "Saturday",
    "budget": "150",
    "householdSize": "4",
    "allergies": ["Peanuts"]
  },
  "board": {
    "weekOf": "2026-11-02",
    "dinners": { "Sunday": ["Tacos"], "Monday": ["Spaghetti"] },
    "dinnerStatus": { "Sunday": "ready", "Monday": "needs" },
    "dinnerServings": { "Sunday": "4", "Monday": "" },
    "readiness": { "ready": false, "core": [{ "label": "Grocery source set", "met": true }], "recommended": [{ "label": "Budget set", "met": true }] },
    "calls": { "breakfast": "Eggs, toast" },
    "weekStaples": ["Milk", "Eggs", "Bread"]
  },
  "agentBrief": "Week of: 2026-11-02. Grocery source: Hy-Vee. ..."
}

That is a sample, not a real list. A real share key comes from inside the app, after sign-in.

bit.recipes: A Team Grocery List