LystBot

Manage Shopping Lists from the Terminal

Terminal showing LystBot CLI managing a shopping list

I catch myself doing it ten times a day. I'm in the terminal, deep in a task, and I remember we're out of coffee. So I grab my phone, unlock it, find the list app, wait for it to load, type "coffee," put the phone down, and try to remember what I was doing. Twenty seconds and one broken train of thought later, I'm back. Multiply that by every item, every day. It adds up.

What if you could manage your shopping list from the terminal? Same window, same keyboard, same flow. That's what LystBot CLI does. One command, item added, back to work. No app switching, no phone grabbing, no context destroyed.

TL;DR

Why the terminal beats a phone app (for some of us)

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:

lystbot add "Groceries" "Milk, Eggs, Bread"

Under 4 seconds including typing. That's not a marginal improvement. That's an order of magnitude.

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't cost you that.

A cli shopping list tool keeps your hands on the keyboard and your head in the game.

Setup in 2 minutes

Install

npm install -g lystbot

That's it. Node.js 18+ required. If you'd rather not install globally, npx lystbot works too.

Login

lystbot login

Opens your browser, you authenticate, the CLI stores your token locally. One-time thing.

Verify

lystbot lists

You should see your existing lists. If you're new to LystBot, download the app first and create a list there. Or create one from the terminal (we'll get to that).

LystBot app showing synced shopping lists LystBot list detail view with grocery items

The commands you'll actually use

Here's every command that matters, with real examples. No hypotheticals.

See all your lists

lystbot lists

Shows list names, item counts, and types. Quick overview without opening anything.

Show a specific list

lystbot show "Groceries"

Prints every item with its status (checked or not). Pipe it if you want:

lystbot show "Groceries" | grep milk

That's the kind of thing you can'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.

Add items

lystbot add "Groceries" "Oat milk, Bananas, Sourdough bread"

Comma-separated, all in one command. Items sync to every device on the list immediately. Your partner's phone buzzes with a push notification before you've hit Enter on your next command.

Push notification showing items added to shared grocery list via CLI

Check items off

lystbot check "Groceries" "Oat milk"

Fuzzy matching works here. You don't need to type the exact item name. "oat" would match "Oat milk" if there's no ambiguity.

Remove an item

lystbot remove "Groceries" "Bananas"

Gone. No confirmation dialog, no "are you sure?" popup. Terminal users know what they typed.

Create a new list

lystbot create "BBQ Saturday" --type shopping

Types are shopping, todo, packing, and generic. Pick what fits.

Share a list

lystbot share "Groceries"

Generates a 6-character code. Send it to anyone. They join from the app with that code, no account creation hassle.

LystBot share code for joining a shared shopping list

Three workflows that actually work

Commands are nice. Workflows are where a terminal list app becomes part of how you operate.

Morning routine: clear the decks

You're having coffee, terminal open, checking things before the day starts.

lystbot show "Groceries"

Yesterday you bought milk and eggs. Check them off:

lystbot check "Groceries" "Milk"
lystbot check "Groceries" "Eggs"

Glance at your todo list while you're at it:

lystbot show "Today"

Two minutes, both lists reviewed and updated, without leaving your morning terminal session.

Cooking mode: shop and check

You're in the kitchen, laptop on the counter (we all do it). Recipe open in one tab, terminal in another.

lystbot show "Groceries"

Check off ingredients as you pull them from the bag:

lystbot check "Groceries" "Chicken breast"
lystbot check "Groceries" "Rice"
lystbot check "Groceries" "Onions"

Realize you forgot garlic:

lystbot add "Groceries" "Garlic"

Your partner is still at the store? They see "Garlic" pop up on their phone. That's real-time shared list management from the terminal.

Meal prep: batch create

Sunday evening, planning meals for the week.

lystbot create "Week 14 Groceries" --type shopping
lystbot add "Week 14 Groceries" "Chicken thighs 1kg, Broccoli 2x, Sweet potatoes, Greek yogurt, Quinoa, Lemons, Garlic, Ginger, Soy sauce"

Two commands. Nine items. List created, populated, and already syncing to your partner's phone. The same thing in a phone app would take you through at least 12 taps and probably a typo or two.

Ready to try it? Install LystBot CLI and manage your shopping lists from the terminal:

npm install -g lystbot

The CLI docs have the full command reference. Setup takes under two minutes.

Pipe-friendly by design

The CLI outputs clean text you can pipe, grep, and script with. Some examples:

Find a specific item across all lists:

lystbot lists | while read list; do echo "=== $list ==="; lystbot show "$list" | grep -i "milk"; done

Export a list to a file:

lystbot show "Groceries" > groceries.txt

Add items from a file:

cat weekly-staples.txt | xargs -I {} lystbot add "Groceries" "{}"

If you'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's theirs. LystBot treats your lists as data you own and can move however you want.

CLI vs. phone app: when to use which

I don't think the CLI replaces the phone app. They're for different moments.

Use the CLI when:

Use the phone app when:

The whole point is that both interfaces hit the same backend. Add something from the CLI, it's on the phone. Check something on the phone, it's gone from CLI output. One list, multiple ways in.

Beyond the CLI: API and MCP

The CLI is one of three ways to manage lists from the terminal. LystBot also has a REST API for building automations (cron jobs, Slack bots, Home Assistant triggers) and an MCP server that lets AI assistants like Claude manage your lists in natural language.

All three talk to the same backend. Pick whichever fits the task:

If you're curious about what else you can build, we covered 4 real API automations and 10 MCP server use cases in separate posts.

Get started

LystBot CLI is free. The app is free. No paywalls, no feature gating.

  1. Install the CLI: npm install -g lystbot (npm package)
  2. Login: lystbot login
  3. Add your first item: lystbot add "Groceries" "Coffee"

See it appear on your phone. That moment when a terminal command updates your shared shopping list in real time, that's when it clicks.

Full docs: lystbot.com/docs/cli