<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="pretty-atom-feed.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  
  <title>LystBot Blog</title>
  <subtitle>Updates, tutorials and behind-the-scenes of LystBot - the list app your AI can actually use.</subtitle>
  <link href="https://lystbot.com/blog/feed/feed.xml" rel="self" />
  <link href="https://lystbot.com/blog/blog/" />
  <updated>2026-04-02T14:52:36Z</updated>
  <id>https://lystbot.com/blog/blog/</id>
  <author>
    <name>LystBot Team</name>
  </author>
  <entry>
    <title></title>
    <link href="https://lystbot.com/blog/introducing-lystbot/" />
    <updated>2026-04-02T14:52:36Z</updated>
    <id>https://lystbot.com/blog/introducing-lystbot/</id>
    <content type="html">&lt;!-- Meta Description: LystBot is a free AI list app with shared grocery lists. Your AI adds items for real. Download LystBot free on the App Store and Google Play. --&gt;
&lt;h1 id=&quot;ai-list-app-with-shared-lists-lystbot&quot;&gt;AI List App with Shared Lists: LystBot&lt;/h1&gt;
&lt;p&gt;You ask Claude to &amp;quot;add milk to my shopping list.&amp;quot; Claude says &amp;quot;Done!&amp;quot; Nothing happens. Your grocery list app has no idea Claude exists.&lt;/p&gt;
&lt;p&gt;Every AI assistant pretends it can manage your lists. None of them connect to a real app on your phone. LystBot is an ai list app built to fix this. It handles shared grocery lists for families, with a built-in MCP server that lets AI assistants add items, check things off, and create new lists for real. Items show up on your phone. Your family sees them.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; LystBot is a free list app with real AI integration. Tell Claude to add groceries and the items appear on everyone&#39;s phone within seconds. Shared lists sync across family members. Open source. iOS and Android.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;grocery-list-app-what-lystbot-does-for-families&quot;&gt;Grocery List App: What LystBot Does for Families&lt;/h2&gt;
&lt;p&gt;Before the AI stuff, LystBot handles the daily basics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Shared lists&lt;/strong&gt; that sync in real time between partners, roommates, or family members&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Push notifications&lt;/strong&gt; when someone adds or checks off items&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multiple list types:&lt;/strong&gt; grocery lists, todos, wishlists, packing lists&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emoji labels&lt;/strong&gt; for quick visual organization&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Free&lt;/strong&gt; with no subscription and no premium tier&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot Lists Overview&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot List Detail&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Share a list by sending a code to your partner. They open it on their phone and see every update live. No account linking, no email invitations. You create a grocery list, your partner checks things off at the store, both phones stay in sync.&lt;/p&gt;
&lt;p&gt;You don&#39;t need to touch any technical settings to use shared lists. The app works like any other grocery list app out of the box. The AI features are optional, and your list data stays on LystBot&#39;s servers (not sent to third-party AI providers) unless you connect an AI assistant yourself.&lt;/p&gt;
&lt;p&gt;We checked AnyList, Todoist, Apple Reminders, and Google Keep before building this. None of them expose an API or MCP server that AI assistants can connect to. That gap is why LystBot exists.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ai-list-app-how-lystbot-connects-to-your-ai&quot;&gt;AI List App: How LystBot Connects to Your AI&lt;/h2&gt;
&lt;p&gt;Tell Claude: &amp;quot;Find me a carbonara recipe and add everything to my grocery list.&amp;quot;&lt;/p&gt;
&lt;p&gt;Your phone buzzes. Open LystBot. The items are there: guanciale, pecorino romano, eggs, black pepper, spaghetti. Your partner&#39;s phone has them too, because shared lists update in real time.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;LystBot Push Notification from AI&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-share-code.webp&quot; alt=&quot;LystBot Share Code&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;LystBot ships with a built-in &lt;a href=&quot;https://modelcontextprotocol.io/&quot;&gt;MCP server&lt;/a&gt;, listed in the &lt;a href=&quot;https://registry.modelcontextprotocol.io/?q=Lystbot&quot;&gt;official MCP Registry&lt;/a&gt;. MCP (Model Context Protocol) is the open standard that lets AI assistants like Claude interact with external tools. When Claude says &amp;quot;Done,&amp;quot; LystBot makes it true.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Setup for Claude Desktop&lt;/strong&gt; (one line in your config):&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;&quot;mcpServers&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;&quot;lystbot&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;&quot;command&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;npx&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;&quot;args&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;lystbot&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;mcp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Setup for Claude Code:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;claude mcp &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; lystbot -- npx lystbot mcp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Getting your credentials takes five seconds: open Settings, tap AI Agents, copy the code.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-settings.webp&quot; alt=&quot;LystBot Settings&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Download LystBot free on the &lt;a href=&quot;https://apps.apple.com/us/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt; and try it with your AI assistant.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ai-list-app-for-developers-cli-api-and-open-source&quot;&gt;AI List App for Developers: CLI, API, and Open Source&lt;/h2&gt;
&lt;p&gt;LystBot also exposes a CLI and REST API for automation, AI agents like &lt;a href=&quot;https://openclaw.ai&quot;&gt;OpenClaw&lt;/a&gt;, and custom integrations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CLI example:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npx lystbot login &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;YOUR_API_KEY&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
lystbot create &lt;span class=&quot;token string&quot;&gt;&quot;Weekend Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--emoji&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;🛒&quot;&lt;/span&gt;
lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Weekend Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Avocados, Sourdough bread, Coffee beans&quot;&lt;/span&gt;
lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Weekend Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Coffee beans&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;REST API&lt;/strong&gt; for anything custom. The &lt;a href=&quot;https://lystbot.com/agents&quot;&gt;API docs&lt;/a&gt; cover all endpoints.&lt;/p&gt;
&lt;p&gt;The CLI and MCP server are open source on &lt;a href=&quot;https://github.com/TourAround/LystBot&quot;&gt;GitHub&lt;/a&gt;. Read the code, open issues, contribute.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coming soon:&lt;/strong&gt; recurring list templates, AI-powered item suggestions based on your purchase patterns, Slack and Discord integrations, and real-time collaboration with live cursors.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;the-bottom-line&quot;&gt;The Bottom Line&lt;/h2&gt;
&lt;p&gt;LystBot is an ai list app that gives your AI assistant real access to your lists. It works as a grocery list app for families with shared lists that sync in real time, and as far as we&#39;ve found, it&#39;s the first list app with a built-in MCP server for direct AI integration. Tell Claude to add items and they show up on your phone within seconds. Free, open source, iOS and Android.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot free on the App Store and Google Play&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Shared Grocery List App: How to Pick the Right One</title>
    <link href="https://lystbot.com/blog/shared-grocery-list-app/" />
    <updated>2026-04-02T12:00:00Z</updated>
    <id>https://lystbot.com/blog/shared-grocery-list-app/</id>
    <content type="html">&lt;!-- Meta Description: Find the best shared grocery list app for couples, families, and roommates. Download LystBot free on the App Store and Google Play. --&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/hero-shared-grocery-list-app.webp&quot; alt=&quot;Two phones showing a shared grocery list syncing in real time&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;My partner and I used to text each other grocery items. &amp;quot;Can you grab milk?&amp;quot; &amp;quot;Already got it.&amp;quot; &amp;quot;No, the oat one.&amp;quot; &amp;quot;You didn&#39;t say oat.&amp;quot; We had this conversation weekly. A shared grocery list app fixed it in about 30 seconds. One list, both phones, real-time sync. No more guessing, no more duplicates, no more wrong milk.&lt;/p&gt;
&lt;p&gt;But picking the right shared list app is harder than it should be. Some apps make sharing easy but lack features. Others are powerful but complicated. And most don&#39;t tell you their limitations until you&#39;ve already committed.&lt;/p&gt;
&lt;p&gt;I tested six shareable shopping list apps over three months. Here&#39;s what I found.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The best shared grocery list app depends on your household. AnyList wins for recipe-driven families. OurGroceries wins for simplicity and voice assistants. LystBot wins for power users who want API access, AI integration, or automation. All three sync lists in real time across iOS and Android. Read below for the full breakdown of what each does well and where each falls short.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;shared-grocery-list-app-what-actually-matters&quot;&gt;Shared Grocery List App: What Actually Matters&lt;/h2&gt;
&lt;p&gt;Most app reviews list features. That&#39;s not helpful. What matters is how the sharing works in practice, because that&#39;s where most apps either earn your trust or lose it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sync speed.&lt;/strong&gt; When your partner adds &amp;quot;chicken thighs&amp;quot; at home, you need to see it before you walk past the meat section. Anything over 2-3 seconds feels broken. I tested sync speed across AnyList, OurGroceries, Google Keep, Apple Reminders, and LystBot. AnyList, OurGroceries, and LystBot all sync under 2 seconds on a decent connection. Google Keep was inconsistent (sometimes instant, sometimes 10+ seconds). Apple Reminders only works if everyone uses iPhones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How you invite people.&lt;/strong&gt; Some apps require both people to create accounts. Others use invite links or share codes. The fewer steps, the better. If your roommate needs to create an account, verify an email, and download an app before seeing your list, half of them won&#39;t bother.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cross-platform support.&lt;/strong&gt; Mixed households (iPhone + Android) need an app that works on both. Apple Reminders fails here. Google Keep works but its sharing UX is clunky for grocery-specific use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Notifications.&lt;/strong&gt; A shareable grocery list is only useful if you know when it changes. Push notifications when someone adds or checks off items make the difference between &amp;quot;I&#39;ll check the list later&amp;quot; and &amp;quot;oh, we need eggs, I&#39;m near the store.&amp;quot;&lt;/p&gt;
&lt;p&gt;These four things matter more than recipe import, aisle sorting, or dark mode. Get the sharing right and everything else is a bonus.&lt;/p&gt;
&lt;h2 id=&quot;shared-shopping-list-3-apps-that-get-it-right&quot;&gt;Shared Shopping List: 3 Apps That Get It Right&lt;/h2&gt;
&lt;h3 id=&quot;anylist&quot;&gt;AnyList&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.anylist.com/&quot;&gt;AnyList&lt;/a&gt; has been the default recommendation for shared grocery lists since 2012. The sharing works well: invite by email, both people see the same list, changes sync fast.&lt;/p&gt;
&lt;p&gt;Where AnyList stands out is recipe integration. Import a recipe URL, tap &amp;quot;add ingredients to list,&amp;quot; and the items appear on your shared shopping list. For families who meal plan on Sundays and shop on Mondays, this saves 10-15 minutes per week.&lt;/p&gt;
&lt;p&gt;The free version handles sharing and basic lists. AnyList Complete ($9.99/year) adds the web app, meal planning calendar, and recipe scaling. Worth it if you cook from recipes regularly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; AnyList is a closed system. No API, no way to add items from a script or voice assistant beyond Siri. If you want to automate anything, or if someone in your household prefers Android and wants a web app without paying, AnyList creates friction.&lt;/p&gt;
&lt;h3 id=&quot;ourgroceries&quot;&gt;OurGroceries&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ourgroceries.com/&quot;&gt;OurGroceries&lt;/a&gt; takes the opposite approach. Less features, less complexity, broader reach.&lt;/p&gt;
&lt;p&gt;It runs on iOS, Android, web, Apple Watch, Wear OS, and it connects to Alexa and Google Assistant. &amp;quot;Alexa, add butter to my grocery list&amp;quot; works out of the box. For households where one person types and another talks, that flexibility matters.&lt;/p&gt;
&lt;p&gt;Sharing is simple: create a list, share by email, done. The free version has ads. A one-time purchase removes them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; Basic recipe support compared to AnyList (no URL import, no scaling). The interface looks dated. No API or developer tools. If you want more than a straightforward shared list, OurGroceries will feel limiting within a few months.&lt;/p&gt;
&lt;h3 id=&quot;lystbot&quot;&gt;LystBot&lt;/h3&gt;
&lt;p&gt;Full disclosure: &lt;a href=&quot;https://lystbot.com&quot;&gt;LystBot&lt;/a&gt; is our product. I&#39;ll be honest about what it does and doesn&#39;t do.&lt;/p&gt;
&lt;p&gt;LystBot is a shared list app built for people who want their lists to connect to other tools. The mobile app works like any shareable shopping list app: create a list, share it with a 6-character code, items sync in real time, push notifications tell you when something changes.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot shared grocery lists overview&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot shared list detail with grocery items&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;What makes LystBot different: it has a &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;REST API&lt;/a&gt;, a &lt;a href=&quot;https://lystbot.com/blog/manage-shopping-list-terminal/&quot;&gt;CLI&lt;/a&gt;, and an &lt;a href=&quot;https://lystbot.com/blog/claude-mcp-grocery-list/&quot;&gt;MCP server&lt;/a&gt; for AI assistants. You can add items from a terminal, a cron job, a Slack bot, or by telling Claude &amp;quot;add the ingredients for carbonara to my grocery list.&amp;quot; Your partner sees the items on their phone instantly, no matter how they got added.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-share-code.webp&quot; alt=&quot;LystBot share code for inviting others to a shared grocery list&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;Push notification when items are added to shared list&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Sharing works via a 6-character code. No email required, no account creation for the other person. Send the code, they enter it, done. We built it this way because every extra step in the invite flow is a place where people drop off.&lt;/p&gt;
&lt;p&gt;Free. No premium tier, no paywalls, no &amp;quot;3 lists free then pay&amp;quot; limits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The catch:&lt;/strong&gt; No recipe management. No voice assistant integration (yet). LystBot is newer than AnyList and OurGroceries, so expect fewer polish details. If you want a mature, recipe-first grocery app, AnyList is the better pick today.&lt;/p&gt;
&lt;p&gt;Download LystBot free on the &lt;a href=&quot;https://apps.apple.com/us/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt;. Share your first list in under a minute.&lt;/p&gt;
&lt;h2 id=&quot;grocery-list-app-to-share-common-mistakes&quot;&gt;Grocery List App to Share: Common Mistakes&lt;/h2&gt;
&lt;p&gt;I&#39;ve watched friends and family set up shared grocery lists. The same mistakes come up every time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Using a notes app instead of a list app.&lt;/strong&gt; Apple Notes and Google Keep technically support sharing. But they don&#39;t have grocery-specific features: no check-off behavior, no push notifications when items change, no aisle organization. You end up with a shared document, not a shared list. It works until it doesn&#39;t, usually when two people edit at the same time and items disappear.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Picking an app that only works on one platform.&lt;/strong&gt; Apple Reminders is great if everyone has an iPhone. The moment someone in your household switches to Android or wants to check the list on a computer, you&#39;re stuck. A shared grocery list app needs to work on iOS, Android, and ideally web. Check this before you commit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Not setting up notifications.&lt;/strong&gt; A shareable grocery list with notifications turned off is just a list nobody checks. Make sure both people enable push notifications so you see changes in real time. The whole point is that you don&#39;t have to ask &amp;quot;did you add anything?&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overcomplicating it.&lt;/strong&gt; You don&#39;t need 15 features on day one. Pick an app, create one shared list, use it for a week. If it works, expand. If it doesn&#39;t, switch. Most list apps let you export, so you&#39;re not locked in.&lt;/p&gt;
&lt;h2 id=&quot;shared-list-app-beyond-groceries&quot;&gt;Shared List App: Beyond Groceries&lt;/h2&gt;
&lt;p&gt;A good shared list app handles more than groceries. Once you have the sharing habit, the same tool works for:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Packing lists.&lt;/strong&gt; Traveling with a partner or family? A shared packing list means you don&#39;t both bring sunscreen and neither brings a phone charger. We covered some of these &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/&quot;&gt;automation use cases&lt;/a&gt; in a separate post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Household chores.&lt;/strong&gt; A shared todo list for the house (fix the leaky faucet, call the electrician, buy lightbulbs) keeps things visible without the awkward &amp;quot;did you do the thing?&amp;quot; conversation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Event planning.&lt;/strong&gt; Party supplies, potluck signups, moving checklists. Anything where multiple people need to see and update the same list benefits from real-time sync.&lt;/p&gt;
&lt;p&gt;LystBot supports list types for shopping, todos, packing, and generic lists. All shareable, all synced. The &lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/&quot;&gt;MCP server&lt;/a&gt; means you can even have an AI assistant manage your shared lists if that fits your workflow.&lt;/p&gt;
&lt;h2 id=&quot;the-right-shared-grocery-list-app-for-you&quot;&gt;The Right Shared Grocery List App for You&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pick AnyList&lt;/strong&gt; if your household revolves around cooking and meal planning. The recipe-to-list workflow is unmatched, and the $9.99/year price is fair for what you get.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick OurGroceries&lt;/strong&gt; if you want the simplest path to a shared shopping list that works everywhere, including voice assistants. If your parents or roommates need something with zero learning curve, this is the one.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick LystBot&lt;/strong&gt; if you want a shared list app that connects to other tools. API access, terminal commands, AI integration. Your grocery list becomes part of a larger system instead of a standalone app. Good for developers, power users, and anyone whose workflow already involves automation.&lt;/p&gt;
&lt;p&gt;No single app is the best shared grocery list app for every household. But one of these three will fit how you actually live and shop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot free on the App Store and Google Play&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Best Free Grocery List App 2026: 5 Honest Picks</title>
    <link href="https://lystbot.com/blog/best-free-grocery-list-app/" />
    <updated>2026-03-28T16:00:00Z</updated>
    <id>https://lystbot.com/blog/best-free-grocery-list-app/</id>
    <content type="html">&lt;!-- Meta Description: Best free grocery list app tested on iOS and Android, no paywalls. Download LystBot free on the App Store and Google Play. --&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/hero-best-free-grocery.webp&quot; alt=&quot;Five free grocery list apps compared on phone screens&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;&amp;quot;Free&amp;quot; in the App Store usually means &amp;quot;free until you need the one feature that matters.&amp;quot; I downloaded 11 grocery list apps last month and tested each for three weeks on an iPhone 15 and a Pixel 8, both on the same home Wi-Fi and on separate LTE connections. I measured sync speed with a stopwatch across 30 round trips per app and tracked every paywall prompt in a spreadsheet. Seven of those apps locked sharing, web access, or basic organization behind a subscription within the first week. Two showed full-screen ads after every interaction. The best free grocery list app shouldn&#39;t require an asterisk.&lt;/p&gt;
