A Mealime - Siri integration
Published on March 4th, 2023
For several years I’ve used the meal planner & grocery list app Mealime. It’s great, since it neatly combines both concepts in a slick app.
However, there was one thing that I have always sorely missed in the app: being able to say “Hey Siri, add apples [or whatever] to my grocery list”, without pulling my phone out.
This feature stayed out, and I kept having occasions where I wanted it to be there.
So, built it myself:
Do you have a Mealime account, a little bit of technical know-how, and would you also like to be able to do this?
You can set this up yourself relatively easily, without coding. I included instructions on the open-source GitHub repository.
How it works
The solution consists of, (1) a Shortcut, and (2), a small server application.
1. The Shortcut
In the video, “Add groceries” is a simple iOS/ipadOS/macOS Shortcut that listens to what you want to add. It then sends this text verbatim to the /add
endpoint on the server application. The shortcut fits onto one screenshot:
When I say “Hey Siri, Add groceries”, the Shortcuts gets invoked.
2. The server application
The server application was a Node.js application that I recently rewrote in Deno. When starting it, you supply the server application with your Mealime username & password.
The server does two things:
It receives the request from the Shortcut. It does some basic processing on it to recognize multiple items in your query (”apples AND pears”), as well as the product category an item belongs to (”Produce”). For this, it uses a static
After the request has been processed, it uses the Mealime username and password to simulate the user logging in on the (old) Mealime web app. From there, it simulates that same user adding the requested items, and voilà!
The server application can run anywhere where Deno runs, but in particular, it works for free and out-of-the-box on Deno Deploy. There are also Docker images available.
Caveats
It works well enough (and I use it often!), but not everything is dandy in this integration.
Shortcut invocation limitations
What unfortunately doesn’t work when invoking the shortcut, are the following more natural and direct expressions:
“Hey Siri, add apples and pears to my grocery list” → this will add it to Reminders
“Hey Siri, add apples and pears to my Mealime grocery list” → this will make Siri attempt to contact the actual Mealime app, which doesn’t have support for it (“Sorry, you’ll need to continue that in the app”)
Incomplete product database
The integration can determine the section a product belongs to (”Produce”, “Baking & Spices”, …), but this process currently has limitations, as it is based on a static mapping file.
It might be possible to reverse-engineer the search function of the Mealime app, and in that way support all the product-to-section mappings that Mealime understands. However, I didn’t feel this was worth the effort. I only looked at the endpoints used in the web app, where you have to manually specify to which category you want to add your product:
Possibility that it breaks
The web app that I simulate will likely be replaced with a new version that is coming up, at some point in the future:
Unfortunately, this new web app does not have the feature yet of manually adding items to your grocery list. I hope it still comes, or that Mealime makes an official Siri integration!