Agent skill

Grocery Basket Assistant

by abracadabra50 in abracadabra50/open-supermarkets

Searches Sainsbury's groceries and favourites, then adds, updates or removes basket items through a local HTTP API wrapper, always confirming before changes.

MITAuto-check passedProductivity & Automation

Install Grocery Basket Assistant

skills CLI
$ npx skills add abracadabra50/open-supermarkets --skill grocery-api -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install abracadabra50/open-supermarkets grocery-api --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/abracadabra50/open-supermarkets.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/api .claude/skills/grocery-api && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
grocery-api
GitHub stars
117
Token cost
~634 tokens
SKILL.md length
244 words
Files
2
Skills in repo
2
Repo updated
First seen
Licence
MIT

At a glance

Searches Sainsbury's groceries and favourites, then adds, updates or removes basket items through a local HTTP API wrapper, always confirming before changes.

  • Works in 6 steps: First search favourites → If there is a clear favourite result… → If there are multiple plausible… → …
  • Finding a product or a saved favourite in the connected grocery store
  • SKILL.md covers Commands, Add-to-basket workflow, Remove/update workflow and Notes
  • Runs JavaScript scripts from its folder; calls node and npm

What it does

The skill talks to a local groc API on port 7876 through a small Node wrapper script, with separate commands for searching favourites, running a regular search, listing favourites and viewing the basket. For an add request it checks favourites first, adds directly only when one clear match exists, and asks the user to pick when several favourites could fit or when a regular search is used instead.

Removing or updating an item starts by reading the basket to get its item IDs, since those differ from product IDs, and asks for clarification if more than one basket line could match. After any change it shows or summarizes the basket again. The skill is deliberately cautious: it never adds an ambiguous item without asking, and never adds a plain search result without confirmation first.

When your agent uses it

  • Finding a product or a saved favourite in the connected grocery store
  • Adding an item to the basket from a search or a favourite
  • Removing or changing the quantity of something already in the basket

Example prompts

  • “Add my usual semi-skimmed milk to the basket.”
  • “Search for oat milk and show me the options with prices.”
  • “Remove the bread I added earlier and show the updated basket.”

Requirements

  • The local groc API running on port 7876
  • Node.js to run the wrapper script
  • Pre-approved tools (allowed-tools): Bash(node:skills/api/wrapper.js:*)

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. First search favourites
  2. If there is a clear favourite result that matches the user's intent, add it directly
  3. If there are multiple plausible favourite results, ask the user which one to add. Include names, prices, and product IDs.
  4. If there are no good favourite matches, or if the user explicitly asks to look outside favourites, use regular search
  5. For regular search results, always confirm with the user before adding anything to the basket.
  6. After adding, show or summarize the basket

What it can do on your machine

Read from SKILL.md and the folder at commit aff6880. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(node:skills/api/wrapper.js:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Grocery Basket Assistant loads about 634 tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 244 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~634

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from abracadabra50/open-supermarkets at commit aff6880, republished under its MIT licence (© abracadabra50). 244 words, ~634 tokens.

Download SKILL.mdSave it as .claude/skills/grocery-api/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
grocery-api
description
Use the local groc HTTP API to search Sainsbury's groceries, search favourites, add/update/remove basket items, and view basket.
allowed-tools
Bash(node:skills/api/wrapper.js:*)

Grocery API Skill

Use this skill when the user asks about Sainsbury's groceries, favourites, searching products, adding/updating/removing basket items, or viewing the basket.

The local API must already be running on port 7876:

bash
GROC_API_PORT=7876 npm run api

Commands

Run from the repo root:

bash
node skills/api/wrapper.js fav-search "milk"
node skills/api/wrapper.js search "milk"
node skills/api/wrapper.js favourites
node skills/api/wrapper.js basket
node skills/api/wrapper.js add <product-id> [qty]
node skills/api/wrapper.js remove <item-id>
node skills/api/wrapper.js update <item-id> <qty>

All commands return JSON from the local API.

Add-to-basket workflow

When the user asks to add an item to the basket:

  1. First search favourites:

    bash
    node skills/api/wrapper.js fav-search "USER ITEM"
  2. If there is a clear favourite result that matches the user's intent, add it directly:

    bash
    node skills/api/wrapper.js add <product-id> [qty]
  3. If there are multiple plausible favourite results, ask the user which one to add. Include names, prices, and product IDs.

  4. If there are no good favourite matches, or if the user explicitly asks to look outside favourites, use regular search:

    bash
    node skills/api/wrapper.js search "USER ITEM"
  5. For regular search results, always confirm with the user before adding anything to the basket.

  6. After adding, show or summarize the basket:

    bash
    node skills/api/wrapper.js basket

Remove/update workflow

When the user asks to remove or update an item:

  1. First inspect the basket to get basket item IDs:

    bash
    node skills/api/wrapper.js basket
  2. Use the basket item_id, not the product ID:

    bash
    node skills/api/wrapper.js remove <item-id>
    node skills/api/wrapper.js update <item-id> <qty>
  3. If the item to change is ambiguous, ask the user which basket item they mean.

  4. After removing or updating, show or summarize the basket.

Notes

  • Prefer favourites over regular search for add requests.
  • Do not add ambiguous items without asking.
  • Do not use regular search additions without confirmation.
  • Use the product_uid as the product ID for add.
  • Use the basket item_id for remove and update.

© abracadabra50, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in skills/api of abracadabra50/open-supermarkets.

  • SKILL.md
  • wrapper.js

Open the folder on GitHubat commit aff6880

Compare with similar skills

Grocery Basket Assistant next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Grocery Basket Assistant compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Grocery Basket Assistant this skillabracadabra50/open-supermarkets117—~634Automated safety check: PassMIT
OpenAPI to MCP Servermcp-use/mcp-use11k—~5.2kAutomated safety check: PassApache-2.0
Tandem Browserhydro13/tandem-browser616—~9.1kAutomated safety check: PassMIT
Neon Postgresaiskillstore/marketplace4304 repos~4.2kAutomated safety check: NotesApache-2.0
Nevermined PaymentsLeoYeAI/openclaw-master-skills2.2k—~4.5kAutomated safety check: NotesMIT
Cohesivityaiskillstore/marketplace4302 repos~3.7kAutomated safety check: PassNone

Similar skills

  • OpenAPI to MCP Server

    mcp-use/mcp-use

    Turns an OpenAPI or Swagger spec into an MCP server with the mcp-use TypeScript SDK, mapping each operation to a tool, wiring auth, testing and deploying.

    11k GitHub stars~5.2k tokensUpdated today
    Backend & APIsAuto-check passed
  • Tandem Browser

    hydro13/tandem-browser

    Use Tandem Browser's MCP server (local and remote agents) or HTTP API (local and remote agents) to inspect, browse, and interact with the user's shared browser safely.

    616 GitHub stars~9.1k tokensUpdated 8 days ago
    Agent WorkflowsAuto-check passed
  • Neon Postgres

    aiskillstore/marketplace

    Guides and best practices for working with Neon Serverless Postgres.

    430 GitHub starsUsed in 4 repos~4.2k tokens
    DatabasesAuto-check: notes
  • Nevermined Payments

    LeoYeAI/openclaw-master-skills

    Integrates Nevermined payment infrastructure into AI agents, MCP servers, Google A2A agents, and REST APIs.

    2.2k GitHub stars~4.5k tokensUpdated 2 mo ago
    Backend & APIsAuto-check: notes
  • Cohesivity

    aiskillstore/marketplace

    Backend and infra for a project via Cohesivity (cohesivity.ai).

    430 GitHub starsUsed in 2 repos~3.7k tokens
    Productivity & AutomationAuto-check passed
  • Effect V4

    ComposioHQ/composio

    Write, review, or upgrade Effect v4 code in the Composio CLI, cli-keyring, and json-schema-to-effect-schema packages, all pinned exactly to effect@4.0.0-rc.117 — Context.Service and explicit layers…

    30k GitHub stars~1k tokensUpdated today
    Productivity & AutomationAuto-check passed

More from abracadabra50/open-supermarkets

  • Open Supermarkets

    abracadabra50/open-supermarkets

    Searches, compares and fills baskets across supermarkets in several countries, with delivery slots, checkout and nutrition data, as a CLI, MCP server or skill.

    117 GitHub starsUsed in 1 repo~1.4k tokens
    Auto-check passed

Questions about Grocery Basket Assistant

What does Grocery Basket Assistant do?

Searches Sainsbury's groceries and favourites, then adds, updates or removes basket items through a local HTTP API wrapper, always confirming before changes. The skill talks to a local groc API on port 7876 through a small Node wrapper script, with separate commands for searching favourites, running a regular search, listing favourites and viewing the basket. For an add request it checks favourites first, adds directly only when one clear match exists, and asks the user to pick when several favourites could fit or when a regular search is used instead.

When should I use Grocery Basket Assistant?

Grocery Basket Assistant fits situations like: finding a product or a saved favourite in the connected grocery store; adding an item to the basket from a search or a favourite; removing or changing the quantity of something already in the basket.

How do I install Grocery Basket Assistant in Claude Code?

Run `npx skills add abracadabra50/open-supermarkets --skill grocery-api -a claude-code`. Or copy the skill folder (skills/api in abracadabra50/open-supermarkets) into .claude/skills/grocery-api in your project. Claude Code loads it when a task matches its description.

How do I install Grocery Basket Assistant in Codex?

Run `npx skills add abracadabra50/open-supermarkets --skill grocery-api -a codex`. Or copy the skill folder (skills/api in abracadabra50/open-supermarkets) into .agents/skills/grocery-api in your project. Codex loads it when a task matches its description.

Can I use Grocery Basket Assistant in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add abracadabra50/open-supermarkets --skill grocery-api -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/grocery-api, .gemini/skills/grocery-api, .github/skills/grocery-api and .opencode/skills/grocery-api in your project.

What does Grocery Basket Assistant need to run?

Going by SKILL.md and its folder, Grocery Basket Assistant needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and npm). Our summary lists: The local groc API running on port 7876; Node.js to run the wrapper script. Its frontmatter pre-approves these tools: Bash(node:skills/api/wrapper.js:*).

Does Grocery Basket Assistant access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Grocery Basket Assistant safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Grocery Basket Assistant use?

Grocery Basket Assistant is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Grocery Basket Assistant use?

About 634 tokens (SKILL.md is roughly 2.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Grocery Basket Assistant?

Skills that share tags, products or a category with Grocery Basket Assistant: OpenAPI to MCP Server (mcp-use/mcp-use, 11k stars), Tandem Browser (hydro13/tandem-browser, 616 stars), Neon Postgres (aiskillstore/marketplace, 430 stars) and Nevermined Payments (LeoYeAI/openclaw-master-skills, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Grocery Basket Assistant?

abracadabra50 (a GitHub user) maintains it in abracadabra50/open-supermarkets, which has 117 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 29, 2026.

Source: abracadabra50/open-supermarkets on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.