&lt;p&gt;Five apps survived the filter. Here&#39;s how they compare.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Google Keep is the best free grocery list app if you&#39;re already in Google&#39;s ecosystem. OurGroceries wins for simple shared lists with voice assistants. LystBot is the pick for anyone who wants zero paywalls, fast sharing, and the option for API or AI integration. Apple Reminders works for all-Apple households. Listonic is decent but pushes premium hard. Full breakdown below.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;best-free-grocery-list-app-what-free-means-in-practice&quot;&gt;Best Free Grocery List App: What &amp;quot;Free&amp;quot; Means in Practice&lt;/h2&gt;
&lt;p&gt;Before the comparison, a note on how these apps define &amp;quot;free.&amp;quot; There are three models, and they&#39;re not equal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Truly free, no paywall.&lt;/strong&gt; All features available to all users. No premium tier exists. LystBot and Google Keep fall into this category.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Free with optional premium.&lt;/strong&gt; The core app works without paying, but some features (web access, recipe import, ad removal) sit behind a subscription. AnyList, OurGroceries, and Listonic use this model. These are still useful without paying, but you&#39;ll hit walls.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Free trial disguised as free.&lt;/strong&gt; The app works for 7-14 days, then locks core features. I excluded these because they&#39;re trials, not free apps.&lt;/p&gt;
&lt;p&gt;A &lt;a href=&quot;https://sensortower.com/blog/state-of-mobile-2024&quot;&gt;2024 Sensor Tower report&lt;/a&gt; found that 95% of app store downloads are free apps, but over 60% of revenue comes from in-app purchases. The business model depends on converting free users. Knowing where each app draws that line tells you more than any feature list.&lt;/p&gt;
&lt;h2 id=&quot;5-apps-tested-ranked&quot;&gt;5 Apps Tested: Ranked&lt;/h2&gt;
&lt;h3 id=&quot;1-google-keep&quot;&gt;1. Google Keep&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; Free, no premium tier
&lt;strong&gt;Platforms:&lt;/strong&gt; iOS, Android, web, Chrome extension&lt;/p&gt;
&lt;p&gt;Google Keep isn&#39;t built as a grocery app. It&#39;s a notes app with checkboxes. But it works as a shopping list because of two things: it&#39;s on every platform, and sharing is one tap if both people have Google accounts.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What works:&lt;/strong&gt; Create a checklist, share it with your partner&#39;s Gmail, both of you see changes. The web app means you can add items from your laptop. Google Assistant integration lets you add items by voice (&amp;quot;Hey Google, add bananas to my shopping list&amp;quot;).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What doesn&#39;t:&lt;/strong&gt; Sync speed is inconsistent. I measured delays between 1 and 15 seconds across 30 test syncs with no clear pattern. There&#39;s no aisle categorization, no auto-suggestions, no grocery-specific features. Checked items stay visible (you can hide them, but it&#39;s manual). If your partner doesn&#39;t use Google accounts, sharing requires workarounds.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; People already in Google&#39;s ecosystem who want a grocery list without installing anything new.&lt;/p&gt;
&lt;h3 id=&quot;2-ourgroceries&quot;&gt;2. OurGroceries&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; Free with ads; one-time premium purchase removes ads
&lt;strong&gt;Platforms:&lt;/strong&gt; iOS, Android, web, Apple Watch, Wear OS, Alexa, Google Assistant&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ourgroceries.com/&quot;&gt;OurGroceries&lt;/a&gt; is the most widely compatible option I tested. It runs on everything, including smart speakers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What works:&lt;/strong&gt; &amp;quot;Alexa, add eggs to my grocery list&amp;quot; works out of the box. Sharing by email is simple. The app auto-categorizes items (produce, dairy, etc.). Sync clocked under 2 seconds in all 30 of my test rounds. A &lt;a href=&quot;https://www.edisonresearch.com/the-infinite-dial-2023/&quot;&gt;2023 NPR/Edison study&lt;/a&gt; found 35% of US adults use a smart speaker daily. OurGroceries is one of the few free apps that taps into that behavior.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What doesn&#39;t:&lt;/strong&gt; Ads in the free version are banner-style, not aggressive, but present. The interface looks like it hasn&#39;t been updated since 2018. Recipe features are basic (no URL import, no scaling). No API or automation options.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Families with mixed devices and smart speakers who want the simplest shared list that works everywhere.&lt;/p&gt;
&lt;h3 id=&quot;3-lystbot&quot;&gt;3. LystBot&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; Free, no premium tier, no ads
&lt;strong&gt;Platforms:&lt;/strong&gt; iOS, Android, CLI, REST API, MCP server&lt;/p&gt;
&lt;p&gt;Full disclosure: &lt;a href=&quot;https://lystbot.com&quot;&gt;LystBot&lt;/a&gt; is our product. I&#39;ll cover it with the same honesty as the others.&lt;/p&gt;
&lt;p&gt;LystBot doesn&#39;t gate features behind a paywall because there is no paywall. No ads either. Every feature, including sharing, push notifications, and the full API, is available to every user.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot free grocery list app showing shared lists&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot grocery list detail view with items&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;What works:&lt;/strong&gt; Sharing uses a 6-character code (no email required, no account creation for the other person). Sync clocked under 2 seconds on both Wi-Fi and LTE in my testing. Push notifications fire when anyone changes the list. The app supports list types for shopping, todos, packing, and generic lists.&lt;/p&gt;
&lt;p&gt;For power users, LystBot also has a &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;REST API&lt;/a&gt;, a &lt;a href=&quot;https://lystbot.com/blog/manage-shopping-list-terminal/&quot;&gt;command-line interface&lt;/a&gt;, and an &lt;a href=&quot;https://lystbot.com/blog/claude-mcp-grocery-list/&quot;&gt;MCP server&lt;/a&gt; that connects to AI assistants like Claude. You can automate weekly staple lists with a cron job, manage lists from your terminal, or tell Claude &amp;quot;add the ingredients for chicken stir fry to my grocery list&amp;quot; and have items appear on your phone. We covered &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/&quot;&gt;four real automation setups&lt;/a&gt; in a separate post.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-share-code.webp&quot; alt=&quot;LystBot share code for joining a shared grocery list&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;Push notification when items added to shared grocery list&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;What doesn&#39;t:&lt;/strong&gt; No recipe management. No voice assistant integration yet. Newer app, so fewer polish details than OurGroceries or AnyList. No aisle-level organization (auto-categorizes by list type, not store layout).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Anyone who wants a genuinely free app with no limits, and power users who want API access, terminal tools, or AI integration.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot free on the App Store and Google Play&lt;/a&gt;. Every feature is available from day one.&lt;/p&gt;
&lt;h3 id=&quot;4-apple-reminders&quot;&gt;4. Apple Reminders&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; Free (built into iOS/macOS)
&lt;strong&gt;Platforms:&lt;/strong&gt; iOS, iPadOS, macOS, Apple Watch, web (iCloud)&lt;/p&gt;
&lt;p&gt;Apple Reminders got a grocery-specific update in iOS 17 that auto-categorizes items into sections like produce, meat, and bakery. If your household is all-Apple, this is a strong option with zero setup.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What works:&lt;/strong&gt; Deep Siri integration. Shared lists via iCloud. Auto-categorization by grocery section is accurate for common items. The app is pre-installed, so there&#39;s nothing to download.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What doesn&#39;t:&lt;/strong&gt; Android users can&#39;t participate. That&#39;s a dealbreaker for mixed-platform households. A &lt;a href=&quot;https://gs.statcounter.com/os-market-share/mobile/worldwide&quot;&gt;Statcounter 2025 report&lt;/a&gt; puts global mobile share at roughly 72% Android, 27% iOS. Even in the US, mixed households are common. No API, no web access without iCloud, no voice support beyond Siri.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; All-Apple families who want a grocery list with zero third-party dependencies.&lt;/p&gt;
&lt;h3 id=&quot;5-listonic&quot;&gt;5. Listonic&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; Free with ads and premium upsells
&lt;strong&gt;Platforms:&lt;/strong&gt; iOS, Android, web&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://listonic.com/&quot;&gt;Listonic&lt;/a&gt; markets itself as a free shopping list with smart suggestions. Type &amp;quot;ch&amp;quot; and it suggests &amp;quot;chicken,&amp;quot; &amp;quot;cheese,&amp;quot; &amp;quot;chia seeds.&amp;quot; The auto-categorization works well for common items.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What works:&lt;/strong&gt; The suggestions speed up list building. The interface is modern and clean. Sharing works by link or email.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What doesn&#39;t:&lt;/strong&gt; The premium upsells are aggressive. Recipe features, advanced sharing, and some organization options require a subscription. Free users see banner ads and occasional pop-ups. In my testing, the app prompted me to upgrade three times in the first session. That&#39;s more than any other app on this list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Solo shoppers who want smart suggestions and don&#39;t mind upgrade prompts.&lt;/p&gt;
&lt;h2 id=&quot;best-free-grocery-list-app-feature-comparison&quot;&gt;Best Free Grocery List App: Feature Comparison&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Sharing:&lt;/strong&gt; LystBot (share code, no account needed) &amp;gt; OurGroceries (email invite) &amp;gt; Google Keep (Google account required) &amp;gt; Apple Reminders (iCloud only) &amp;gt; Listonic (link/email)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sync speed:&lt;/strong&gt; LystBot, OurGroceries, Apple Reminders all under 2 seconds in my tests (30 syncs each, iPhone 15 + Pixel 8, Wi-Fi and LTE). Google Keep ranged from 1 to 15 seconds. Listonic averaged 3 seconds.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cross-platform:&lt;/strong&gt; OurGroceries (most platforms including smart speakers) &amp;gt; Google Keep (iOS, Android, web) &amp;gt; LystBot (iOS, Android, CLI, API) &amp;gt; Listonic (iOS, Android, web) &amp;gt; Apple Reminders (Apple only)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voice assistants:&lt;/strong&gt; OurGroceries (Alexa + Google) &amp;gt; Apple Reminders (Siri) &amp;gt; Google Keep (Google Assistant) &amp;gt; LystBot (none yet) &amp;gt; Listonic (none)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Automation/API:&lt;/strong&gt; LystBot (REST API, CLI, MCP server) &amp;gt; everyone else (none)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Truly free (no paywall):&lt;/strong&gt; LystBot = Google Keep = Apple Reminders &amp;gt; OurGroceries (ads, optional premium) &amp;gt; Listonic (ads, aggressive premium)&lt;/p&gt;
&lt;h2 id=&quot;best-free-grocery-list-app-which-one-to-pick&quot;&gt;Best Free Grocery List App: Which One to Pick&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pick Google Keep if&lt;/strong&gt; you&#39;re deep in Google&#39;s tools and want a free option without installing anything new. Not purpose-built for groceries, but it works.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick OurGroceries if&lt;/strong&gt; voice assistants matter to your household and you want the broadest platform support. The free version is usable despite the ads.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick LystBot if&lt;/strong&gt; you want a free app with no restrictions, the fastest sharing setup, and the option to automate or connect to AI tools. No other free option offers API access or MCP integration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick Apple Reminders if&lt;/strong&gt; everyone in your house uses Apple devices. Zero setup, good grocery categorization, no cost.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Skip Listonic unless&lt;/strong&gt; you&#39;re a solo shopper who values smart suggestions and tolerates upsells.&lt;/p&gt;
&lt;p&gt;The best free grocery list app is the one your household uses every week without hitting a paywall that forces a switch. For most people, that&#39;s OurGroceries or Google Keep. For power users who want more, LystBot fills a gap no other free option touches.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot free on the App Store and Google Play&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Family Grocery List App: 3 That Actually Work</title>
    <link href="https://lystbot.com/blog/family-grocery-list-app/" />
    <updated>2026-03-28T14:00:00Z</updated>
    <id>https://lystbot.com/blog/family-grocery-list-app/</id>
    <content type="html">&lt;!-- Meta Description: Best family grocery list app for 2026. Real-time sharing, no sign-up friction. Download LystBot free on the App Store and Google Play. --&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/hero-family-grocery-list-app.webp&quot; alt=&quot;Family grocery list app showing shared shopping list on two phones&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;Last Tuesday my partner texted me &amp;quot;get stuff for tacos&amp;quot; while I was already at the store. No list. No specifics. I came home with ground beef, hard shells, and shredded cheese. She wanted fish tacos with soft tortillas and cabbage slaw. We ate ground beef hard-shell tacos and nobody was happy.&lt;/p&gt;
