Use one list, then check how each phone reaches it
For a shared Home Assistant shopping list, start with the built-in Shopping list integration. An integration is a connection or feature added to Home Assistant. Both household members should open the same list on the same Home Assistant server. Creating two lists with the same display name does not connect them.
First add a harmless test item at home and check it off from the other phone. Next test with the shopper’s Wi-Fi off and mobile data on. Only after that should you decide whether the supermarket needs an offline fallback.
The list can live on your own Home Assistant server, but your phone still has to reach that server to read current items and save changes. Local storage describes where the list lives; offline access describes what the phone can do without a connection. These are separate choices.
Researched by Tara Home from current Home Assistant documentation and released iOS app source on September 28, 2026. The household walkthrough is an illustrative setup and verification plan, not a tested Tara installation. The cover is an AI-generated editorial illustration.
1. Choose where the household list will live
Keep the first version simple. Pick one list to maintain rather than copying groceries between several apps by hand.
On a narrow screen, swipe the table sideways.
| Your priority | Start here | Main requirement or limit |
|---|---|---|
| One grocery list in Home Assistant | Built-in Shopping list, shown on a To-do list card. | A running Home Assistant server and a phone connection to it. |
| Separate groceries, hardware-store and packing lists | Local to-do, with a separately named list for each job. | Each list has its own entity. More lists do not add offline phone sync. |
| Keep using Apple Reminders | The iOS Companion app’s Reminders Sync, described below. | iOS Companion app version 2026.8.0 or later; an experimental LABS feature with permission and sync-timing caveats. |
| Use a dedicated grocery app across iPhone and Android | Consider OurGroceries and its built-in Home Assistant integration. | Requires an OurGroceries account; Home Assistant checks its cloud service for updates. The app is free with ads, with optional paid ad removal. Verify disconnected use before relying on it. |
OurGroceries is an alternative storage choice, not an automatic copy of the built-in Shopping list. Its integration creates entities for its own lists. The vendor’s FAQ covers phone support, sharing and payment options. This guide does not claim a tested offline experience for that app.
2. Open the same list on both phones
- Find the existing list. Open To-do lists in Home Assistant’s sidebar and look for Shopping list. If missing, an administrator can add Shopping list under Settings → Devices & services → Add integration.
- Use separate household logins. Have an administrator create a login for each trusted household member, then connect each Home Assistant phone app (the Companion app) to this server. Everyday use normally does not need administrator status. Follow the account documentation.
- Add one visible card. On an editable dashboard, select Edit dashboard → Add card → To-do list. Choose the actual Shopping list entity and save. An entity is Home Assistant’s identifier for one list or device function.
- Check the second phone. Open that dashboard or the sidebar’s To-do lists page and select the same list. Different dashboard layouts are fine; the selected entity must match.
A typical list identifier is todo.shopping_list, but check yours instead of assuming the name. The standard card supports adding, editing and checking off items. If you prefer its code editor, this is the complete card configuration; it belongs in a dashboard card, not configuration.yaml:
type: todo-list
entity: todo.shopping_list
title: Groceries
hide_completed: false
Leave completed items visible during setup so you can see where a checked item went. Later, hide_completed: true hides that section without deleting its items.
A grocery dashboard is not a grocery-only account. Hiding other tabs does not prevent access to their URLs, and a non-admin login does not establish list-only authorization. Give Home Assistant accounts only to people you trust with the access they actually receive. For a guest who needs just groceries, use a list-sharing service rather than assuming dashboard visibility creates a security boundary. See the official view-visibility note and our guide to Home Assistant user restrictions.
3. Rehearse one shopping trip with two people
Here is an example for Alex at home and Sam doing the shopping. Use ordinary test entries, with no purchases or device actions attached. The expected outcomes below are a checklist for your installation, not results from a Tara test.
On a narrow screen, swipe the table sideways to read the expected results.
| Step | What to do | Expected result |
|---|---|---|
| Build the list | Alex adds “TEST milk — 2 cartons” and “TEST bread” from the kitchen dashboard. | Sam sees both entries in the selected list. No separate copy or share link is needed between these two Home Assistant views. |
| Change the plan | Sam edits the milk entry to “TEST milk — 1 carton.” | Alex sees the edited entry. If the old text remains, check the list identifier and connection before adding another copy. |
| Mark an item bought | Sam checks off the bread entry. | It moves to Completed on both views. With completed items hidden, it disappears from the active display. |
| Leave home | Sam disables phone Wi-Fi, keeps mobile data on, and adds “TEST apples.” | Alex sees the new entry through the configured remote connection. If it fails, return to the connection checks below. |
Restore the phone’s normal Wi-Fi setting afterward. You can leave the test entries completed while learning the interface. There is no need to clear the household’s entire list.
If you inspect the entity in Home Assistant’s state tools, its state is the number of incomplete items, not the shopping text. With two unfinished entries, a state of 2 is expected. Use the To-do lists page to read the items.
4. Separate remote access from no-signal shopping
If it works on home Wi-Fi but fails on mobile data, fix the remote connection first. The Companion app networking guide explains why a private home address is not enough from outside the house. Home Assistant Cloud provides a paid remote-access option; a correctly configured VPN—a private connection back to your home network—is another route. Our remote-access guide compares those choices.
Neither route creates a connection in a supermarket dead spot. For an occasional trip, open the current list before leaving and save a screenshot that includes every active item. Treat it as a dated copy: it cannot receive Alex’s last-minute additions or record Sam’s purchases back to Home Assistant.
For regular disconnected shopping, choose a phone app that keeps a usable local copy and verify its return-to-online behavior. Test only grocery entries: temporarily turn off that phone’s Wi-Fi and mobile data, open the list again, and check whether you can read and complete a test item. Restore connectivity and check the other person’s list. A cached screen by itself does not prove that changes will sync.
Optional on iPhone: connect Apple Reminders
The iOS Companion app includes Reminders Sync from version 2026.8.0, marked LABS (experimental). The maintainer’s setup documentation is still a draft; the feature is present in the released 2026.9.2 app source. Settings can change between versions.
- Start with an empty test list in Apple Reminders and a separate Local to-do test list in Home Assistant.
- In the iPhone’s Home Assistant app, open Companion app settings → Reminders Sync and grant the requested full Reminders access.
- Add a pairing, select those two lists, and choose Two-way if both sides should accept edits. Save, then use Sync now.
- Add one test item in each app and complete one. Confirm the other side agrees before connecting a real household list. Two-way sync can also propagate deletions.
This connection runs through the phone. In the checked release, scheduled foreground checks and background refresh are off by default; opening the app or choosing Sync now can fetch updates. If background refresh is enabled, iOS still decides when it runs. Open the app and verify the list before leaving and after reconnecting. Do not assume every Reminders feature, such as recurrence or location alerts, transfers.
Pairing Reminders with Home Assistant also does not share an Apple list with another person. Set up household sharing in the chosen app separately, and repeat the two-person and disconnected checks. This optional path is not needed for two connected Home Assistant phones.
If the two lists disagree
On a narrow screen, swipe the table sideways to read the next action.
| What you see | First check | Useful next action |
|---|---|---|
| Both screens say “Groceries,” but items differ. | Server and todo. identifier on each card. | Select the same entity; a card title is only a label. |
| Items vanish when checked. | The Completed section and the card’s hide-completed setting. | Show completed items before assuming data was lost. |
| Works at home, fails outside. | Whether any Home Assistant dashboard loads over mobile data. | Repair remote access before replacing the list or card. |
| Works outside, fails inside one shop. | Phone connectivity at that location. | Use the prepared offline copy; a new dashboard will not restore reception. |
| Reminders edits arrive late or get undone. | Connectivity, sync direction and conflict preference. | Open the Companion app, use Sync now and inspect sync history. A one-way pairing can overwrite edits on its destination. |
Frequently asked questions
Can I add groceries by voice?
Yes. The built-in Shopping list supports Assist commands such as “Add eggs to my shopping list.” First check the destination using Assist’s text input. A working grocery list does not by itself configure microphones or speech processing; our local voice setup guide covers those separate parts.
Does sharing the built-in list require a subscription?
The list itself does not. Both phones need access to the running Home Assistant server. Remote access may have a separate cost, depending on the route you choose.
Can I use this for recurring household chores?
A checklist and a recurring schedule are different jobs. For “remind me again two weeks after I finish,” use our completion-based chore reminder guide. A grocery checkbox alone does not create that schedule.
For help bringing shared controls and everyday routines together, see Tara’s home automation kit for local routines.
