🧪 Skills

Bring Add

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.

v1.0.0
❤️ 1
⬇️ 1.6k
👁 1
Share

Description


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-api with batchUpdateList() 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

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs