| name | rema-shopping |
| description | Shopping list management workflow for the rema CLI. Create lists, search products by name, add items with GTINs, check off and manage items. Use when building or maintaining grocery shopping lists. |
| compatibility | Requires rema binary installed and authenticated (see rema-shared skill). |
rema-shopping
Workflow for managing REMA 1000 shopping lists via the rema CLI. Covers creating lists, finding products, adding items, and list maintenance.
Step 1: Check Existing Lists
rema lists list --json --fields id,name,emoji
This returns all shopping lists. Use a list ID from the output, or create a new one.
Step 2: Create a List (if needed)
rema lists create "Weekly Groceries" --emoji "🛒" --theme BLUE
Themes: RED, BLUE, PURPLE (default BLUE). The response includes the new list's UUID.
Step 3: Search for Products
rema articles search "kyllingfilet" --rows 5 --json --fields gtin,salesVariantDescription,packingSize,merchStructureIDLevel2
Key fields in results:
gtin — Barcode identifier, use this when adding items for precise matching
salesVariantDescription — Product display name (e.g., "Kyllingfilet Naturell 1000G Solvinge")
packingSize — Package size (e.g., "1000 G") — use as --description
merchStructureIDLevel2 — Store area/aisle code — REQUIRED as --store-area when adding the item
Step 4: Add Items to List
With product details (preferred — enables aisle grouping and product matching):
--store-area is required for GTIN-linked items. Use the merchStructureIDLevel2 value from the article search result. Without it, the item is placed in aisle 0 and the app's aisle-grouping feature breaks.
rema items add <list-id> "Kyllingfilet" --gtin 7057370030369 --description "1000 G" --store-area 11
Free-text (when no exact product match needed):
rema items add <list-id> "Bananer"
With quantity:
rema items add <list-id> "Melk" --gtin 7038010009457 --description "1 L" --store-area <merchStructureIDLevel2> --quantity 2
Step 5: View List Contents
rema lists get <list-id> --json
Returns the list with all items, including their IDs, names, states, and GTINs.
Step 6: Manage Items
Check off an item (mark as done):
rema items update <list-id> <item-id> --state Inactive
Uncheck an item:
rema items update <list-id> <item-id> --state Active
Change quantity or name:
rema items update <list-id> <item-id> --quantity 3
rema items update <list-id> <item-id> --name "Lettmelk"
Delete a single item:
rema items delete <list-id> <item-id>
Clear all checked-off items:
rema items clear <list-id>
Uncheck all items (reset list for reuse):
rema items activate <list-id>
Step 7: Share a List
rema lists share <list-id> --name "Alfred"
Returns a share/invite link that others can use to join the list.
Step 8: Delete a List
rema lists delete <list-id>
Tips
- Always search with
rema articles search before adding items if you want GTIN-linked items. GTIN-linked items show product images and enable aisle grouping in the app.
- Always pass
--store-area <merchStructureIDLevel2> when adding GTIN-linked items. Omitting it defaults to 0, which breaks aisle grouping in the app.
- Use
--fields aggressively — list responses can be large. For a quick overview: --fields id,name,state.
- Item states are
Active (not checked) and Inactive (checked off).
items clear only removes Inactive items — use it after shopping to clean up.
items activate resets all items to Active — use it to reuse a list for the next shopping trip.