7.5k★bring-add – OpenClaw Skill
bring-add is an OpenClaw Skills integration for coding workflows. Use when user wants to add items to Bring! shopping lists. For adding single items, batch items, or items from stdin/files. Supports dry-run preview and JSON output.
Skill Snapshot
| name | bring-add |
| description | Use when user wants to add items to Bring! shopping lists. For adding single items, batch items, or items from stdin/files. Supports dry-run preview and JSON output. OpenClaw Skills integration. |
| owner | darkdevelopers |
| repository | darkdevelopers/bring-add |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @darkdevelopers/bring-add |
| last updated | Feb 7, 2026 |
Maintainer

name: bring-add description: Use when user wants to add items to Bring! shopping lists. For adding single items, batch items, or items from stdin/files. Supports dry-run preview and JSON output.
Bring! Add Items CLI
Overview
CLI for adding items to Bring! shopping lists. Supports quick single-item mode, batch mode, stdin/pipe input, and interactive mode.
When to Use
Use this skill when:
- User wants to add items to a Bring! shopping list
- Adding single item with optional specification (e.g., "Milk 1L")
- Adding multiple items at once (batch mode)
- Piping items from a file or other command
- Need to preview additions with dry-run
- Need JSON output for scripting
Don't use when:
- User wants to browse recipes (use bring-recipes instead)
- User wants to remove items from a list
- User wants to view current list contents
Quick Reference
| Command | Purpose |
|---|---|
bring-add "Item" "spec" | Add single item with specification |
bring-add --batch "A, B 1L, C" | Add multiple comma-separated items |
bring-add - | Read items from stdin |
bring-add | Interactive mode (TTY only) |
bring-add lists | Show available shopping lists |
bring-add --dry-run ... | Preview without modifying |
Environment variables:
export BRING_EMAIL="your@email.com"
export BRING_PASSWORD="yourpassword"
export BRING_DEFAULT_LIST="Shopping" # optional
Installation
cd skills/bring-add
npm install
Common Workflows
Add a single item:
node index.js "Tomatoes" "500g"
node index.js "Milk"
Add to specific list:
node index.js --list "Party" "Chips" "3 bags"
Batch add multiple items:
node index.js --batch "Tomatoes 500g, Onions, Cheese 200g"
Pipe from file:
cat shopping-list.txt | node index.js -
echo -e "Milk 1L\nBread\nButter" | node index.js -
Preview before adding:
node index.js --dry-run --batch "Apples 1kg, Pears"
Get JSON output:
node index.js --json --batch "Milk, Bread" 2>/dev/null
List available lists:
node index.js lists
node index.js --json lists
Flags Reference
| Flag | Description |
|---|---|
-l, --list <name> | Target list (name or UUID) |
-b, --batch <items> | Comma-separated items |
-n, --dry-run | Preview without modifying |
-q, --quiet | Suppress non-error output |
-v, --verbose | Show detailed progress |
--json | Output JSON to stdout |
--no-color | Disable colored output |
--no-input | Never prompt; fail if input required |
Input Format
Items follow the pattern: ItemName [Specification]
| Input | Item | Spec |
|---|---|---|
Tomatoes 500g | Tomatoes | 500g |
Oat milk 1L | Oat milk | 1L |
Red onions 3 | Red onions | 3 |
Cheese | Cheese | (empty) |
Rule: Last word becomes specification if it contains a number or unit (g, kg, L, ml, Stück, pck).
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | Generic failure (API error, network) |
2 | Invalid usage (bad args, missing input) |
3 | Authentication failed |
4 | List not found |
130 | Interrupted (Ctrl-C) |
Common Mistakes
Forgetting environment variables:
Set BRING_EMAIL and BRING_PASSWORD before running.
Wrong list name:
Use bring-add lists to see available lists and their exact names.
Specification parsing: The last word is treated as specification only if it looks like a quantity. "Red onions" stays as one item, but "Red onions 3" splits into item "Red onions" with spec "3".
Interactive mode in scripts:
Use --no-input flag in scripts to fail explicitly rather than hang waiting for input.
Implementation Notes
- Uses
node-bring-apiwithbatchUpdateList()API - Requires Node.js 18.0.0+
- Outputs data to stdout, progress/errors to stderr
- JSON mode available for automation
- Interactive mode only when stdin is a TTY
bring-add
Add items to Bring! shopping lists from the command line.
Installation
cd /path/to/node-bring-api/skills/bring-add
npm install
Quick Start
# Set credentials
export BRING_EMAIL="your@email.com"
export BRING_PASSWORD="yourpassword"
export BRING_DEFAULT_LIST="Shopping" # optional
# Add a single item
node index.js "Tomatoes" "500g"
Usage
bring-add [global flags] [item] [spec]
bring-add [global flags] <subcommand>
Quick Mode (single item)
node index.js "Tomatoes" "500g"
node index.js "Milk"
node index.js --list "Party" "Chips" "3 bags"
Batch Mode (multiple items)
node index.js --batch "Tomatoes 500g, Onions, Cheese 200g"
Stdin Mode
echo -e "Milk 1L\nBread\nButter" | node index.js -
cat shopping-list.txt | node index.js -
Interactive Mode
node index.js
When stdin is a TTY and no arguments are provided, enters interactive mode:
Adding to list: Shopping
Enter items (empty line to finish):
> Tomatoes 500g
> Onions
> Cheese 200g
>
Added 3 items to "Shopping"
List Shopping Lists
node index.js lists
node index.js -v lists # show UUIDs
node index.js --json lists # JSON output
Global Flags
| Flag | Description |
|---|---|
-h, --help | Show help and exit |
-V, --version | Print version and exit |
-l, --list <name> | Target list (name or UUID) |
-b, --batch <items> | Comma-separated items |
-n, --dry-run | Preview without modifying |
-q, --quiet | Suppress non-error output |
-v, --verbose | Show detailed progress |
--json | Output JSON to stdout |
--no-color | Disable colors |
--no-input | Never prompt; fail if input required |
Environment Variables
| Variable | Required | Description |
|---|---|---|
BRING_EMAIL | Yes | Bring! account email |
BRING_PASSWORD | Yes | Bring! account password |
BRING_DEFAULT_LIST | No | Default list name or UUID |
NO_COLOR | No | Disable colors (any value) |
DEBUG | No | Show debug output |
Precedence: Flags > Environment > Defaults
Input Format
ItemName [Specification]
| Input | Item | Spec |
|---|---|---|
Tomatoes 500g | Tomatoes | 500g |
Oat milk 1L | Oat milk | 1L |
Red onions 3 | Red onions | 3 |
Cheese | Cheese | (empty) |
Rule: Last word is specification if it contains a number or unit.
Exit Codes
| Code | Meaning |
|---|---|
0 | Success |
1 | Generic failure (API error, network) |
2 | Invalid usage (bad args, missing input) |
3 | Authentication failed |
4 | List not found |
130 | Interrupted (Ctrl-C) |
I/O Contract
| Stream | Content |
|---|---|
| stdout | Data: JSON output, dry-run preview |
| stderr | Progress, prompts, errors, warnings |
JSON Output
Add Result
{
"list": {
"name": "Shopping",
"uuid": "a5a22d4b-..."
},
"added": [
{"item": "Tomatoes", "spec": "500g"},
{"item": "Cheese", "spec": ""}
],
"count": 2
}
Dry-Run Result
{
"list": {"name": "Shopping", "uuid": "..."},
"wouldAdd": [...],
"count": 2,
"dryRun": true
}
Lists Result
{
"lists": [
{"name": "Shopping", "uuid": "...", "isDefault": true},
{"name": "Home", "uuid": "...", "isDefault": false}
]
}
Examples
# Quick add
node index.js "Milk" "1L"
# Batch add
node index.js --batch "Bread, Butter, Eggs 6"
# Preview without adding
node index.js --dry-run --batch "Apples 1kg, Pears"
# Add to specific list
node index.js --list "Party" "Chips"
# Pipe from file
cat list.txt | node index.js -
# JSON output for scripting
node index.js --json --batch "Milk, Bread" 2>/dev/null | jq '.count'
# Silent mode
node index.js -q "Milk" && echo "OK"
# List available lists as JSON
node index.js --json lists
# Verbose mode with UUIDs
node index.js -v lists
License
MIT
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install bring-add?
Run openclaw add @darkdevelopers/bring-add in your terminal. This installs bring-add into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/darkdevelopers/bring-add. Review commits and README documentation before installing.
