🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Bring Add

by @darkdevelopers

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.

Versionv1.0.0
Downloads2,482
Stars⭐ 1
TERMINAL
clawhub install bring-add

πŸ“– About This Skill


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 | Target list (name or UUID) | | -b, --batch | 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
  • ⚑ When to Use

    TriggerAction
    - 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