Grocery list and inventory management CLI. Use when users want to (1) add/remove/update items on grocery lists, (2) process receipt images to track purchases, (3) view shopping lists formatted for chat platforms, (4) analyze spending or price history, (5) manage household inventory with expiration tracking, (6) track food waste, (7) set/check budgets, (8) report out-of-stock items, (9) manage user preferences (brands, dietary, allergens), or (10) get smart shopping suggestions. Triggers on phrases like "add to list", "what's on my list", "process this receipt", "how much have I spent", "what's expiring", "log waste", "set budget".
Grocery list and household inventory management with receipt processing, analytics, and multi-store intelligence.
# List Management
grocery add "item" --quantity 3 --store Giant --json
grocery list --by-store --json
grocery update <id> --quantity 5 --json
grocery bought <id> --price 2.99 --json
grocery remove <id> --json
grocery clear --bought --json
# Receipt Processing
grocery receipt process --data '<json>' --json
grocery receipt list --json
# Analytics
grocery price history "milk" --json
grocery stats --period monthly --json
grocery stats frequency "milk" --json
grocery stats compare "milk" --json
grocery stats suggest --json
# Inventory
grocery inventory add "milk" --location fridge --expires 2026-01-28 --json
grocery inventory list --json
grocery inventory expiring --days 3 --json
grocery inventory low-stock --json
grocery inventory use <id> --quantity 1 --json
# Waste & Budget
grocery waste log "item" --reason spoiled --cost 3.99 --json
grocery waste summary --period monthly --json
grocery budget set 500 --month 2026-01 --json
grocery budget status --json
# Other
grocery out-of-stock report "item" "Store" --json
grocery preferences view "User" --json
grocery preferences set "User" --dietary vegetarian --json
Always use --json flag for programmatic consumption.
Full command reference: See references/cli-commands.md for all options and response formats.
When user uploads a receipt image:
{
"store_name": "Giant Food",
"transaction_date": "2026-01-25",
"line_items": [
{"item_name": "Bananas", "quantity": 3, "unit_price": 0.49, "total_price": 1.47}
],
"total": 1.47
}
grocery receipt process --data '<json>' --jsonMatched from your list: Bananas, Milk
Still need: Eggs, Bread
Extraction guidelines:
Parse natural language like "Add 3 bananas from Giant" into:
grocery add "bananas" --quantity 3 --store Giant --json
Handle duplicates: If DUPLICATE_ITEM error, ask user:
--force)If store not specified, prompt user with store options.
grocery list --json
Format output for the chat platform:
Telegram (markdown):
# Grocery List
## Giant Food
### Produce
- **Bananas** (3)
- **Avocados** (2)
Signal (plain):
GROCERY LIST
GIANT FOOD
Produce:
- Bananas (3)
- Avocados (2)
Group by: Store > Category > Aisle (if available)
grocery stats --period monthly --json
Present: Total spent, budget remaining, category breakdown.
grocery stats frequency "milk" --json
Present: "You buy milk every ~5 days. Last: 6 days ago. Consider adding to list."
grocery stats compare "milk" --json
Present: Prices by store, cheapest option, potential savings.
grocery stats suggest --json
Present proactively when appropriate:
Track household inventory with expiration dates:
# Add to inventory
grocery inventory add "milk" --location fridge --expires 2026-01-28 --threshold 1 --json
# Check expiring items
grocery inventory expiring --days 3 --json
# Check low stock
grocery inventory low-stock --json
# Use items
grocery inventory use <id> --quantity 1 --json
Locations: pantry, fridge, freezer
Present expiring items as alerts: "Milk expires in 3 days (Jan 28)"
Log and analyze food waste:
grocery waste log "lettuce" --reason spoiled --cost 3.99 --json
grocery waste summary --period monthly --json
Reasons: spoiled, never_used, overripe, other
Present insights: "Lettuce spoils frequently - consider buying smaller quantities"
grocery budget set 500 --month 2026-01 --json
grocery budget status --json
Present: Budget, spent, remaining, percentage, on-track status.
Store brand preferences, dietary restrictions, and allergens:
grocery preferences view "Alice" --json
grocery preferences set "Alice" --brand "milk:Organic Valley" --dietary vegetarian --json
Incorporate in responses: "Note: Alice prefers Organic Valley milk"
Alice and Bob share the list:
--json for CLI calls| Error Code | Action |
|---|---|
DUPLICATE_ITEM | Offer: increase quantity, use --force, or ignore |
NOT_FOUND | Verify item ID or search by name |
VALIDATION_ERROR | Check required fields, re-extract if receipt |
For low-confidence receipt extraction, present items with confidence and ask for corrections.