Local lists smart home integration, free and open source

Shopping lists and to-do lists stored in Gladys: dashboard, scenes, overdue tasks. No cloud.
Shopping lists and to-do lists kept in Gladys itself: no account, no cloud, no other server. Show a list on the dashboard, add or check off an item with a tap, let a scene put "bin bags" on the shopping list, remind you of a task that is overdue, or read the list aloud before you leave.
Feedback welcome. This integration was tested with the test Gladys of the SDK and in its Docker image, not yet in everyday use with a real Gladys. If something does not work as described, please say so on the Gladys forum or in the issues.
What you need
- Gladys Assistant 5.2.0 or later (the forms of the widget buttons).
- Nothing else: the lists are stored by the integration in its own volume.
Set up
- Install the integration, open its Configuration tab.
- Create a list: type its name (e.g.
Groceries) and choose its kind:- Shopping list: items to buy;
- To-do list (due dates): tasks, each with an optional due date.
- Open the Discovery tab and add the list: it becomes a device of Gladys, which you can rename and put in a room.
- Add the Local list widget to a dashboard.
Show the lists gives the lists and how many items are left on each. Delete a list deletes a list and its items for good: type its exact name to confirm. Then delete its device in Gladys too. A list cannot be renamed here: rename its device in Gladys, the widget and the scenes use that name.
Language of the feature names: the language of the names given to the features when a list is added, and of the messages sent to scenes (French by default).
Devices
One device per list, with:
- Items to buy (shopping list) or Tasks to do (to-do list): the number of items not checked off yet;
- Overdue tasks (to-do lists only): the tasks whose due date has passed.
These figures are kept in the history, and work in the scene conditions of Gladys ("if more than 10 items to buy…"). A due date without a time is overdue the next day; a due date with a time, the minute after.
Dashboard
The Local list widget shows a list: the number of items left, the items (ten rows at most; the tasks with their due date, the overdue ones in red), and four buttons:
- Add: an item, and for a to-do list an optional due date;
- Check off and Uncheck: choose the item in a list;
- Clear done: removes the checked-off items, after a confirmation.
Settings: the list (empty: the first one), Show the done items, and Buttons to hide (e.g. a wall tablet that only shows the list).
Scenes
Triggers
- Item added to a local list: an item was added from the widget or a scene, or a checked-off item is back on the list. Variables: the item, the list, the due date.
- Item checked off a local list: variables: the item, the list, the number of items left.
- Local list done: the last item left on a list was checked off.
- Task overdue: a task passed its due date without being checked off, once per task (again if it is unchecked then overdue again). A task that became overdue while Gladys was off fires at the next start.
Each trigger can be limited to one list (empty: any list).
Actions
- Add to a local list: the list, the item, and for a to-do list an
optional due date:
2026-11-20,20/11/2026(day first),20/11/2026 18:30, or+Nfor N days from today (+0is today,+1 08:00tomorrow at 8 am). An item already on the list is not added twice (a task gets the new due date); an item checked off before is put back. - Check off a local list item: by its text (case and accents ignored), done or back to do. Outputs: found, changed, number left.
- Clear done items of a local list: output: the number removed.
- Read a local list: outputs: the items left as one text
(
Milk, Eggs, Bread), their number, the overdue tasks. To send in a message or to say aloud.
Scene ideas
- Every Monday at 7 pm: "Add to a local list" Take the bins out, to the
chores list, due
+0 20:00. Not done at 8 pm: "Task overdue" reminds you. - An NFC tag on the cupboard: "Add to a local list" coffee.
- When you leave home (presence): "Read a local list", then send its text to your phone.
- "Task overdue": a Telegram message with the task and its list.
- "Local list done": a notification "Everything is bought".
The Gladys chat assistant cannot read or fill the lists by itself: the SDK of the integrations gives no way to do it in Gladys 5.3. Scenes are the way.
Your data
Everything is stored in one file, lists.json, in the volume of the
integration (/data), with the previous version as lists.json.bak. Each
change is written to a temporary file then renamed: a power cut never leaves
half a file. If the file is unreadable at start, it is kept as
lists.json.corrupt and the backup is read instead. Uninstalling the
integration deletes its volume, and the lists with it.
Troubleshooting
- The list is not in the scenes or in the widget settings: add its device in the Discovery tab first.
- "Due date not understood": use
2026-11-20,20/11/2026 18:30or+3. - "The lists could not be saved": the volume of the integration is full or read-only; nothing was changed. See the logs of the integration.
- Logs: in Gladys, the integration page, Logs. Start the integration
with
LOG_LEVEL=debugfor more detail.
Limits
- 50 lists, 500 items per list, 200 characters per item, 40 per list name.
- No sub-tasks, no recurring tasks, no sharing outside Gladys: the lists live in Gladys only. A recurring task is a scene that adds it.
- The widget shows ten rows; the forms offer the first fifty items.
- No import from or export to another service.
Configuration settings
These are the settings Local lists asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Your lists | section | No | Create a list with the buttons below, then add it in the Discovery tab: it becomes a device, to show on the dashboard (Local list widget) and to use in scenes. Everything stays in Gladys. |
| Language of the feature names | select | No | Names given to the features when a list is added, and texts sent to scenes. |
How to install Local lists in Gladys
- In Gladys, open Integrations: Local lists appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/guim31/gladys-local-lists:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/guim31/gladys-local-lists.
Local lists requires Gladys >=5.2.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
About external integrations
Local lists is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by guim31, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation