← Back to Skills Marketplace
serdarsalim

Grocery Shopping Assistant

by Serdar Salim · GitHub ↗ · v1.1.3 · MIT-0
cross-platform ⚠ suspicious
189
Downloads
1
Stars
0
Active Installs
7
Versions
Install in OpenClaw
/install grocery-assistant
Description
Persistent pantry-backed grocery checklist for OpenClaw, intended for normal conversational use with Telegram shopping-list UI.
README (SKILL.md)

Grocery Checklist

This skill stores grocery state locally and supports a Telegram checklist UX.

Intended usage:

  • OpenClaw handles conversation normally
  • this skill provides grocery state and actions
  • Telegram renders shopping and pantry views
  • the managed OpenClaw route is the primary install mode

Runtime behavior:

  • reads Telegram account config from ~/.openclaw/openclaw.json
  • writes pantry state to ~/.openclaw/data/grocery-checklist/state.json
  • writes Telegram polling state to ~/.openclaw/data/grocery-checklist/telegram-bot-state.json
  • uses the bundled wrapper at scripts/grocery.sh

Use it for:

  • I ran out of salt
  • Add milk and eggs to groceries
  • What do I need to buy?
  • Mark eggs bought
  • I'm shopping now
  • Should I go shopping today?

Wrapper:

bash \x3Cskill_dir>/scripts/grocery.sh ...

Core states:

  • needed
  • have

Telegram callbacks use:

callback_data: gchk:...

Behavior guidance:

  • when tools are available, use mutate_grocery_items for state changes and render_grocery_view for Telegram UI
  • treat natural grocery mutation phrasing as state changes
  • for mutation intents, run the mutation first; do not render as a substitute for the mutation
  • treat show me the shopping list, what do I need to buy, and “I am shopping now” phrasing as shopping-list renders
  • treat show me the pantry and what do I have as pantry renders
  • keep normal grocery conversation conversational
  • after a Telegram UI render or callback, do not send a second explanatory message
  • for successful Telegram UI actions, the ideal model output is exactly NO_REPLY
Usage Guidance
This skill appears to do what it says: it stores grocery state locally and uses a Telegram token from your OpenClaw config to render inline checklists. Before installing: (1) confirm you want the grocery bot token placed in ~/.openclaw/openclaw.json (or bind a dedicated grocery account) so the skill can find it; (2) review and, if required by your security posture, allowlist the bundled wrapper and Python scripts for exec approvals (SETUP.md mentions this); (3) if you want tighter isolation, create a dedicated Telegram 'grocery' bot/account and bind it only to this agent; (4) be aware there is an optional standalone bot script (telegram_bot.py) that can run outside OpenClaw — only run it if you intend to bypass OpenClaw's managed routing. If you need a deeper audit, provide the remaining truncated sections of index.js/grocery.py for a full line-by-line review.
Capability Analysis
Type: OpenClaw Skill Name: grocery-assistant Version: 1.1.3 The skill is classified as suspicious due to a potential argument injection vulnerability in 'scripts/telegram_bot.py', where unsanitized user input is passed directly as command-line arguments to a shell wrapper, potentially allowing a user to manipulate the '--state-file' path or other parameters. Additionally, the skill requires high-privilege read access to the sensitive '~/.openclaw/openclaw.json' file to retrieve Telegram bot tokens and includes a maintenance script ('scripts/prune_grocery_sessions.py') that performs automated file deletions and archiving. While these features are aligned with the stated purpose of a Telegram-integrated grocery assistant, the broad file access and lack of input sanitization in the standalone bot script present a security risk.
Capability Tags
cryptocan-make-purchases
Capability Assessment
Purpose & Capability
The name/description match the code and SKILL.md: the package implements a pantry-backed grocery state machine and a Telegram UI. Required binaries (bash, python3, openclaw) and the files that read/write ~/.openclaw/* are consistent with the stated design (OpenClaw-managed routing + optional standalone bot).
Instruction Scope
Runtime instructions explicitly state the skill will read ~/.openclaw/openclaw.json and write state under ~/.openclaw/data/grocery-checklist/. The included scripts perform only grocery-related operations (state CRUD, Telegram API calls, session pruning). Note: the skill loads the entire openclaw.json to locate the grocery Telegram account (documented); while that file may contain other channel credentials, the code accesses only the grocery account fields.
Install Mechanism
No download/install step is declared (instruction-only install), and all code is bundled with the skill. There are no external archive downloads or URLs that would write arbitrary binaries to disk.
Credentials
No environment variables or external secrets are required. The skill reads ~/.openclaw/openclaw.json to obtain the grocery Telegram bot token — this is expected and documented. It does not request unrelated cloud keys or other credentials.
Persistence & Privilege
The skill writes state to ~/.openclaw/data/grocery-checklist/ and the prune helper manipulates session files in ~/.openclaw/agents/grocery/sessions; these are within the OpenClaw workspace and consistent with a grocery agent. The skill is not marked always:true and does not modify other skills' configs.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install grocery-assistant
  3. After installation, invoke the skill by name or use /grocery-assistant
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.1.3
- Added index.js and package.json, introducing new Node.js support. - Updated version to 1.1.3.
v1.1.2
- Added maintenance script: scripts/prune_grocery_sessions.py. - This script helps manage and prune old grocery sessions for improved data hygiene.
v1.1.0
Version 1.0.7 - No file changes were detected in this release. - No user-facing updates or new features.
v1.0.6
No user-visible changes in this release. Version bumped, but no updates or fixes detected.
v1.0.5
- Added compiled Python file for Telegram bot in scripts/__pycache__. - Updated documentation to clarify intended conversational usage with Telegram shopping-list UI. - Expanded example prompts for using the grocery checklist skill. - Added behavioral guidance for handling natural language interactions and Telegram UI updates.
v1.0.1
- Added compiled Python files for grocery and Telegram bot scripts. - Expanded documentation to specify skill file locations for reading and writing state. - Updated SKILL.md metadata with explicit file access paths and improved runtime behavior notes.
v1.0.0
- Initial release of grocery-checklist skill for OpenClaw. - Supports a persistent, local pantry-backed grocery checklist. - Integrates with Telegram inline buttons for easy marking of purchased items. - Allows adding, removing, querying, and marking grocery items as bought or needed. - Works via bash wrapper and requires bash, python3, and OpenClaw.
Metadata
Slug grocery-assistant
Version 1.1.3
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 7
Frequently Asked Questions

What is Grocery Shopping Assistant?

Persistent pantry-backed grocery checklist for OpenClaw, intended for normal conversational use with Telegram shopping-list UI. It is an AI Agent Skill for Claude Code / OpenClaw, with 189 downloads so far.

How do I install Grocery Shopping Assistant?

Run "/install grocery-assistant" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Grocery Shopping Assistant free?

Yes, Grocery Shopping Assistant is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Grocery Shopping Assistant support?

Grocery Shopping Assistant is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Grocery Shopping Assistant?

It is built and maintained by Serdar Salim (@serdarsalim); the current version is v1.1.3.

💬 Comments