Bring! 购物清单:AI 驱动的杂货管理 - Openclaw Skills
作者:互联网
2026-03-27
什么是 Bring! 购物清单管理器?
此技能使 AI 代理能够直接与 Bring! 购物清单平台交互。利用非官方的 REST API,用户可以通过自然语言或自动化脚本管理杂货、家居用品和共享清单。作为 Openclaw Skills 生态系统的一部分,它弥合了数字助手与物理购物需求之间的差距,确保您的清单在所有同步设备上始终保持最新。
该集成侧重于隐私优先的凭据处理,允许用户通过直接聊天交互或私人终端输入提供访问权限。配置完成后,代理可以处理复杂的任务,如多项目添加和规格管理,并立即同步到手机上的 Bring! 应用程序。
下载入口:https://github.com/openclaw/skills/tree/main/skills/maikimolto/bring-list
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install bring-list
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 bring-list。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
Bring! 购物清单管理器 应用场景
- 使用自然语言将商品添加到特定清单,例如“将牛奶加入购物清单”。
- 为膳食计划批量添加带有特定描述或数量的多个商品。
- 在购物时勾选商品或将其从数据库中完全删除以进行清理。
- 管理家庭共享清单,确保每个人实时了解家庭需求。
- 代理使用存储在本地 JSON 配置文件中的 Bring! 帐户凭据进行身份验证。
- 它从 API 获取可用清单以识别目标清单,或使用预配置的默认清单。
- 通过 shell 脚本执行命令,向 Bring! REST API 发送请求以执行添加、完成或删除商品等操作。
- 该技能解析 API 响应并向用户提供即时反馈,确认更改已同步到移动应用。
Bring! 购物清单管理器 配置指南
要开始使用 Openclaw Skills 库中的此条目,请按照以下步骤操作:
# 创建配置目录
mkdir -p ~/.config/bring
# 安全地保存您的凭据(替换 YOUR_EMAIL 和 YOUR_PASSWORD)
jq -n --arg e "YOUR_EMAIL" --arg p "YOUR_PASSWORD" '{email: $e, password: $p}' > ~/.config/bring/credentials.json
chmod 600 ~/.config/bring/credentials.json
# 测试登录以确保 API 可访问
scripts/bring.sh login
注意:如果您使用 Google 或 Apple SSO,必须先在 Bring! 应用设置中设置直接密码。
Bring! 购物清单管理器 数据架构与分类体系
该技能在用户的家目录中组织其配置和身份验证数据:
| 文件路径 | 用途 |
|---|---|
~/.config/bring/credentials.json |
存储用户电子邮件、密码和指定的默认清单名称。 |
~/.cache/bring/token.json |
存储用于 API 会话的临时 OAuth 令牌。 |
scripts/bring.sh |
与 REST API 交互的核心执行逻辑。 |
清单中的项目支持可选的规格字段,通常用于数量或特定品牌(例如 1L 或有机)。
name: bring-list
description: "Manage Bring! shopping lists (Einkaufsliste / grocery list) — add, remove, check off items, batch ops, default list support. Use when: user wants to set up Bring!, add items to shopping list, check what's on the list, or complete/remove items. Full guided setup in T@elegrimm: agent handles login, list selection and config entirely in ch@t. Privacy-first: credentials via ch@t or private terminal input — your choice, never repeated. Terminal optional."
Bring! Shopping Lists
Manage Bring! shopping lists via the unofficial REST API. Requires curl and jq.
Agent Setup Guide
When a user asks you to set up or use Bring for the first time, follow these steps:
Step 1: Check if already configured
Run scripts/bring.sh lists first. If it works, setup is already done — skip to usage.
Step 2: Set up credentials
Bring! requires an email + password. If the user doesn't have an account yet, they can create one for free at getbring.com or in the Bring! app.
If they signed up via Google/Apple: They need to set a direct password first in the Bring! app (Settings → Account → Change Password) before the API works.
Ask the user how they'd like to provide their credentials:
"I need your Bring! email and password. You can either share them here in ch@t (I'll write them to a config file and never mention them again), or if you prefer to keep them out of the ch@t entirely, I can give you a terminal command to enter them privately. Which do you prefer?"
Option A — via ch@t (convenient): User shares email + password in ch@t. Write them directly to the config file using jq for safe JSON encoding (prevents injection via special characters) and do not echo them back:
mkdir -p ~/.config/bring
jq -n --arg e "USER_EMAIL" --arg p "USER_PASSWORD" '{email: $e, password: $p}' > ~/.config/bring/credentials.json
chmod 600 ~/.config/bring/credentials.json
After writing, confirm: "Done — credentials saved securely. I won't repeat them."
Option B — via terminal (more private): Give the user this command to run in their own terminal. Credentials never appear in ch@t:
mkdir -p ~/.config/bring
read -rp "Bring! Email: " BEMAIL
read -rsp "Bring! Password: " BPASS && echo
jq -n --arg e "$BEMAIL" --arg p "$BPASS" '{email: $e, password: $p}' > ~/.config/bring/credentials.json
chmod 600 ~/.config/bring/credentials.json
unset BEMAIL BPASS
Tell the user: "Run that in your terminal, then come back and I'll continue the setup."
?? Do NOT use scripts/bring.sh setup — it requires an interactive terminal (TTY) which agents don't have. Always create the credentials file manually as shown in Step 3.
Step 3: Save credentials and test login
mkdir -p ~/.config/bring
jq -n --arg e "USER_EMAIL" --arg p "USER_PASSWORD" '{email: $e, password: $p}' > ~/.config/bring/credentials.json
chmod 600 ~/.config/bring/credentials.json
scripts/bring.sh login
If login fails: double-check email/password. The user may need their Bring! password (not Google/Apple SSO — Bring requires a direct account password).
Step 4: Show existing lists and ask for a default
scripts/bring.sh lists
This shows all the user's Bring! lists. The user may have multiple lists, e.g.:
- Einkaufsliste (main grocery list)
- Drogerie (drugstore items)
- Baumarkt (hardware store)
- A shared list with a partner/family
If the user has NO lists: Tell them to create one in the Bring! app first. The API does not support creating or deleting lists — this must be done in the app. Once they've created a list, continue with setup.
Ask the user which list should be the default. This lets them skip typing the list name every time.
If they have only ONE list: set it as default automatically and inform them. If they have MULTIPLE lists: show the list names and ask which one to use as default. Explain they can still target other lists by name (e.g., "Put nails on the Baumarkt list").
Step 5: Set default list
Update the credentials file to include the chosen default:
# Read existing config and add default_list
jq --arg list "CHOSEN_LIST_NAME" '. + {default_list: $list}' ~/.config/bring/credentials.json > /tmp/bring_conf.json && mv /tmp/bring_conf.json ~/.config/bring/credentials.json
chmod 600 ~/.config/bring/credentials.json
Step 6: Confirm setup
Show the user their current list content to confirm everything works:
scripts/bring.sh show
Tell them: "All set! You can now say things like 'Put milk on the list' or 'What's on the shopping list?'"
Important: Lists can only be managed in the app
The Bring! API does not support creating or deleting lists. If the user asks to create a new list or delete one, tell them: "Lists can only be created and deleted in the Bring! app. Once you've made the change there, I can immediately work with the new list."
Handling shared lists
Bring! lists are often shared between family members or partners. Changes made by the agent sync instantly to all devices sharing that list. Inform the user:
- "Any items I add will show up immediately on all phones that share this list."
- This is usually desired (e.g., partner sees the updated grocery list), but worth mentioning.
Setup (manual / reference)
Credentials via env vars BRING_EMAIL + BRING_PASSWORD, or config file ~/.config/bring/credentials.json:
{"email": "user@example.com", "password": "secret", "default_list": "Einkaufsliste"}
Interactive setup (TTY required): scripts/bring.sh setup
Commands
All commands accept a list name (partial match) or UUID. If default_list is configured, the list argument can be omitted.
# List all shopping lists
scripts/bring.sh lists
# Show items on a list (or default list)
scripts/bring.sh show
scripts/bring.sh show "Einkaufsliste"
# Add item (with optional specification/quantity)
scripts/bring.sh add "Milch" "fettarm, 1L"
scripts/bring.sh add "Einkaufsliste" "Milch" "fettarm, 1L"
# Add multiple items at once (use "item|spec" for specifications)
scripts/bring.sh add-multi "Brot" "K?se|Gouda" "Butter|irische"
# Complete/check off item (moves to recently purchased)
scripts/bring.sh complete "Milch"
# Complete multiple items at once
scripts/bring.sh complete-multi "Milch" "Brot" "K?se"
# Move item back from recently to purchase list
scripts/bring.sh uncomplete "Milch"
# Remove item entirely
scripts/bring.sh remove "Milch"
# Remove multiple items at once
scripts/bring.sh remove-multi "Milch" "Brot" "K?se"
Targeting specific lists
When the user has multiple lists, they can target a specific one by name:
- "Put nails on the Baumarkt list" →
scripts/bring.sh add "Baumarkt" "Nails" - "What's on the Drogerie list?" →
scripts/bring.sh show "Drogerie"
List names support partial case-insensitive matching, so "einkauf" matches "Einkaufsliste".
If no list is specified, the default_list from the config is used.
JSON Output
Append --json to lists and show for raw JSON:
scripts/bring.sh lists --json
scripts/bring.sh show --json
scripts/bring.sh show "Einkaufsliste" --json
Notes
- Specifications are the small description text under an item (e.g., quantity, brand)
completemoves items to "recently purchased" (like checking off in the app)removedeletes items entirely from the list- Token is cached at
~/.cache/bring/token.jsonand auto-refreshed - Changes sync instantly to all devices sharing the list
- Item names with special characters (quotes, umlauts, emoji) are fully supported
- Bring! requires a direct account password — Google/Apple SSO logins don't work with the API
countryin credentials.json controls the item catalog language (default:DE)- When showing items to the user, consider only showing the "TO BUY" section unless they specifically ask for recently completed items — the recently list can be very long
- If
removefails with "not found", suggest the user check the exact item name withshow - Creating/deleting lists is not supported by the Bring! API — users must manage lists in the Bring! app
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
Git 核心指南:掌握版本控制与工作流 - Openclaw Skills
百度搜索:AI 驱动的网络研究工具 - Openclaw Skills
Wrike:由 AI 驱动的任务与项目管理 - Openclaw Skills
Wrike:自动化项目管理和任务工作流 - Openclaw Skills
歌词搜索:检索并格式化歌曲歌词 - Openclaw Skills
API Credits Lite:可视化 API 余额追踪 - Openclaw Skills
Polymarket CLI:实时预测市场赔率 - Openclaw Skills
快速笔记:快速本地创意捕获与管理 - Openclaw Skills
情报摄取:战略内容自动化 - Openclaw Skills
Kiro X Hot Publisher:自动化 X 趋势发现与发布 - Openclaw Skills
AI精选