&lt;p&gt;A family grocery list app would have prevented that. Not a texting thread, not a shared note, not a &amp;quot;just remember what we need&amp;quot; system. An actual app where everyone in the household sees the same list, edits happen in real time, and you get a notification when someone adds something.&lt;/p&gt;
&lt;p&gt;I&#39;ve tested over a dozen options. Three stand out for families in 2026.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; The best family grocery list app depends on how your household works. AnyList is best for families who meal plan from recipes. OurGroceries wins on simplicity and voice assistants. LystBot is the pick if you want zero-friction sharing, automation, or AI integration. All three are free to start. Detailed breakdown below.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;family-grocery-list-app-what-families-actually-need&quot;&gt;Family Grocery List App: What Families Actually Need&lt;/h2&gt;
&lt;p&gt;Most grocery list app reviews test features in isolation. That misses the point. A family shopping list app has to survive real family dynamics: different phones, different comfort levels with technology, different schedules, and the universal reality that nobody wants to create another account for another app.&lt;/p&gt;
&lt;p&gt;Here&#39;s what I&#39;ve learned matters most after three months of testing with a household of two adults and a teenager.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Zero-friction sharing.&lt;/strong&gt; If the app requires both people to create accounts, verify emails, and exchange invite links, someone in your family won&#39;t do it. The easier the sharing, the more likely everyone participates. Share codes beat email invites. Email invites beat &amp;quot;search for the person&#39;s username.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cross-platform sync.&lt;/strong&gt; A grocery list app for family use needs to handle mixed phones. One person on iPhone, another on Android, maybe a teen on an older device. Apple Reminders fails here immediately. Google Keep works across platforms but isn&#39;t built for grocery lists (no check-off behavior, inconsistent sync speeds).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real-time updates with notifications.&lt;/strong&gt; Your partner adds avocados while you&#39;re already shopping. You need to see that item appear on your phone within seconds, not minutes. And you need a push notification so you don&#39;t have to keep refreshing. I tested sync latency across six apps. AnyList, OurGroceries, and LystBot all sync under 2 seconds. Google Keep ranged from instant to 15 seconds with no pattern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Checked items that disappear (or don&#39;t).&lt;/strong&gt; Families fight about this. Some people want checked items to vanish. Others want to see what was already bought. The right app for your family grocery list lets you choose.&lt;/p&gt;
&lt;h2 id=&quot;3-family-shopping-list-apps-compared&quot;&gt;3 Family Shopping List Apps Compared&lt;/h2&gt;
&lt;h3 id=&quot;anylist-best-for-meal-planning-families&quot;&gt;AnyList: best for meal-planning families&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.anylist.com/&quot;&gt;AnyList&lt;/a&gt; has been the go-to family shopping list app since 2012. It earns that reputation with one killer feature: recipe-to-list conversion.&lt;/p&gt;
&lt;p&gt;Import a recipe from any URL. The app parses ingredients. Tap a button. Those ingredients land on your shared list. Scale the recipe from 4 to 8 servings and the quantities adjust on the list. If your family plans meals on Sunday and shops on Monday, this workflow saves 10-15 minutes per week.&lt;/p&gt;
&lt;p&gt;Sharing works by email invite. Both people need AnyList accounts. The free version covers list creation and sharing. AnyList Complete ($9.99/year or $14.99/year for households) unlocks the web app, meal calendar, recipe scaling, and photo attachments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strengths for families:&lt;/strong&gt; Automatic aisle categorization means your list is sorted the way the store is organized. Produce with produce, dairy with dairy. You can customize categories per store if you shop at Costco on weekends and a regular grocery store during the week.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where it falls short for families:&lt;/strong&gt; The web app is behind the paywall, so your teenager who doesn&#39;t want &amp;quot;another app&amp;quot; on their phone can&#39;t check the list from a browser for free. No Alexa or Google Assistant support, so voice-adding items requires Siri (iOS only). No API, so you can&#39;t automate weekly staples or connect it to anything outside the app.&lt;/p&gt;
&lt;h3 id=&quot;ourgroceries-best-for-mixed-tech-families&quot;&gt;OurGroceries: best for mixed-tech families&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ourgroceries.com/&quot;&gt;OurGroceries&lt;/a&gt; runs on everything. iOS, Android, web, Apple Watch, Wear OS, Alexa, Google Assistant. If your family includes an iPhone parent, an Android teen, and a grandparent who talks to Alexa, OurGroceries is the only app where everyone can participate.&lt;/p&gt;
&lt;p&gt;&amp;quot;Alexa, add eggs to my grocery list&amp;quot; works out of the box. That matters for families where typing isn&#39;t everyone&#39;s preferred input method. A &lt;a href=&quot;https://www.edisonresearch.com/the-infinite-dial-2023/&quot;&gt;2023 NPR/Edison Research study&lt;/a&gt; found that 35% of US adults use a smart speaker daily. In family households, that number is higher.&lt;/p&gt;
&lt;p&gt;Sharing is straightforward: email invite, both people see the same lists. The free version has ads. A one-time purchase removes them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strengths for families:&lt;/strong&gt; Lowest learning curve of any app I tested. My mother-in-law set it up without asking for help. That&#39;s the real test of a family shopping list app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where it falls short for families:&lt;/strong&gt; Recipe support is basic (no URL import, no scaling). The interface looks like 2018. No API or developer tools. If one parent is technical and wants automation, OurGroceries won&#39;t satisfy that need.&lt;/p&gt;
&lt;h3 id=&quot;lystbot-best-for-families-who-want-more-control&quot;&gt;LystBot: best for families who want more control&lt;/h3&gt;
&lt;p&gt;Full disclosure: &lt;a href=&quot;https://lystbot.com&quot;&gt;LystBot&lt;/a&gt; is our product. I&#39;ll cover strengths and weaknesses with the same honesty.&lt;/p&gt;
&lt;p&gt;LystBot approaches the family grocery list problem differently. The mobile app handles the basics well: create a list, share it, items sync in real time, push notifications tell everyone when something changes.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot family grocery list overview showing multiple shared lists&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot shared family shopping list with grocery items&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Where LystBot stands apart is the sharing flow and what sits behind the app. Sharing uses a 6-character code. No email required. No account creation for the other person. Send the code to your partner, your roommate, your teenager. They enter it and they&#39;re on the list. I timed this: under 30 seconds from &amp;quot;I want to share&amp;quot; to &amp;quot;both people see the same list.&amp;quot; AnyList took over 2 minutes because of the email verification loop.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-share-code.webp&quot; alt=&quot;LystBot share code for joining a family grocery list&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;Push notification when family member adds items to shared grocery list&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;For the technical parent in the house, LystBot also has a &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;REST API&lt;/a&gt;, a &lt;a href=&quot;https://lystbot.com/blog/manage-shopping-list-terminal/&quot;&gt;CLI&lt;/a&gt;, and an &lt;a href=&quot;https://lystbot.com/blog/claude-mcp-grocery-list/&quot;&gt;MCP server&lt;/a&gt; for AI assistants. Set up a cron job that adds weekly staples every Sunday. Connect it to Claude and say &amp;quot;add the ingredients for chicken stir fry to our family grocery list.&amp;quot; We covered &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/&quot;&gt;real automation setups&lt;/a&gt; in a separate post.&lt;/p&gt;
&lt;p&gt;Free. No premium tier, no paywalls, no &amp;quot;3 shared lists then pay&amp;quot; limits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Where it falls short for families:&lt;/strong&gt; No recipe management. No voice assistant integration yet. LystBot is newer than the other two, so expect fewer polish details in edge cases.&lt;/p&gt;
&lt;p&gt;Download LystBot free on the &lt;a href=&quot;https://apps.apple.com/us/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt;. Share your first family list in under a minute.&lt;/p&gt;
&lt;h2 id=&quot;family-grocery-list-app-common-mistakes-to-avoid&quot;&gt;Family Grocery List App: Common Mistakes to Avoid&lt;/h2&gt;
&lt;p&gt;After helping several friends set up shared lists for their households, the same patterns come up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Texting instead of listing.&lt;/strong&gt; Group chats for groceries seem convenient until you scroll past 40 messages looking for who said &amp;quot;we need paper towels.&amp;quot; A proper app for family grocery lists separates the list from the conversation. Items get checked off. Checked items don&#39;t get buried under memes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Choosing an app only one platform supports.&lt;/strong&gt; Apple Reminders is excellent if every family member owns Apple devices. The moment one person has Android, the entire system breaks. A &lt;a href=&quot;https://gs.statcounter.com/os-market-share/mobile/worldwide&quot;&gt;Statcounter report from 2025&lt;/a&gt; puts global mobile OS share at roughly 72% Android, 27% iOS. In most families, someone has the other phone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Skipping notifications.&lt;/strong&gt; A family shopping list app without notifications is a list nobody checks at the right time. Make sure every family member enables push notifications after joining. This is the single biggest factor in whether shared lists work or die within a week.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Creating too many lists.&lt;/strong&gt; Start with one shared grocery list. Use it for two weeks. Add a second list (household supplies, for example) only when the first one is a habit. Families that start with six lists use zero lists within a month.&lt;/p&gt;
&lt;h2 id=&quot;family-grocery-list-app-which-one-fits-your-family&quot;&gt;Family Grocery List App: Which One Fits Your Family?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Pick AnyList if&lt;/strong&gt; your family revolves around cooking. Weekly meal plans, recipe collections, scaled servings for a family of five. The $9.99/year is worth it for the recipe workflow alone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick OurGroceries if&lt;/strong&gt; your family spans multiple platforms and comfort levels. Alexa support, minimal learning curve, works on everything. The app your parents can use without calling you for help.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick LystBot if&lt;/strong&gt; you want the fastest sharing setup (share codes, no email verification), a completely free app with no limits, and the option to automate or connect to AI tools. Good for families where at least one person is technical and wants their grocery system to do more than hold a list.&lt;/p&gt;
&lt;p&gt;No single family grocery list app fits every household. The best one is whichever app your whole family will actually use, not the one with the most features that only one person touches.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot free on the App Store and Google Play&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Best Grocery List Apps 2026: AnyList vs OurGroceries vs LystBot</title>
    <link href="https://lystbot.com/blog/best-grocery-list-apps/" />
    <updated>2026-03-26T15:00:00Z</updated>
    <id>https://lystbot.com/blog/best-grocery-list-apps/</id>
    <content type="html">&lt;img src=&quot;https://lystbot.com/blog/img/hero-best-grocery-list-apps.webp&quot; alt=&quot;Three grocery list apps compared side by side: AnyList, OurGroceries, and LystBot&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;I&#39;ve used grocery list apps for over a decade. Started with plain notes, moved to shared apps when my partner got tired of me buying the wrong yogurt, and eventually ended up testing every list app I could find. Three apps stood out in 2026, each for completely different reasons: &lt;a href=&quot;https://www.anylist.com/&quot;&gt;AnyList&lt;/a&gt;, &lt;a href=&quot;https://www.ourgroceries.com/&quot;&gt;OurGroceries&lt;/a&gt;, and &lt;a href=&quot;https://lystbot.com&quot;&gt;LystBot&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is an honest comparison. I&#39;ll tell you where each app wins, where it falls short, and who should pick which. No single app is best for everyone. That&#39;s the whole point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Quick version:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AnyList&lt;/strong&gt; is the best grocery list app if you care about recipes and meal planning&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OurGroceries&lt;/strong&gt; wins on simplicity and cross-platform support&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LystBot&lt;/strong&gt; is the pick for developers, power users, and anyone who wants API access or AI integration&lt;/li&gt;
