Where technology meets judgment

Cette page est aussi offerte en français.

Compare your grocery list across Québec stores with an AI agent

AI agent skillSource code on GitHub

Groceries are one of a family’s biggest monthly expenses, and the same product can cost quite different amounts from one chain to the next. This skill lets an AI agent do the comparison for you: give it your list and the stores you shop at, and it returns each product’s recorded price at each chain, with the date that price was observed and a link to the source.

The prices come from épiceries.ca, an independent service that tracks six Québec chains: Maxi, IGA, Super C, Metro, Provigo and Walmart. I’m not involved with épiceries.ca. My project is the skill, which teaches an AI agent to use its public API properly: match the right products, check how recent each price is, and report what’s missing. No account or API key needed.

What it does

  • Compares a shopping list across the chains you choose, product by product.
  • Shows package sizes, so you compare like with like.
  • Flags old and missing prices instead of guessing: an incomplete basket is reported as incomplete.
  • Finds discounts, looks up barcodes and shows a product’s price history.
  • Works in English or French.

It’s read-only: it doesn’t touch a cart and can’t place an order.

Install

With Node.js installed, one command adds it to your AI agent (Claude Code, Codex and other agents that support skills):

npx skills add plcharbonneau/epiceries-ca-skill

Choose epiceries-api and your agent when asked; add -g to install it for all your projects. The skill’s helper scripts need Python 3.9 or newer.

Ask your agent

Use $epiceries-api to compare milk, eggs and butter across Maxi, IGA
and Super C. Review product matches and include package sizes,
observation dates, missing prices and source links.

In Codex, call the skill with $epiceries-api. In Claude Code, mention it or simply ask about grocery prices.

What the prices mean

  • Prices are observations from retailer websites, not a guarantee at your branch: the API has no branch or postal-code selector.
  • A recorded discount doesn’t prove a flyer offer, its end date or its conditions.
  • Coverage is the products tracked at six chains, not every product or every grocer.
  • Prices in one comparison can have different ages; the skill shows each date.

Without an AI agent

The repository includes a Python command-line tool with no dependencies:

python3 scripts/compare_list.py --stores maxi,iga,superc \
  --item 'lait 2%' --item 'oeufs 12' --item 'beurre 454'

Credits

Price data comes from épiceries.ca, an independent service run by others. This skill is my own project; it isn’t affiliated with or endorsed by épiceries.ca or the retailers. The skill’s code is available under the MIT license.

fr