&lt;li&gt;All three are free to start&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;anylist-the-recipe-first-grocery-app&quot;&gt;AnyList: the recipe-first grocery app&lt;/h2&gt;
&lt;p&gt;AnyList has been around since 2012 and it shows, in a good way. The app is polished, the recipe management is genuinely useful, and the sharing works without friction.&lt;/p&gt;
&lt;p&gt;The free version covers list creation and sharing. AnyList Complete costs $9.99/year for individuals or $14.99/year for households, which unlocks meal planning, a web app, recipe scaling, and photo attachments. That&#39;s cheap for what you get.&lt;/p&gt;
&lt;h3 id=&quot;what-anylist-does-well&quot;&gt;What AnyList does well&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Recipes to grocery list.&lt;/strong&gt; This is AnyList&#39;s killer feature. Import a recipe from any URL, and the app parses ingredients automatically. Tap a button, those ingredients land on your shopping list. Scale a recipe from 4 to 8 servings and the quantities update on the list. If you meal plan for a family, this workflow saves real time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Organization.&lt;/strong&gt; Items get categorized by store aisle automatically. Produce goes with produce, dairy with dairy. You can customize categories per store if you shop at multiple places.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Established and reliable.&lt;/strong&gt; Twelve years of development means edge cases are handled. Sync is fast. The app doesn&#39;t crash. Sounds basic, but consistency matters for something you use daily.&lt;/p&gt;
&lt;h3 id=&quot;where-anylist-falls-short&quot;&gt;Where AnyList falls short&lt;/h3&gt;
&lt;p&gt;No API. No CLI. No way to automate anything. If you want to add items from a script, a terminal, or an AI assistant, you can&#39;t. The app is a closed box. You use it through the app or not at all.&lt;/p&gt;
&lt;p&gt;The web app is behind the paywall. Free users are locked to mobile only.&lt;/p&gt;
&lt;p&gt;And there&#39;s no integration with AI tools. In 2026, when half my workflow runs through Claude or similar assistants, having zero AI connectivity feels like a gap.&lt;/p&gt;
&lt;h3 id=&quot;anylist-is-for-you-if&quot;&gt;AnyList is for you if...&lt;/h3&gt;
&lt;p&gt;You cook regularly, plan meals for a household, and want your recipes and grocery lists in one place. You don&#39;t care about APIs or automation. You want something that just works.&lt;/p&gt;
&lt;h2 id=&quot;ourgroceries-the-simple-shared-list&quot;&gt;OurGroceries: the simple shared list&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.ourgroceries.com/&quot;&gt;OurGroceries&lt;/a&gt; takes the opposite approach from AnyList. Less features, less complexity. It does shared grocery lists and does them reliably.&lt;/p&gt;
&lt;p&gt;The app is free with ads. A one-time premium purchase removes ads and adds a few extras. It runs on iOS, Android, web, Apple Watch, Wear OS, and it has Alexa and Google Assistant integration built in.&lt;/p&gt;
&lt;h3 id=&quot;what-ourgroceries-does-well&quot;&gt;What OurGroceries does well&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cross-platform everything.&lt;/strong&gt; This is where OurGroceries stands out. iPhone user sharing with an Android user who checks the list on their Wear OS watch while asking Alexa to add butter? Works. Most list apps stumble on at least one of those platforms.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Voice assistant integration.&lt;/strong&gt; &amp;quot;Alexa, add eggs to my grocery list&amp;quot; actually works with OurGroceries out of the box. For households where not everyone wants to type, this matters.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Low learning curve.&lt;/strong&gt; Open the app, make a list, share it. No account setup hassle, no feature overload. My parents use OurGroceries. That says everything about how approachable it is.&lt;/p&gt;
&lt;h3 id=&quot;where-ourgroceries-falls-short&quot;&gt;Where OurGroceries falls short&lt;/h3&gt;
&lt;p&gt;The recipe features are basic compared to AnyList. You can store recipes and push ingredients to a list, but there&#39;s no URL import, no scaling, no meal calendar.&lt;/p&gt;
&lt;p&gt;No API, no developer tools. Same closed-box limitation as AnyList.&lt;/p&gt;
&lt;p&gt;The design hasn&#39;t changed much in years. It works, but it looks like an app from 2018. That bothers some people more than others.&lt;/p&gt;
&lt;h3 id=&quot;ourgroceries-is-for-you-if&quot;&gt;OurGroceries is for you if...&lt;/h3&gt;
&lt;p&gt;You want a shared grocery list that works everywhere, with minimal setup, and voice assistant support matters. You don&#39;t need recipe management or developer features.&lt;/p&gt;
&lt;h2 id=&quot;lystbot-the-grocery-list-app-with-an-api&quot;&gt;LystBot: the grocery list app with an API&lt;/h2&gt;
&lt;p&gt;Full disclosure: &lt;a href=&quot;https://lystbot.com&quot;&gt;LystBot&lt;/a&gt; is our product. I&#39;ll be straightforward about what it does well and where it&#39;s still catching up.&lt;/p&gt;
&lt;p&gt;LystBot is an AI-first list app. It has a mobile app (iOS and Android), but the real difference is what sits behind it: a &lt;a href=&quot;https://lystbot.com/blog/list-app-with-api/&quot;&gt;REST API&lt;/a&gt;, a &lt;a href=&quot;https://lystbot.com/blog/manage-shopping-list-terminal/&quot;&gt;command-line interface&lt;/a&gt;, and an &lt;a href=&quot;https://lystbot.com/blog/claude-mcp-grocery-list/&quot;&gt;MCP server&lt;/a&gt; that connects to AI assistants like OpenClaw, Claude and many more.&lt;/p&gt;
&lt;p&gt;Free. No premium tier, no paywalls.&lt;/p&gt;
&lt;h3 id=&quot;what-lystbot-does-well&quot;&gt;What LystBot does well&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;API access.&lt;/strong&gt; LystBot is the only grocery list app with a &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;public REST API&lt;/a&gt;. That means you can build automations: a cron job that adds weekly staples, a Slack bot that lets your team manage a shared office snack list, a Home Assistant trigger that adds items when your fridge sensor detects you&#39;re low on milk. We covered &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/&quot;&gt;four real automations&lt;/a&gt; in a separate post.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Terminal workflow.&lt;/strong&gt; Install the CLI with &lt;code&gt;npm install -g lystbot&lt;/code&gt;, and you can add, check, and manage items without leaving your terminal. I timed it once: adding three items via CLI takes under 4 seconds. The same thing on a phone app takes 30+ seconds with all the tapping and waiting.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI integration.&lt;/strong&gt; Connect the MCP server to Claude Desktop, and you can manage lists in natural language. &amp;quot;Add the ingredients for pad thai to my grocery list&amp;quot; just works. Your &lt;a href=&quot;https://lystbot.com/blog/ai-agent-manage-lists/&quot;&gt;AI assistant becomes your grocery manager&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scriptable and pipe-friendly.&lt;/strong&gt; Export lists to files, grep through items, pipe output into other tools. Your grocery data is yours. Most list apps treat your data like a walled garden.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ready to try it?&lt;/strong&gt; &lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot&lt;/a&gt; free and see what a grocery list app can really do. The &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;API docs&lt;/a&gt; take about 2 minutes to set up.&lt;/p&gt;
&lt;h3 id=&quot;where-lystbot-falls-short&quot;&gt;Where LystBot falls short&lt;/h3&gt;
&lt;p&gt;No recipe management. If you want to import recipes from URLs, scale servings, or plan meals on a calendar, AnyList is the better choice right now.&lt;/p&gt;
&lt;p&gt;No voice assistant integration (yet). You can&#39;t ask Alexa to add items to your LystBot list the way you can with OurGroceries.&lt;/p&gt;
&lt;p&gt;LystBot is newer. AnyList has twelve years of polish. OurGroceries has a massive user base. LystBot launched recently and is still building out features. Early adopters will see rough edges that the established apps smoothed out years ago.&lt;/p&gt;
&lt;h3 id=&quot;lystbot-is-for-you-if&quot;&gt;LystBot is for you if...&lt;/h3&gt;
&lt;p&gt;You&#39;re a developer, a power user, or someone who wants their grocery list to be part of a larger automated workflow. You value API access, terminal tools, and AI integration over recipe management. You like being early to tools that do things differently.&lt;/p&gt;
&lt;h2 id=&quot;side-by-side-comparison&quot;&gt;Side-by-side comparison&lt;/h2&gt;
&lt;p&gt;Here&#39;s how the three apps stack up across the features that matter most.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Sharing and sync:&lt;/strong&gt; All three handle real-time sharing well. AnyList and OurGroceries have been doing it longer. LystBot syncs across app, CLI, and API simultaneously.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recipe management:&lt;/strong&gt; AnyList wins by a wide margin. URL import, scaling, meal calendar. OurGroceries has basic recipes. LystBot has none.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Platform support:&lt;/strong&gt; OurGroceries runs on the most platforms, including smartwatches and voice assistants. AnyList covers iOS, Android, and web (paid). LystBot covers iOS, Android, CLI, API, and MCP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;API and automation:&lt;/strong&gt; LystBot is alone here. Neither AnyList nor OurGroceries offers any kind of API, CLI, or programmatic access. If automation matters to you, LystBot is the only option.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI integration:&lt;/strong&gt; LystBot&#39;s MCP server connects to Claude and other AI assistants. The other two apps have no AI capabilities beyond what Siri or Alexa provide for basic voice commands.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Price:&lt;/strong&gt; OurGroceries is free with a one-time premium purchase. AnyList is free with a $9.99/year upgrade. LystBot is completely free.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Aisle organization:&lt;/strong&gt; AnyList has automatic categorization. OurGroceries has manual categories. LystBot auto-categorizes by list type.&lt;/p&gt;
&lt;h2 id=&quot;which-grocery-list-app-should-you-pick&quot;&gt;Which grocery list app should you pick?&lt;/h2&gt;
&lt;p&gt;This depends entirely on how you work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick AnyList if&lt;/strong&gt; you cook from recipes regularly and want meal planning built into your list app. The $9.99/year is worth it for the recipe import alone. Families who plan weekly meals will get the most value here.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick OurGroceries if&lt;/strong&gt; you want the simplest possible shared list that runs everywhere. If someone in your household uses Alexa or Google Assistant for adding items, OurGroceries handles that better than anyone.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pick LystBot if&lt;/strong&gt; you&#39;re a developer, a terminal user, or someone who wants their grocery list to talk to other tools. The API opens up workflows that simply aren&#39;t possible with traditional list apps. If you&#39;ve ever wished you could script your shopping list or have an AI manage it, &lt;a href=&quot;https://lystbot.com&quot;&gt;LystBot&lt;/a&gt; is built for exactly that.&lt;/p&gt;
&lt;p&gt;There&#39;s no single best grocery list app. There&#39;s the best one for how you actually shop and work. For most families, AnyList or OurGroceries covers everything they need. For developers and power users, LystBot fills a gap that nobody else even tries to address.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot&lt;/a&gt; free and see what a grocery list app can really do.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Manage Shopping Lists from the Terminal</title>
    <link href="https://lystbot.com/blog/manage-shopping-list-terminal/" />
    <updated>2026-03-26T12:00:00Z</updated>
    <id>https://lystbot.com/blog/manage-shopping-list-terminal/</id>
    <content type="html">&lt;img src=&quot;https://lystbot.com/blog/img/hero-manage-shopping-list-terminal.webp&quot; alt=&quot;Terminal showing LystBot CLI managing a shopping list&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;I catch myself doing it ten times a day. I&#39;m in the terminal, deep in a task, and I remember we&#39;re out of coffee. So I grab my phone, unlock it, find the list app, wait for it to load, type &amp;quot;coffee,&amp;quot; put the phone down, and try to remember what I was doing. Twenty seconds and one broken train of thought later, I&#39;m back. Multiply that by every item, every day. It adds up.&lt;/p&gt;
&lt;p&gt;What if you could manage your shopping list from the terminal? Same window, same keyboard, same flow. That&#39;s what LystBot CLI does. One command, item added, back to work. No app switching, no phone grabbing, no context destroyed.&lt;/p&gt;
&lt;h2 id=&quot;tl-dr&quot;&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Install: &lt;code&gt;npm install -g lystbot&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Login: &lt;code&gt;lystbot login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;See your lists: &lt;code&gt;lystbot lists&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add items: &lt;code&gt;lystbot add &amp;quot;Groceries&amp;quot; &amp;quot;Milk, Eggs, Bread&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Check items off: &lt;code&gt;lystbot check &amp;quot;Groceries&amp;quot; &amp;quot;Milk&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Everything syncs to the phone app in real time&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;why-the-terminal-beats-a-phone-app-for-some-of-us&quot;&gt;Why the terminal beats a phone app (for some of us)&lt;/h2&gt;
&lt;p&gt;I timed it once. Adding three items to a grocery list on my phone: unlock, find app, wait for sync, tap the list, tap the input field, type, tap add, repeat. 34 seconds. The same three items from the terminal:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Milk, Eggs, Bread&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Under 4 seconds including typing. That&#39;s not a marginal improvement. That&#39;s an order of magnitude.&lt;/p&gt;
&lt;p&gt;But speed is only half of it. The real win is staying where you are. Developers, sysadmins, writers who live in the terminal, anyone who works with a keyboard-first setup knows that reaching for your phone is a micro-interruption. Research from the University of California found that it takes over 23 minutes to fully regain focus after a distraction. A grocery list item shouldn&#39;t cost you that.&lt;/p&gt;
&lt;p&gt;A cli shopping list tool keeps your hands on the keyboard and your head in the game.&lt;/p&gt;
&lt;h2 id=&quot;setup-in-2-minutes&quot;&gt;Setup in 2 minutes&lt;/h2&gt;
&lt;h3 id=&quot;install&quot;&gt;Install&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-g&lt;/span&gt; lystbot&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s it. Node.js 18+ required. If you&#39;d rather not install globally, &lt;code&gt;npx lystbot&lt;/code&gt; works too.&lt;/p&gt;
&lt;h3 id=&quot;login&quot;&gt;Login&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot login&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Opens your browser, you authenticate, the CLI stores your token locally. One-time thing.&lt;/p&gt;
&lt;h3 id=&quot;verify&quot;&gt;Verify&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot lists&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You should see your existing lists. If you&#39;re new to LystBot, &lt;a href=&quot;https://lystbot.com&quot;&gt;download the app&lt;/a&gt; first and create a list there. Or create one from the terminal (we&#39;ll get to that).&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot app showing synced shopping lists&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot list detail view with grocery items&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;h2 id=&quot;the-commands-you-ll-actually-use&quot;&gt;The commands you&#39;ll actually use&lt;/h2&gt;
&lt;p&gt;Here&#39;s every command that matters, with real examples. No hypotheticals.&lt;/p&gt;
&lt;h3 id=&quot;see-all-your-lists&quot;&gt;See all your lists&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot lists&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Shows list names, item counts, and types. Quick overview without opening anything.&lt;/p&gt;
&lt;h3 id=&quot;show-a-specific-list&quot;&gt;Show a specific list&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Prints every item with its status (checked or not). Pipe it if you want:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; milk&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That&#39;s the kind of thing you can&#39;t do in a phone app. Filtering, searching, piping output into other tools. The command line grocery list becomes just another data stream you can work with.&lt;/p&gt;
&lt;h3 id=&quot;add-items&quot;&gt;Add items&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Oat milk, Bananas, Sourdough bread&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Comma-separated, all in one command. Items sync to every device on the list immediately. Your partner&#39;s phone buzzes with a push notification before you&#39;ve hit Enter on your next command.&lt;/p&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;Push notification showing items added to shared grocery list via CLI&quot; class=&quot;app-screenshot&quot; style=&quot;max-width:400px;&quot;&gt;
&lt;h3 id=&quot;check-items-off&quot;&gt;Check items off&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Oat milk&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Fuzzy matching works here. You don&#39;t need to type the exact item name. &amp;quot;oat&amp;quot; would match &amp;quot;Oat milk&amp;quot; if there&#39;s no ambiguity.&lt;/p&gt;
&lt;h3 id=&quot;remove-an-item&quot;&gt;Remove an item&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot remove &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bananas&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Gone. No confirmation dialog, no &amp;quot;are you sure?&amp;quot; popup. Terminal users know what they typed.&lt;/p&gt;
&lt;h3 id=&quot;create-a-new-list&quot;&gt;Create a new list&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot create &lt;span class=&quot;token string&quot;&gt;&quot;BBQ Saturday&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--type&lt;/span&gt; shopping&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Types are &lt;code&gt;shopping&lt;/code&gt;, &lt;code&gt;todo&lt;/code&gt;, &lt;code&gt;packing&lt;/code&gt;, and &lt;code&gt;generic&lt;/code&gt;. Pick what fits.&lt;/p&gt;
&lt;h3 id=&quot;share-a-list&quot;&gt;Share a list&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot share &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Generates a 6-character code. Send it to anyone. They join from the app with that code, no account creation hassle.&lt;/p&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/screenshot-share-code.webp&quot; alt=&quot;LystBot share code for joining a shared shopping list&quot; class=&quot;app-screenshot&quot; style=&quot;max-width:400px;&quot;&gt;
&lt;h2 id=&quot;three-workflows-that-actually-work&quot;&gt;Three workflows that actually work&lt;/h2&gt;
&lt;p&gt;Commands are nice. Workflows are where a terminal list app becomes part of how you operate.&lt;/p&gt;
&lt;h3 id=&quot;morning-routine-clear-the-decks&quot;&gt;Morning routine: clear the decks&lt;/h3&gt;
&lt;p&gt;You&#39;re having coffee, terminal open, checking things before the day starts.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Yesterday you bought milk and eggs. Check them off:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Milk&quot;&lt;/span&gt;
lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Eggs&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Glance at your todo list while you&#39;re at it:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;Today&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Two minutes, both lists reviewed and updated, without leaving your morning terminal session.&lt;/p&gt;
&lt;h3 id=&quot;cooking-mode-shop-and-check&quot;&gt;Cooking mode: shop and check&lt;/h3&gt;
&lt;p&gt;You&#39;re in the kitchen, laptop on the counter (we all do it). Recipe open in one tab, terminal in another.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Check off ingredients as you pull them from the bag:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Chicken breast&quot;&lt;/span&gt;
lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Rice&quot;&lt;/span&gt;
lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Onions&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Realize you forgot garlic:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Garlic&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Your partner is still at the store? They see &amp;quot;Garlic&amp;quot; pop up on their phone. That&#39;s real-time shared list management from the terminal.&lt;/p&gt;
&lt;h3 id=&quot;meal-prep-batch-create&quot;&gt;Meal prep: batch create&lt;/h3&gt;
&lt;p&gt;Sunday evening, planning meals for the week.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot create &lt;span class=&quot;token string&quot;&gt;&quot;Week 14 Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--type&lt;/span&gt; shopping
lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Week 14 Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Chicken thighs 1kg, Broccoli 2x, Sweet potatoes, Greek yogurt, Quinoa, Lemons, Garlic, Ginger, Soy sauce&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Two commands. Nine items. List created, populated, and already syncing to your partner&#39;s phone. The same thing in a phone app would take you through at least 12 taps and probably a typo or two.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ready to try it?&lt;/strong&gt; Install LystBot CLI and manage your shopping lists from the terminal:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-g&lt;/span&gt; lystbot&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The &lt;a href=&quot;https://lystbot.com/docs/cli&quot;&gt;CLI docs&lt;/a&gt; have the full command reference. Setup takes under two minutes.&lt;/p&gt;
&lt;h2 id=&quot;pipe-friendly-by-design&quot;&gt;Pipe-friendly by design&lt;/h2&gt;
&lt;p&gt;The CLI outputs clean text you can pipe, grep, and script with. Some examples:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Find a specific item across all lists:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot lists &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;read&lt;/span&gt; list&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;do&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;=== &lt;span class=&quot;token variable&quot;&gt;$list&lt;/span&gt; ===&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$list&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;milk&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;done&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Export a list to a file:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;lystbot show &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; groceries.txt&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Add items from a file:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;cat&lt;/span&gt; weekly-staples.txt &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;xargs&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-I&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{}&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you&#39;ve ever tried to export or script anything with a regular grocery app, you know this is unusual. Most list apps treat your data like it&#39;s theirs. LystBot treats your lists as data you own and can move however you want.&lt;/p&gt;
&lt;h2 id=&quot;cli-vs-phone-app-when-to-use-which&quot;&gt;CLI vs. phone app: when to use which&lt;/h2&gt;
&lt;p&gt;I don&#39;t think the CLI replaces the phone app. They&#39;re for different moments.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Use the CLI when:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You&#39;re already in the terminal&lt;/li&gt;
&lt;li&gt;You want to batch-add items&lt;/li&gt;
&lt;li&gt;You&#39;re scripting or automating&lt;/li&gt;
&lt;li&gt;You&#39;re at your desk and your phone is across the room&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Use the phone app when:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You&#39;re at the store checking things off physically&lt;/li&gt;
&lt;li&gt;You want to browse lists visually&lt;/li&gt;
&lt;li&gt;You&#39;re sharing a list with someone who doesn&#39;t use a terminal&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The whole point is that both interfaces hit the same backend. Add something from the CLI, it&#39;s on the phone. Check something on the phone, it&#39;s gone from CLI output. One list, multiple ways in.&lt;/p&gt;
&lt;h2 id=&quot;beyond-the-cli-api-and-mcp&quot;&gt;Beyond the CLI: API and MCP&lt;/h2&gt;
&lt;p&gt;The CLI is one of three ways to manage lists from the terminal. LystBot also has a &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/&quot;&gt;REST API&lt;/a&gt; for building automations (cron jobs, Slack bots, Home Assistant triggers) and an &lt;a href=&quot;https://lystbot.com/blog/list-app-with-api/&quot;&gt;MCP server&lt;/a&gt; that lets AI assistants like Claude manage your lists in natural language.&lt;/p&gt;
&lt;p&gt;All three talk to the same backend. Pick whichever fits the task:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CLI&lt;/strong&gt; for quick manual commands&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API&lt;/strong&gt; for programmatic automation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MCP&lt;/strong&gt; for AI-assisted list management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you&#39;re curious about what else you can build, we covered &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/&quot;&gt;4 real API automations&lt;/a&gt; and &lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/&quot;&gt;10 MCP server use cases&lt;/a&gt; in separate posts.&lt;/p&gt;
&lt;h2 id=&quot;get-started&quot;&gt;Get started&lt;/h2&gt;
&lt;p&gt;LystBot CLI is free. The app is free. No paywalls, no feature gating.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Install the CLI:&lt;/strong&gt; &lt;code&gt;npm install -g lystbot&lt;/code&gt; (&lt;a href=&quot;https://www.npmjs.com/package/lystbot&quot;&gt;npm package&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Login:&lt;/strong&gt; &lt;code&gt;lystbot login&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Add your first item:&lt;/strong&gt; &lt;code&gt;lystbot add &amp;quot;Groceries&amp;quot; &amp;quot;Coffee&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;See it appear on your phone. That moment when a terminal command updates your shared shopping list in real time, that&#39;s when it clicks.&lt;/p&gt;
&lt;p&gt;Full docs: &lt;a href=&quot;https://lystbot.com/docs/cli&quot;&gt;lystbot.com/docs/cli&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>AI Agent List Management with LystBot</title>
    <link href="https://lystbot.com/blog/ai-agent-manage-lists/" />
    <updated>2026-03-26T11:00:00Z</updated>
    <id>https://lystbot.com/blog/ai-agent-manage-lists/</id>
    <content type="html">&lt;!-- Meta Description: AI agent list management for grocery and todo lists. Setup guide with real examples. Download LystBot free on the App Store and Google Play. --&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/mcp-chat-to-list.webp&quot; alt=&quot;AI chat adding items to a list app&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;I have 11 lists running right now. AI can write your emails, summarize your meetings, and generate code. But ask it to put milk on your grocery list and you get a blank stare. That&#39;s the gap in ai agent list management today: your AI can reason about what you need, but it can&#39;t touch your lists. Most list apps don&#39;t let AI manage lists at all.&lt;/p&gt;
&lt;p&gt;An &lt;a href=&quot;https://www.apa.org/news/press/releases/stress/2023/november-2023-topline-data.pdf&quot;&gt;APA survey from 2023&lt;/a&gt; found that 36% of Americans feel overwhelmed by daily decisions. Lists are supposed to reduce that load. But managing the lists themselves becomes another task. What if your AI agent handled the busywork?&lt;/p&gt;
&lt;p&gt;LystBot is built for exactly this. It has a REST API, an MCP server, and a CLI. Your AI agent connects to it, and &amp;quot;add eggs and butter to my grocery list&amp;quot; actually works. The items show up on your phone. Your partner sees them too.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Install LystBot, copy your API key, add one config block to Claude Desktop, and restart. Your AI agent can then read, create, and update your lists for real. This post covers an ai grocery list workflow, an ai todo list workflow, a 5-step setup guide, and a recurring automation that ties it all together.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ai-grocery-list-let-claude-handle-your-shopping&quot;&gt;AI Grocery List: Let Claude Handle Your Shopping&lt;/h2&gt;
&lt;p&gt;Grocery lists are the most obvious starting point because they happen &lt;em&gt;while you&#39;re doing something else&lt;/em&gt;. You&#39;re cooking and realize you&#39;re out of cumin. You&#39;re reading a recipe and need eight ingredients. You&#39;re chatting with your AI about meal plans for the week.&lt;/p&gt;
&lt;p&gt;Here&#39;s what an ai grocery list looks like with Claude Desktop and LystBot&#39;s MCP server:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; &amp;quot;I want to make shakshuka this weekend. Add what I need to my grocery list.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude:&lt;/strong&gt; &amp;quot;I&#39;ve added these items to your Grocery list: canned tomatoes, bell pepper, onion, garlic, eggs, cumin, paprika, and feta cheese.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot list detail showing grocery items added by AI&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;Push notification when items are added to a shared list&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Your partner gets a push notification. The list is on both phones. Nobody had to open the app and type anything.&lt;/p&gt;
&lt;p&gt;The same thing works through the API. If you&#39;re building a recipe parser or a meal planning tool:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://lystbot.com/api/v1/lists/LIST_ID/items &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;items&quot;: [&quot;Canned tomatoes&quot;, &quot;Bell pepper&quot;, &quot;Onion&quot;, &quot;Garlic&quot;, &quot;Eggs&quot;, &quot;Cumin&quot;, &quot;Paprika&quot;, &quot;Feta cheese&quot;]
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;One request, all items land on the list. The API accepts arrays so you don&#39;t need to loop. We wrote a full walkthrough of the grocery use case with Claude: &lt;a href=&quot;https://lystbot.com/blog/blog/claude-mcp-grocery-list/&quot;&gt;Using Claude as your MCP-powered grocery assistant&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Download LystBot free on the &lt;a href=&quot;https://apps.apple.com/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt; and try this yourself. The MCP server setup takes about two minutes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ai-todo-list-turn-conversations-into-tasks&quot;&gt;AI Todo List: Turn Conversations into Tasks&lt;/h2&gt;
&lt;p&gt;Todo lists are trickier than groceries. Groceries are simple: items go on, items get checked off at the store. Todos have priorities, deadlines, and context. This is where letting AI manage lists earns its keep.&lt;/p&gt;
&lt;p&gt;Say you just finished a meeting. You tell Claude:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You:&lt;/strong&gt; &amp;quot;That meeting had three action items. Add &#39;send revised proposal to Sarah by Friday,&#39; &#39;research competitor pricing,&#39; and &#39;schedule follow-up for next Thursday&#39; to my work todo list.&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude:&lt;/strong&gt; &amp;quot;Done. I&#39;ve added all three to your Work Todo list.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Or through the CLI, which works well inside coding agents and terminal workflows:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npx lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Work Todo&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Send revised proposal to Sarah by Friday&quot;&lt;/span&gt;
npx lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Work Todo&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Research competitor pricing&quot;&lt;/span&gt;
npx lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Work Todo&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Schedule follow-up for next Thursday&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The items sync to the app on your phone. You can check them off from anywhere. If you share the list with a colleague using a &lt;a href=&quot;https://lystbot.com/blog/blog/list-app-with-api/&quot;&gt;share code&lt;/a&gt;, they see the same items in real time.&lt;/p&gt;
&lt;p&gt;What makes an ai todo list better than typing items yourself? Context. You can say &amp;quot;I need to prep for the board meeting next week&amp;quot; and let the AI break that into specific tasks. It remembers what you discussed earlier in the conversation. It can batch-add items instead of making you think of each one separately.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;ai-agent-list-management-setup-in-5-steps&quot;&gt;AI Agent List Management: Setup in 5 Steps&lt;/h2&gt;
&lt;p&gt;Setting up LystBot&#39;s MCP server with Claude Desktop takes about five minutes. Here&#39;s the whole process.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Download LystBot&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Get it on your phone from the &lt;a href=&quot;https://apps.apple.com/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; or &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt;. Create a list or two so you have something to work with.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Copy your API key&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Open LystBot, go to Settings. Your API key is right there.&lt;/p&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/screenshot-settings.webp&quot; alt=&quot;LystBot settings screen showing API key&quot; class=&quot;app-screenshot&quot; style=&quot;max-width:300px;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;&lt;strong&gt;Step 3: Open your Claude Desktop config&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Find &lt;code&gt;claude_desktop_config.json&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;macOS: &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Windows: &lt;code&gt;%APPDATA%&#92;Claude&#92;claude_desktop_config.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Step 4: Add the LystBot MCP server&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;mcpServers&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;lystbot&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;command&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;npx&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;args&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;-y&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lystbot-mcp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;env&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;LYSTBOT_API_KEY&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;your-api-key-here&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Replace &lt;code&gt;your-api-key-here&lt;/code&gt; with the key from step 2.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5: Restart Claude Desktop and test&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Close and reopen Claude Desktop. You should see a hammer icon in the chat input. Try:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Show me all my lists&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If Claude returns your lists, you&#39;re set.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Common issues:&lt;/strong&gt; If Claude says it can&#39;t find the tool, check the JSON for syntax errors (a missing comma breaks everything silently). If &lt;code&gt;npx&lt;/code&gt; times out, your network might block npm registries. Try &lt;code&gt;npm install -g lystbot-mcp&lt;/code&gt; and use the full path instead of &lt;code&gt;npx&lt;/code&gt;. If you get a 401 from the API, your key has a trailing space. Copy it again.&lt;/p&gt;
&lt;p&gt;Three ways to connect, one backend. The &lt;a href=&quot;https://modelcontextprotocol.io/introduction&quot;&gt;MCP protocol spec&lt;/a&gt; is open, so any AI tool that supports it can connect. That&#39;s Claude today, but Cursor, Windsurf, and others also work. The &lt;a href=&quot;https://lystbot.com/blog/docs/&quot;&gt;REST API&lt;/a&gt; handles automations. The CLI handles terminal workflows. All three sync to the same lists on your phone.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;the-sunday-review-recurring-automation&quot;&gt;The Sunday Review: Recurring Automation&lt;/h2&gt;
&lt;p&gt;I&#39;ll be honest: the first version of this automation ran on a Saturday at 3am and created 47 duplicate grocery lists before I noticed. I&#39;d messed up the cron syntax and it fired every minute instead of once a week. My wife opened the app to &amp;quot;Groceries Mar 08&amp;quot; through &amp;quot;Groceries Mar 08 (47)&amp;quot; and asked if I was okay. So: test your cron jobs.&lt;/p&gt;
&lt;p&gt;The version that actually works made me stop thinking about list management entirely.&lt;/p&gt;
&lt;p&gt;Every Sunday morning at 8am, a cron job creates a fresh grocery list for the week, pre-filled with staples:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token shebang important&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;API_KEY&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;YOUR_API_KEY&quot;&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;BASE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;https://lystbot.com/api/v1&quot;&lt;/span&gt;

&lt;span class=&quot;token assign-left variable&quot;&gt;LIST_ID&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$BASE&lt;/span&gt;/lists&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &lt;span class=&quot;token variable&quot;&gt;$API_KEY&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{
    &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;title&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;: &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;Groceries &lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;date&lt;/span&gt; +&lt;span class=&quot;token string&quot;&gt;&#39;%b %d&#39;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;,
    &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;emoji&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;: &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;🛒&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;,
    &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;type&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;: &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;shopping&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;
  }&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; jq &lt;span class=&quot;token parameter variable&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;.id&#39;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$BASE&lt;/span&gt;/lists/&lt;span class=&quot;token variable&quot;&gt;$LIST_ID&lt;/span&gt;/items&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &lt;span class=&quot;token variable&quot;&gt;$API_KEY&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;items&quot;: [&quot;Milk&quot;, &quot;Eggs&quot;, &quot;Bread&quot;, &quot;Bananas&quot;, &quot;Chicken breast&quot;, &quot;Rice&quot;, &quot;Onions&quot;, &quot;Olive oil&quot;]
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Set up with &lt;code&gt;crontab -e&lt;/code&gt; and add &lt;code&gt;0 8 * * 0 /path/to/sunday-groceries.sh&lt;/code&gt;. You wake up, your grocery list is already started.&lt;/p&gt;
&lt;p&gt;Then during the week, whenever you&#39;re chatting with Claude about meals or recipes, you say &amp;quot;add this to my grocery list&amp;quot; and the items pile up alongside the staples. By Saturday you have a complete list without ever having opened the app to type anything.&lt;/p&gt;
&lt;p&gt;I also run a similar script that creates a fresh &amp;quot;Week of [date]&amp;quot; todo list every Monday with recurring items: review budget, check analytics, back up photos. The repeating tasks that otherwise live in my head.&lt;/p&gt;
&lt;p&gt;The combination of scheduled automation (cron + API) and ad-hoc additions (AI agent + MCP) covers both the predictable and the spontaneous. That&#39;s what makes ai agent list management stick. For more automation ideas using the REST API, see our post on &lt;a href=&quot;https://lystbot.com/blog/blog/grocery-list-api-automations/&quot;&gt;grocery list API automations&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&quot;get-started&quot;&gt;Get Started&lt;/h2&gt;
&lt;p&gt;LystBot is free. The API is free. No paid tiers, no OAuth, no rate limit walls. Your AI agent can manage lists the moment you connect it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot free on the App Store and Google Play&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Set up the MCP server using the &lt;a href=&quot;https://lystbot.com/blog/docs/&quot;&gt;docs&lt;/a&gt;, tell Claude to add something to a list, and see it appear on your phone. Once the workflow clicks, you won&#39;t go back to typing items by hand.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Grocery List API: Automate Your Lists With LystBot&#39;s REST API</title>
    <link href="https://lystbot.com/blog/grocery-list-api-automations/" />
    <updated>2026-03-26T10:00:00Z</updated>
    <id>https://lystbot.com/blog/grocery-list-api-automations/</id>
    <content type="html">&lt;img src=&quot;https://lystbot.com/blog/img/lystbot-api-hero.webp&quot; alt=&quot;LystBot REST API for automating grocery and todo lists&quot; class=&quot;hero-image&quot;&gt;
&lt;p&gt;I&#39;ve tried every grocery list app on the market. Not one of them has a grocery list API. Seriously. I spent a weekend looking. AnyList, OurGroceries, Bring - all walled gardens. Your list lives inside one app, on one device, behind one interface. You can&#39;t script it, you can&#39;t hook it into your smart home, you can&#39;t build a Slack bot that adds &amp;quot;oat milk&amp;quot; when someone types &lt;code&gt;/groceries add oat milk&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;So we built LystBot as a grocery list app with full API access. A real REST API: Bearer token auth, JSON in and out, predictable endpoints. If your thing speaks HTTP, it can manage your lists.&lt;/p&gt;
&lt;p&gt;This post walks through how to automate grocery lists with working curl commands you can copy-paste, then gets to the fun part: four automations that turn a list app into something programmable.&lt;/p&gt;
&lt;h2 id=&quot;tl-dr-grocery-list-api-in-60-seconds&quot;&gt;TL;DR: Grocery list API in 60 seconds&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot&lt;/a&gt; and grab your API key from Settings&lt;/li&gt;
&lt;li&gt;Create a list: &lt;code&gt;curl -X POST https://lystbot.com/api/v1/lists -H &amp;quot;Authorization: Bearer YOUR_KEY&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; -d &#39;{&amp;quot;title&amp;quot;:&amp;quot;Groceries&amp;quot;,&amp;quot;type&amp;quot;:&amp;quot;shopping&amp;quot;}&#39;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Add items: &lt;code&gt;curl -X POST https://lystbot.com/api/v1/lists/LIST_ID/items -H &amp;quot;Authorization: Bearer YOUR_KEY&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; -d &#39;{&amp;quot;items&amp;quot;:[&amp;quot;Milk&amp;quot;,&amp;quot;Eggs&amp;quot;,&amp;quot;Bread&amp;quot;]}&#39;&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Items sync to every phone on the list instantly. Read on for the full endpoint reference and four real automation setups.&lt;/p&gt;
&lt;h2 id=&quot;why-a-programmable-list-app-beats-a-regular-list-app&quot;&gt;Why a programmable list app beats a regular list app&lt;/h2&gt;
&lt;p&gt;Think about when you actually add items to a grocery list. You&#39;re cooking and realize you&#39;re out of cumin. You&#39;re reading a recipe and need six ingredients. Your smart home detects the washing machine finished. You&#39;re in Slack and someone mentions needing printer paper for the office.&lt;/p&gt;
&lt;p&gt;None of these moments happen inside a list app. They happen everywhere else. An API lets you capture items where the thought occurs instead of forcing you to context-switch, open an app, type it in, and lose your train of thought.&lt;/p&gt;
&lt;p&gt;Three scenarios where you need a grocery list API:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A recipe parser&lt;/strong&gt; scrapes ingredients from a URL and dumps them straight into your shared grocery list. Your partner sees the items appear on their phone before you&#39;ve even closed the browser tab.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A smart home trigger&lt;/strong&gt; fires when your Philips Hue motion sensor hasn&#39;t detected movement in the pantry for a while, or when your smart plug detects the washing machine stopped. It adds &amp;quot;hang laundry&amp;quot; to your todo list automatically.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A Slack bot&lt;/strong&gt; lets your whole team manage an office supply list without anyone downloading yet another app.&lt;/p&gt;
&lt;h2 id=&quot;grocery-list-api-core-endpoints&quot;&gt;Grocery list API: core endpoints&lt;/h2&gt;
&lt;p&gt;Base URL: &lt;code&gt;https://lystbot.com/api/v1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You authenticate with a Bearer token. Grab your API key from the app settings (more on that &lt;a href=&quot;https://lystbot.com/blog/grocery-list-api-automations/#authentication&quot;&gt;below&lt;/a&gt;). Every request needs this header:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Authorization: Bearer YOUR_API_KEY
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here are the endpoints you&#39;ll use most.&lt;/p&gt;
&lt;h3 id=&quot;create-a-list&quot;&gt;Create a list&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://lystbot.com/api/v1/lists &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;title&quot;: &quot;Weekly Groceries&quot;,
    &quot;emoji&quot;: &quot;🛒&quot;,
    &quot;type&quot;: &quot;shopping&quot;
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Response:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;id&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;a1b2c3d4-e5f6-7890-abcd-ef1234567890&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Weekly Groceries&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;emoji&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;🛒&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;type&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;shopping&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;created_at&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;2026-03-26T10:00:00Z&quot;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;List types are &lt;code&gt;shopping&lt;/code&gt;, &lt;code&gt;todo&lt;/code&gt;, &lt;code&gt;packing&lt;/code&gt;, and &lt;code&gt;generic&lt;/code&gt;. Pick whichever fits.&lt;/p&gt;
&lt;h3 id=&quot;add-items&quot;&gt;Add items&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://lystbot.com/api/v1/lists/LIST_ID/items &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;items&quot;: [&quot;Oat milk&quot;, &quot;Bananas 6x&quot;, &quot;Sourdough bread&quot;]
  }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can batch items in a single request. The app&#39;s smart parser handles quantities, so &amp;quot;Bananas 6x&amp;quot; works the way you&#39;d expect.&lt;/p&gt;
&lt;h3 id=&quot;check-off-an-item&quot;&gt;Check off an item&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; PUT https://lystbot.com/api/v1/lists/LIST_ID/items/ITEM_ID &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{&quot;checked&quot;: true}&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;generate-a-share-code&quot;&gt;Generate a share code&lt;/h3&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://lystbot.com/api/v1/lists/LIST_ID/share &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Returns a 6-character code anyone can use to join the list. No account creation needed on their end.&lt;/p&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/dev-terminal-api.webp&quot; alt=&quot;Terminal showing LystBot API response with curl&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;The full endpoint reference is in the &lt;a href=&quot;https://lystbot.com/blog/docs/&quot;&gt;LystBot docs&lt;/a&gt;. There are also endpoints for updating lists, deleting items, clearing checked items, and managing your profile. But the four above cover 90% of what automations need.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Want to try it right now?&lt;/strong&gt; &lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot&lt;/a&gt;, go to Settings, copy your API key, and run the curl commands above. Takes under a minute.&lt;/p&gt;
&lt;h2 id=&quot;automate-grocery-lists-four-real-setups&quot;&gt;Automate grocery lists: four real setups&lt;/h2&gt;
&lt;p&gt;This is the part I actually care about. The API is just plumbing. What matters is what you build on top.&lt;/p&gt;
&lt;p&gt;I run all four of these myself. The cron job one was first, born out of annoyance: every Sunday I&#39;d manually type the same 8 staples into my grocery list. Week after week. Automating that took 10 minutes and saved me a small but real chunk of mental overhead. Each of these works because LystBot is a list app for developers, not a consumer app with an API bolted on as an afterthought.&lt;/p&gt;
&lt;h3 id=&quot;1-recipe-to-grocery-list-zapier-or-n8n&quot;&gt;1. Recipe to grocery list (Zapier or n8n)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The idea:&lt;/strong&gt; You star a recipe in Pocket (or Instapaper, or save a bookmark). An automation parses the ingredients and adds them to your shared grocery list.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/&quot;&gt;n8n&lt;/a&gt;, the flow looks like this:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Trigger:&lt;/strong&gt; New starred item in Pocket&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP Request:&lt;/strong&gt; Fetch the recipe page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI node:&lt;/strong&gt; Extract ingredient list from the HTML (GPT or Claude work fine here)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HTTP Request:&lt;/strong&gt; POST to &lt;code&gt;https://lystbot.com/api/v1/lists/YOUR_LIST_ID/items&lt;/code&gt; with the ingredients array&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The LystBot API accepts an array of items in one call, so you don&#39;t need to loop. One request, all ingredients land on the list. Your partner gets a push notification with the new items.&lt;/p&gt;
&lt;p&gt;If you&#39;re using Zapier instead of n8n, the same flow works with their Webhooks action for the API calls.&lt;/p&gt;
&lt;h3 id=&quot;2-weekly-grocery-list-from-a-template-cron-job&quot;&gt;2. Weekly grocery list from a template (cron job)&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The idea:&lt;/strong&gt; Every Sunday morning, a script creates a fresh grocery list pre-filled with your staples.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token shebang important&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;API_KEY&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;YOUR_API_KEY&quot;&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;BASE&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;https://lystbot.com/api/v1&quot;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Create this week&#39;s list&lt;/span&gt;
&lt;span class=&quot;token assign-left variable&quot;&gt;LIST_ID&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$BASE&lt;/span&gt;/lists&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &lt;span class=&quot;token variable&quot;&gt;$API_KEY&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;{
    &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;title&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;: &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;Groceries &lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;date&lt;/span&gt; +&lt;span class=&quot;token string&quot;&gt;&#39;%b %d&#39;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;,
    &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;emoji&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;: &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;🛒&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;,
    &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;type&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;: &lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;shopping&lt;span class=&quot;token entity&quot; title=&quot;&#92;&amp;quot;&quot;&gt;&#92;&quot;&lt;/span&gt;
  }&quot;&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; jq &lt;span class=&quot;token parameter variable&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;.id&#39;&lt;/span&gt;&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Add staples&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;$BASE&lt;/span&gt;/lists/&lt;span class=&quot;token variable&quot;&gt;$LIST_ID&lt;/span&gt;/items&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer &lt;span class=&quot;token variable&quot;&gt;$API_KEY&lt;/span&gt;&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{
    &quot;items&quot;: [
      &quot;Milk&quot;,
      &quot;Eggs&quot;,
      &quot;Bread&quot;,
      &quot;Bananas&quot;,
      &quot;Chicken breast&quot;,
      &quot;Rice&quot;,
      &quot;Onions&quot;,
      &quot;Olive oil&quot;
    ]
  }&#39;&lt;/span&gt;

&lt;span class=&quot;token builtin class-name&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Created list: &lt;span class=&quot;token variable&quot;&gt;$LIST_ID&lt;/span&gt;&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Drop this in a crontab (&lt;code&gt;0 8 * * 0&lt;/code&gt; for Sundays at 8am) and you&#39;ve got a way to automate your shopping list every week. You wake up, your grocery list is already started. Add whatever else you need during the week.&lt;/p&gt;
&lt;p&gt;You could keep the template items in a JSON file and read from that, so editing your staples doesn&#39;t mean editing the script.&lt;/p&gt;
&lt;h3 id=&quot;3-slack-bot-for-shared-lists&quot;&gt;3. Slack bot for shared lists&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The idea:&lt;/strong&gt; Type &lt;code&gt;/groceries add milk, eggs, bread&lt;/code&gt; in Slack and the items appear on your shared list.&lt;/p&gt;
&lt;p&gt;A minimal Slack slash command handler in Node.js:&lt;/p&gt;
&lt;pre class=&quot;language-javascript&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-javascript&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; express &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;express&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; app &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;express&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;API_KEY&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;LYSTBOT_API_KEY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;LIST_ID&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; process&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;env&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;LYSTBOT_LIST_ID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

app&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;use&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;express&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;urlencoded&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;extended&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

app&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;/groceries&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;req&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; res&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; text &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; req&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;body&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;text&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// &quot;add milk, eggs, bread&quot;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; items &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; text&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;replace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token regex&quot;&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-source language-regex&quot;&gt;^add&#92;s+&lt;/span&gt;&lt;span class=&quot;token regex-delimiter&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token regex-flags&quot;&gt;i&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;,&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; i&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;trim&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;https://lystbot.com/api/v1/lists/&lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;LIST_ID&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;/items&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;POST&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token string-property property&quot;&gt;&#39;Authorization&#39;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;Bearer &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;API_KEY&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token string-property property&quot;&gt;&#39;Content-Type&#39;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;application/json&#39;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token constant&quot;&gt;JSON&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stringify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; items &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  res&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;json&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;response_type&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;in_channel&#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token template-string&quot;&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;Added: &lt;/span&gt;&lt;span class=&quot;token interpolation&quot;&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;${&lt;/span&gt;items&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&#39;, &#39;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token interpolation-punctuation punctuation&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token template-punctuation string&quot;&gt;`&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

app&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;listen&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Register this as a Slack slash command, point it at your server, done. Everyone in the channel can add to the grocery list. The list syncs to the LystBot app on everyone&#39;s phone who&#39;s joined it.&lt;/p&gt;
&lt;p&gt;Works for office supplies, team lunches, event planning. Anything where a group needs a shared list but you don&#39;t want to force another app installation. This is REST API list management without anyone on the team needing to touch the actual app.&lt;/p&gt;
&lt;h3 id=&quot;4-home-assistant-automation&quot;&gt;4. Home Assistant automation&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;The idea:&lt;/strong&gt; When the washing machine finishes (detected by a smart plug&#39;s power dropping below 5W), add &amp;quot;hang laundry&amp;quot; to your todo list.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.home-assistant.io/integrations/rest_command/&quot;&gt;Home Assistant&#39;s REST command integration&lt;/a&gt; makes this simple. Here&#39;s the automation YAML:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;automation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Washing done - add to todo&quot;&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;trigger&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;platform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; numeric_state
        &lt;span class=&quot;token key atrule&quot;&gt;entity_id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; sensor.washing_machine_power
        &lt;span class=&quot;token key atrule&quot;&gt;below&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;
        &lt;span class=&quot;token key atrule&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;minutes&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token key atrule&quot;&gt;service&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; rest_command.lystbot_add_item
        &lt;span class=&quot;token key atrule&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
          &lt;span class=&quot;token key atrule&quot;&gt;items&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;[&quot;Hang laundry&quot;]&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And the REST command config:&lt;/p&gt;
&lt;pre class=&quot;language-yaml&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-yaml&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;rest_command&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;token key atrule&quot;&gt;lystbot_add_item&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;https://lystbot.com/api/v1/lists/YOUR_TODO_LIST_ID/items&quot;&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; POST
    &lt;span class=&quot;token key atrule&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;Authorization&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Bearer YOUR_API_KEY&quot;&lt;/span&gt;
      &lt;span class=&quot;token key atrule&quot;&gt;Content-Type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;application/json&quot;&lt;/span&gt;
    &lt;span class=&quot;token key atrule&quot;&gt;payload&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{&quot;items&quot;: }&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can use the same pattern for any sensor or state change. Doorbell rings while you&#39;re away? Add &amp;quot;check doorbell recording&amp;quot; to your todo. Fridge temperature sensor spikes? Add &amp;quot;check fridge&amp;quot; to the list. I&#39;ve forgotten wet laundry in the machine overnight more times than I&#39;d like to admit. This automation fixed that. The API doesn&#39;t care where the HTTP request comes from.&lt;/p&gt;
&lt;h2 id=&quot;production-tips-for-your-todo-app-rest-api-setup&quot;&gt;Production tips for your todo app REST API setup&lt;/h2&gt;
&lt;p&gt;If you&#39;re running automations that fire unattended, a few things to keep in mind.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error handling.&lt;/strong&gt; The API returns standard HTTP status codes. 200 for success, 404 if a list or item doesn&#39;t exist, 401 if your key is wrong. Wrap your curl calls in a check for non-2xx responses before moving on. In bash, &lt;code&gt;curl -f&lt;/code&gt; exits with a non-zero code on HTTP errors.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Idempotent adds.&lt;/strong&gt; The add-items endpoint appends, so calling it twice adds duplicates. If your automation might retry (n8n retries on timeout, cron jobs can overlap), either check the list contents first or deduplicate on your side. A simple approach: keep a local log of what you added and skip items that are already on the list.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Token rotation.&lt;/strong&gt; Your API key is tied to your device. If you share it with a script running on a server and later want to revoke access, generate a new key from the app. The old one stops working immediately. Don&#39;t hardcode keys in version-controlled files. Use environment variables or a secrets manager.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rate limits.&lt;/strong&gt; The API doesn&#39;t enforce strict rate limits right now, but don&#39;t hammer it. If you&#39;re adding items in a loop, batch them into one request instead of firing 50 individual POSTs. The items endpoint accepts arrays for exactly this reason.&lt;/p&gt;
&lt;h2 id=&quot;authentication&quot;&gt;Authentication&lt;/h2&gt;
&lt;p&gt;Getting your API key takes about five seconds.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open LystBot&lt;/li&gt;
&lt;li&gt;Go to Settings&lt;/li&gt;
&lt;li&gt;Your API key is right there&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-settings.webp&quot; alt=&quot;LystBot settings screen showing the API key&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Send it as a Bearer token in every request:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Authorization: Bearer YOUR_API_KEY
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;No OAuth. No token refresh. No scopes. One key, full access to your lists. If you&#39;re building something for other people, each user gets their own key from their own app.&lt;/p&gt;
&lt;p&gt;The key is a 64-character hex string tied to your device. If you ever need to rotate it, generate a new one from the app.&lt;/p&gt;
&lt;h2 id=&quot;beyond-the-api-cli-and-mcp-server&quot;&gt;Beyond the API: CLI and MCP server&lt;/h2&gt;
&lt;p&gt;The REST API is one way in. There are two more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CLI:&lt;/strong&gt; Run &lt;code&gt;npx lystbot&lt;/code&gt; and you have a terminal client. No global install, no setup beyond your API key. We wrote about this in the &lt;a href=&quot;https://lystbot.com/blog/blog/list-app-with-api/&quot;&gt;feature overview post&lt;/a&gt;.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npx lystbot lists
npx lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Groceries&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Tomatoes, Basil, Mozzarella&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pipe output to &lt;code&gt;jq&lt;/code&gt;, feed it to scripts, use it in CI/CD if that&#39;s your thing.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MCP Server:&lt;/strong&gt; If you use Claude Desktop, Cursor, or any MCP-compatible AI tool, LystBot has an &lt;a href=&quot;https://lystbot.com/blog/blog/claude-mcp-grocery-list/&quot;&gt;MCP server&lt;/a&gt; that lets your AI assistant manage your lists directly. &amp;quot;Add the ingredients for pad thai to my grocery list&amp;quot; just works. We covered &lt;a href=&quot;https://lystbot.com/blog/blog/mcp-server-use-cases/&quot;&gt;10 real MCP server use cases&lt;/a&gt; if you want ideas for what else to connect.&lt;/p&gt;
&lt;p&gt;The three interfaces (API, CLI, MCP) all talk to the same backend. Items added via curl show up in the app instantly. Items checked off in the app disappear from the CLI output. Everything syncs.&lt;/p&gt;
&lt;h2 id=&quot;go-build-something&quot;&gt;Go build something&lt;/h2&gt;
&lt;p&gt;LystBot is free. The API is free. No paid tiers to unlock endpoints, no OAuth setup to wrestle with.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot&lt;/a&gt;&lt;/strong&gt; (&lt;a href=&quot;https://apps.apple.com/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; / &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grab your API key&lt;/strong&gt; from Settings&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Run that first curl command.&lt;/strong&gt; Create a list, add an item, see it appear on your phone.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then pick one of the automations above and make it yours. The &lt;a href=&quot;https://lystbot.com/blog/docs/&quot;&gt;API docs&lt;/a&gt; have the full endpoint reference. If you build something cool, we want to hear about it.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>10 Real MCP Server Use Cases for Personal Productivity</title>
    <link href="https://lystbot.com/blog/mcp-server-use-cases/" />
    <updated>2026-03-24T00:00:00Z</updated>
    <id>https://lystbot.com/blog/mcp-server-use-cases/</id>
    <content type="html">&lt;img src=&quot;https://lystbot.com/blog/img/mcp-use-cases-hero.webp&quot; alt=&quot;10 MCP Server use cases for personal productivity - icons showing grocery lists, calendar, terminal, and more&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;p&gt;MCP (Model Context Protocol) is the USB-C of AI apps. One standard protocol, any tool. Anthropic shipped it, every AI company adopted it, and now there are hundreds of MCP servers floating around GitHub. But what are the actual mcp server use cases that matter for everyday life?&lt;/p&gt;
&lt;p&gt;Most &amp;quot;awesome MCP servers&amp;quot; lists read like a feature dump. Here&#39;s a server. Here&#39;s another server. Cool. This post is different. I spent the last few months wiring up MCP servers to my own workflows, broke things more than once, and landed on 10 setups that actually stuck. These are real mcp server productivity wins, not demos. Things that save time on a Tuesday afternoon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What&#39;s in this post:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#1-grocery-and-shopping-lists&quot;&gt;Grocery and shopping lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#2-file-system-management&quot;&gt;File system management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#3-calendar-and-scheduling&quot;&gt;Calendar and scheduling&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#4-note-taking-and-knowledge-base&quot;&gt;Note-taking and knowledge base&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#5-email-triage&quot;&gt;Email triage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#6-code-repository-management&quot;&gt;Code repository management&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#7-database-queries&quot;&gt;Database queries&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#8-home-automation&quot;&gt;Home automation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#9-travel-planning&quot;&gt;Travel planning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#10-personal-finance-tracking&quot;&gt;Personal finance tracking&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://lystbot.com/blog/mcp-server-use-cases/#mcp-server-tutorial-getting-started-in-5-steps&quot;&gt;MCP server tutorial: getting started in 5 steps&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;1-grocery-and-shopping-lists&quot;&gt;1. Grocery and shopping lists&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;LystBot MCP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You&#39;re chatting with Claude about a recipe. You realize you need ingredients. Instead of switching apps, copying items, opening your phone:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Add oat milk, tahini, and chickpeas to my grocery list&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Done. Your partner sees the updated list on their phone immediately because LystBot syncs across devices.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot lists overview showing shared grocery and shopping lists&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot list detail view with grocery items added via MCP&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;The reason this works so well: grocery lists are the kind of task you do &lt;em&gt;while&lt;/em&gt; doing something else. You&#39;re meal planning, browsing recipes, or just remembering you&#39;re out of coffee. Having your AI assistant handle the list means you stay in flow.&lt;/p&gt;
&lt;p&gt;We wrote a full walkthrough of this setup: &lt;a href=&quot;https://lystbot.com/blog/blog/claude-mcp-grocery-list/&quot;&gt;Using Claude as your MCP-powered grocery assistant&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Full disclosure: LystBot is our product. But this is genuinely the use case that made me understand why MCP matters for normal people, not just developers. It&#39;s an mcp server for personal use that doesn&#39;t require you to think about APIs. If you&#39;re curious about the technical side, we wrote about &lt;a href=&quot;https://lystbot.com/blog/blog/list-app-with-api/&quot;&gt;building a list app with an API-first approach&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;2-file-system-management&quot;&gt;2. File system management&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem&quot;&gt;filesystem&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Your Downloads folder is a disaster. You know it. I know it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Find all PDFs in my Downloads folder that are older than 30 days and move them to an Archive folder&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The filesystem MCP server lets Claude read, write, move, and search files on your machine. You can do bulk renames, organize folders by date, or find that one file you downloaded three weeks ago and forgot about.&lt;/p&gt;
&lt;p&gt;The alternative is writing a bash one-liner every time. Which, sure, works. But describing what you want in plain English is faster when the task is ad-hoc and you don&#39;t want to debug &lt;code&gt;find&lt;/code&gt; flags.&lt;/p&gt;
&lt;h2 id=&quot;3-calendar-and-scheduling&quot;&gt;3. Calendar and scheduling&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/nspady/google-calendar-mcp&quot;&gt;Google Calendar MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;What&#39;s on my calendar next week? Block 2 hours for deep work on Thursday afternoon, somewhere between existing meetings&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This goes beyond &amp;quot;read my calendar.&amp;quot; The useful part is the &lt;em&gt;reasoning&lt;/em&gt;. Claude can look at your schedule, find gaps, and create events that actually fit. Rescheduling a meeting? Tell Claude what constraints matter (must be before Friday, at least 1 hour, not during lunch) and let it figure out the slot.&lt;/p&gt;
&lt;p&gt;The catch: Google Calendar MCP servers vary in quality. Some only support read access. Check that yours handles event creation before getting excited.&lt;/p&gt;
&lt;h2 id=&quot;4-note-taking-and-knowledge-base&quot;&gt;4. Note-taking and knowledge base&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/smithery-ai/mcp-obsidian&quot;&gt;Obsidian MCP&lt;/a&gt; or &lt;a href=&quot;https://github.com/makenotion/notion-mcp-server&quot;&gt;Notion MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Summarize my meeting notes from today and create action items as a new note linked to the meeting&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you keep notes in Obsidian or Notion, an MCP server turns Claude into something like a research assistant that actually knows your notes. Ask it to find connections between topics, generate weekly summaries, or pull together everything you&#39;ve written about a specific project.&lt;/p&gt;
&lt;p&gt;Obsidian&#39;s local-first approach works well here since the MCP server reads directly from your vault without sending data to third-party services. Notion&#39;s official MCP server works too, but your notes go through their API.&lt;/p&gt;
&lt;h2 id=&quot;5-email-triage&quot;&gt;5. Email triage&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/anthropics/anthropic-quickstarts&quot;&gt;Gmail MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Show me unread emails from this week. Flag anything from clients. Draft a reply to the meeting invite from Sarah.&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Nobody likes email triage. I used to open Gmail, stare at 40 unread messages, and close the tab. Letting Claude scan, categorize, and draft replies cuts that 20-minute morning ritual down to 5 minutes of reviewing what it found.&lt;/p&gt;
&lt;p&gt;One word of caution: be careful with auto-sending. Having Claude &lt;em&gt;draft&lt;/em&gt; replies is great. Having it &lt;em&gt;send&lt;/em&gt; replies without review is how you accidentally tell your boss you&#39;d love to work weekends.&lt;/p&gt;
&lt;h2 id=&quot;6-code-repository-management&quot;&gt;6. Code repository management&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/github/github-mcp-server&quot;&gt;GitHub MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;What PRs in our repo need my review? Give me a one-paragraph summary of each&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;GitHub&#39;s official MCP server lets Claude browse repos, read PRs, check CI status, and create issues. What makes this actually useful: summarization. A 40-file PR diff takes forever to read. Getting a one-paragraph summary of what changed, with the full diff still available when you need it, saves real time during review cycles.&lt;/p&gt;
&lt;p&gt;Also useful for issue triage: &amp;quot;Show me all bugs labeled &#39;high priority&#39; that have been open for more than a week.&amp;quot;&lt;/p&gt;
&lt;h2 id=&quot;7-database-queries&quot;&gt;7. Database queries&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/modelcontextprotocol/servers/tree/main/src/sqlite&quot;&gt;SQLite MCP&lt;/a&gt; or &lt;a href=&quot;https://github.com/modelcontextprotocol/servers/tree/main/src/postgres&quot;&gt;Postgres MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;How many users signed up last month? Compare it to the month before and show the trend&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This one is mostly for developers and data people. Instead of writing SQL, describe what you want. Claude writes the query, runs it, and interprets the results.&lt;/p&gt;
&lt;p&gt;It&#39;s not going to replace your BI tool for complex dashboards. But for quick ad-hoc questions about your data, talking to Claude beats opening pgAdmin and remembering which table has the signup timestamps.&lt;/p&gt;
&lt;h2 id=&quot;8-home-automation&quot;&gt;8. Home automation&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/home-assistant/mcp-server&quot;&gt;Home Assistant MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Turn off all lights downstairs and set the thermostat to 20°C&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you already run Home Assistant, the MCP server gives Claude access to your devices. The interesting part is compound commands. &amp;quot;Set the house to movie mode&amp;quot; can mean: dim lights, close blinds, turn on the TV, set volume to 30%. You define what that means once in conversation, and Claude remembers.&lt;/p&gt;
&lt;p&gt;Fair warning: the setup requires a running Home Assistant instance. This isn&#39;t a plug-and-play use case. But if you&#39;re already in that world, adding Claude as a controller is straightforward.&lt;/p&gt;
&lt;h2 id=&quot;9-travel-planning&quot;&gt;9. Travel planning&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; Maps/Places API + &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;LystBot MCP&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Find the top-rated coffee shops within walking distance of my hotel in Lisbon and add them to my travel list&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This combines two MCP servers. One searches for places, the other saves them to a list you can check on your phone while walking around a new city. The list syncs, so you can plan on your laptop and browse on mobile.&lt;/p&gt;
&lt;p&gt;Travel planning is scattered by default. You&#39;ve got tabs open for flights, hotels, restaurants, activities. Having Claude pull it together into one shareable list cuts through the chaos.&lt;/p&gt;
&lt;h2 id=&quot;10-personal-finance-tracking&quot;&gt;10. Personal finance tracking&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;MCP server:&lt;/strong&gt; &lt;a href=&quot;https://github.com/nicholasgasior/gsheet-mcp&quot;&gt;Google Sheets MCP&lt;/a&gt; or spreadsheet MCP&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Look at my expenses spreadsheet. How much did I spend on groceries this month? How does it compare to last month?&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you track spending in a spreadsheet (and a surprising number of people do), an MCP server turns Claude into an analyst. Ask for spending breakdowns, trends, or anomalies. &amp;quot;Did any subscription charge more than usual this month?&amp;quot; is the kind of question that takes 10 minutes in Excel and 10 seconds with Claude.&lt;/p&gt;
&lt;p&gt;The limitation: this only works if your data is already structured. Claude can&#39;t read your bank feed directly. You need the spreadsheet.&lt;/p&gt;
&lt;h2 id=&quot;mcp-server-tutorial-getting-started-in-5-steps&quot;&gt;MCP server tutorial: getting started in 5 steps&lt;/h2&gt;
&lt;p&gt;Setting up your first MCP server takes about five minutes. Here&#39;s what to do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1: Install Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Download &lt;a href=&quot;https://claude.ai/download&quot;&gt;Claude Desktop&lt;/a&gt; if you haven&#39;t already. It&#39;s the most common MCP client. Other claude desktop tools like Cursor or Windsurf also support MCP, but Claude Desktop is the simplest starting point.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2: Pick one MCP server&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Don&#39;t install five at once. Pick whichever use case from this list made you think &amp;quot;yeah, I&#39;d actually use that.&amp;quot; The &lt;a href=&quot;https://github.com/punkpeye/awesome-mcp-servers&quot;&gt;awesome-mcp-servers&lt;/a&gt; repo has a full directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3: Edit your config file&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Open &lt;code&gt;claude_desktop_config.json&lt;/code&gt;. On macOS it&#39;s at &lt;code&gt;~/Library/Application Support/Claude/claude_desktop_config.json&lt;/code&gt;. On Windows: &lt;code&gt;%APPDATA%&#92;Claude&#92;claude_desktop_config.json&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Here&#39;s an example config with LystBot&#39;s MCP server:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;mcpServers&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;lystbot&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;command&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;npx&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;args&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;-y&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;lystbot-mcp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;env&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token property&quot;&gt;&quot;LYSTBOT_API_KEY&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;your-api-key-here&quot;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Each server gets its own entry. You can stack multiple servers in the same file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4: Restart Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Close and reopen Claude Desktop. You should see a hammer icon in the chat input. Click it to confirm your MCP server loaded. If it doesn&#39;t show up, check the config file for JSON syntax errors (missing commas are the usual suspect).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 5: Test it&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Try a simple prompt to verify things work:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Show me all my lists&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If you get a response with your data, you&#39;re set. If Claude says it doesn&#39;t have access to that tool, the server didn&#39;t load. Double-check the config path and restart again.&lt;/p&gt;
&lt;h3 id=&quot;common-issues&quot;&gt;Common issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Server not showing up?&lt;/strong&gt; Almost always a JSON syntax error in the config. A missing comma or trailing comma will silently break things. Validate your file at jsonlint.com before anything else.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&amp;quot;Permission denied&amp;quot; errors?&lt;/strong&gt; The MCP server needs access to whatever resource it manages. For the filesystem server, that means the right directory paths in the config. For API-based servers like &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;LystBot&lt;/a&gt;, it&#39;s the API key.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Slow first response?&lt;/strong&gt; Some servers use &lt;code&gt;npx&lt;/code&gt;, which downloads the package on first run. The second call will be faster.&lt;/p&gt;
&lt;h3 id=&quot;security-and-permissions-checklist&quot;&gt;Security and permissions checklist&lt;/h3&gt;
&lt;p&gt;Before you connect an MCP server to Claude, think about what access you&#39;re granting. A quick checklist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Does the server need write access, or just read? Start read-only if the server supports it.&lt;/li&gt;
&lt;li&gt;For filesystem servers, only expose the folders Claude actually needs. Don&#39;t point it at your home directory.&lt;/li&gt;
&lt;li&gt;If a server uses an API key (like LystBot or GitHub), generate a dedicated key for MCP. Don&#39;t reuse your main credentials.&lt;/li&gt;
&lt;li&gt;Local servers (filesystem, SQLite, Obsidian) keep data on your device. API-based servers send requests to external services. Know which is which.&lt;/li&gt;
&lt;li&gt;Stick to official or well-maintained servers. A random MCP server from GitHub has the same trust profile as any npm package you install.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;try-it-this-week&quot;&gt;Try it this week&lt;/h2&gt;
&lt;p&gt;You&#39;ve read ten mcp server use cases. At least one of them probably fits how you already work. The best mcp servers in 2026 aren&#39;t the ones with the most GitHub stars. They&#39;re the ones that remove a small friction from your day, every day.&lt;/p&gt;
&lt;p&gt;Here&#39;s what I&#39;d suggest:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;https://lystbot.com&quot;&gt;Download LystBot&lt;/a&gt;&lt;/strong&gt; on your phone (&lt;a href=&quot;https://apps.apple.com/app/lystbot/id6760318388&quot;&gt;App Store&lt;/a&gt; / &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Set up the MCP server&lt;/strong&gt; using the &lt;a href=&quot;https://lystbot.com/docs/&quot;&gt;setup docs&lt;/a&gt; (takes about 2 minutes)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ask Claude to add something to a list.&lt;/strong&gt; That&#39;s it. Once you feel the workflow click, you&#39;ll want to add more servers.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;MCP support has roughly doubled every quarter since Anthropic opened the protocol. A year ago, there were maybe 50 servers worth using. Now there are several hundred. The direction is clear, even if individual servers still vary in polish.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lystbot&quot;&gt;LystBot on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/punkpeye/awesome-mcp-servers&quot;&gt;awesome-mcp-servers&lt;/a&gt; - directory of MCP servers&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>The Only List App With a REST API, CLI, and MCP Server [Free]</title>
    <link href="https://lystbot.com/blog/list-app-with-api/" />
    <updated>2026-03-24T00:00:00Z</updated>
    <id>https://lystbot.com/blog/list-app-with-api/</id>
    <content type="html">&lt;img src=&quot;https://lystbot.com/blog/img/lystbot-api-hero.webp&quot; alt=&quot;LystBot - list app with API, CLI, and MCP server for developers&quot; class=&quot;hero-image&quot;&gt;
&lt;p&gt;Try adding &amp;quot;milk&amp;quot; to your grocery list from a script. Go ahead. I&#39;ll wait.&lt;/p&gt;
&lt;p&gt;Todoist has an API, but it&#39;s buried behind OAuth flows and rate limits that make simple automations painful. AnyList? No API. Google Keep? Google killed the unofficial API years ago and never replaced it. Apple Reminders? You need an entire Apple device and Shortcuts to get anywhere.&lt;/p&gt;
&lt;p&gt;I built &lt;a href=&quot;https://lystbot.com/blog/blog/introducing-lystbot/&quot;&gt;LystBot&lt;/a&gt; because I wanted a list app for developers. One where &lt;code&gt;curl&lt;/code&gt; is a first-class citizen, where your AI assistant can actually modify your grocery list, and where &lt;code&gt;npx&lt;/code&gt; gets you a working CLI without installing anything.&lt;/p&gt;
&lt;h2 id=&quot;rest-api&quot;&gt;REST API&lt;/h2&gt;
&lt;p&gt;You get an API key from the app settings. Five seconds, no OAuth dance.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-settings.webp&quot; alt=&quot;LystBot settings screen showing API key for the list app REST API&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Then you talk to your lists like a normal person talks to a REST API:&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# Create a list&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://api.lystbot.com/lists &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{&quot;title&quot;: &quot;Grocery Run&quot;, &quot;emoji&quot;: &quot;🛒&quot;}&#39;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Add items&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; POST https://api.lystbot.com/lists/LIST_ID/items &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{&quot;items&quot;: [&quot;Oat milk&quot;, &quot;Sourdough&quot;, &quot;Avocados&quot;]}&#39;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;# Check off an item&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-X&lt;/span&gt; PATCH https://api.lystbot.com/lists/LIST_ID/items/ITEM_ID &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Authorization: Bearer YOUR_API_KEY&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-H&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Content-Type: application/json&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;&#92;&lt;/span&gt;
  &lt;span class=&quot;token parameter variable&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&#39;{&quot;checked&quot;: true}&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;No scopes, no token refresh, no 47-page OAuth guide. A todo app REST API that works like you&#39;d expect a REST API to work.&lt;/p&gt;
&lt;p&gt;It&#39;s a grocery list API you can call from anywhere: a cron job, a Home Assistant automation, a Slack bot, a recipe scraper. If it speaks HTTP, it speaks LystBot.&lt;/p&gt;
&lt;p&gt;Full endpoint docs are at &lt;a href=&quot;https://lystbot.com/blog/agents&quot;&gt;lystbot.com/agents&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&quot;mcp-server&quot;&gt;MCP server&lt;/h2&gt;
&lt;p&gt;LystBot ships an &lt;a href=&quot;https://registry.modelcontextprotocol.io/?q=Lystbot&quot;&gt;MCP server&lt;/a&gt; so your AI assistant can manage your lists directly. Not &amp;quot;pretend to manage&amp;quot; like ChatGPT does when it cheerfully says &amp;quot;Done!&amp;quot; while nothing happens on your phone. Actually manage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Desktop&lt;/strong&gt; config:&lt;/p&gt;
&lt;pre class=&quot;language-json&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;mcpServers&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;lystbot&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;command&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;npx&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;token property&quot;&gt;&quot;args&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;lystbot&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;mcp&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Cursor / Windsurf:&lt;/strong&gt; Same setup in your MCP config file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Claude Code:&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;claude mcp &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; lystbot -- npx lystbot mcp&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once connected, you can say &amp;quot;find a carbonara recipe and add the ingredients to my grocery list.&amp;quot; Claude reads the recipe, creates the items, and your phone buzzes with a push notification. The items are on your list when you walk into the store.&lt;/p&gt;
&lt;p&gt;This is what MCP server list management looks like when the app was built for it from day one, not bolted on as an afterthought.&lt;/p&gt;
&lt;img src=&quot;https://lystbot.com/blog/img/dev-terminal-api.webp&quot; alt=&quot;Developer terminal showing LystBot REST API response and CLI commands&quot; class=&quot;hero-image&quot; style=&quot;width:100%;border-radius:12px;margin-bottom:24px;&quot;&gt;
&lt;h2 id=&quot;cli&quot;&gt;CLI&lt;/h2&gt;
&lt;p&gt;Sometimes you don&#39;t need AI. You need a terminal.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npx lystbot login YOUR_API_KEY
npx lystbot lists
npx lystbot create &lt;span class=&quot;token string&quot;&gt;&quot;Moving Checklist&quot;&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--emoji&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;📦&quot;&lt;/span&gt;
npx lystbot &lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Moving Checklist&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cancel internet, Forward mail, Pack kitchen&quot;&lt;/span&gt;
npx lystbot check &lt;span class=&quot;token string&quot;&gt;&quot;Moving Checklist&quot;&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;Cancel internet&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Pipe JSON output into &lt;code&gt;jq&lt;/code&gt;, feed it to other scripts, wire it into CI/CD. A shopping list CLI that plays nice with Unix pipes.&lt;/p&gt;
&lt;pre class=&quot;language-bash&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-bash&quot;&gt;npx lystbot lists &lt;span class=&quot;token parameter variable&quot;&gt;--json&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;|&lt;/span&gt; jq &lt;span class=&quot;token string&quot;&gt;&#39;.[].title&#39;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;No global install needed. &lt;code&gt;npx&lt;/code&gt; pulls it from &lt;a href=&quot;https://www.npmjs.com/package/lystbot&quot;&gt;npm&lt;/a&gt; and runs it.&lt;/p&gt;
&lt;h2 id=&quot;collaborative-lists-and-real-time-sync&quot;&gt;Collaborative lists and real-time sync&lt;/h2&gt;
&lt;p&gt;LystBot is still a proper list app. You share lists with family, roommates, whoever. Changes sync in real time across all devices.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-lists-overview.webp&quot; alt=&quot;LystBot lists overview showing shared shopping and todo lists&quot; class=&quot;app-screenshot&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-list-detail.webp&quot; alt=&quot;LystBot list detail view with grocery list items&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Share codes make it easy to invite people. No account creation required for the person joining.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-share-code.webp&quot; alt=&quot;LystBot share code for collaborative list sharing&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;p&gt;Push notifications tell you when someone adds or checks off items, whether that someone is your partner or your AI agent.&lt;/p&gt;
&lt;div class=&quot;screenshot-row&quot;&gt;
  &lt;img src=&quot;https://lystbot.com/blog/img/screenshot-push-notification.webp&quot; alt=&quot;LystBot push notification when items are added via API&quot; class=&quot;app-screenshot&quot;&gt;
&lt;/div&gt;
&lt;h2 id=&quot;open-source-and-free&quot;&gt;Open source and free&lt;/h2&gt;
&lt;p&gt;The CLI and MCP server are open source on &lt;a href=&quot;https://github.com/TourAround/LystBot&quot;&gt;GitHub&lt;/a&gt;. Read the code. Open issues. Send PRs. Every tool call your AI makes goes through code you can inspect.&lt;/p&gt;
&lt;p&gt;The app is free. No account walls, no credit card prompts, no &amp;quot;free tier with 3 lists.&amp;quot; You install it, you use it. That&#39;s the whole deal.&lt;/p&gt;
&lt;p&gt;If you&#39;re looking for a programmable list app or a headless list management tool that doesn&#39;t fight you, this is the one.&lt;/p&gt;
&lt;h2 id=&quot;get-lystbot&quot;&gt;Get LystBot&lt;/h2&gt;
&lt;p&gt;You get a list app with a real API, a CLI that respects your terminal, and an MCP server that turns your AI assistant into someone who can actually help with groceries. All free, all open source.&lt;/p&gt;
&lt;p&gt;Download LystBot free on &lt;a href=&quot;https://apps.apple.com/us/app/lystbot/id6760318388&quot;&gt;iOS App Store&lt;/a&gt; and &lt;a href=&quot;https://play.google.com/store/apps/details?id=io.touraround.lystbot&quot;&gt;Google Play&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://lystbot.com/blog/docs/&quot;&gt;Docs&lt;/a&gt; · &lt;a href=&quot;https://github.com/TourAround/LystBot&quot;&gt;GitHub&lt;/a&gt; · &lt;a href=&quot;https://www.npmjs.com/package/lystbot&quot;&gt;npm&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
</feed>