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.

7 stars

Best use case

bring-add is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using bring-add should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/bring-add/SKILL.md --create-dirs "https://raw.githubusercontent.com/Demerzels-lab/elsamultiskillagent/main/public/skills/darkdevelopers/bring-add/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bring-add/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bring-add Compares

Feature / Agentbring-addStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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:**
```bash
export BRING_EMAIL="your@email.com"
export BRING_PASSWORD="yourpassword"
export BRING_DEFAULT_LIST="Shopping"  # optional
```

## Installation

```bash
cd skills/bring-add
npm install
```

## Common Workflows

**Add a single item:**
```bash
node index.js "Tomatoes" "500g"
node index.js "Milk"
```

**Add to specific list:**
```bash
node index.js --list "Party" "Chips" "3 bags"
```

**Batch add multiple items:**
```bash
node index.js --batch "Tomatoes 500g, Onions, Cheese 200g"
```

**Pipe from file:**
```bash
cat shopping-list.txt | node index.js -
echo -e "Milk 1L\nBread\nButter" | node index.js -
```

**Preview before adding:**
```bash
node index.js --dry-run --batch "Apples 1kg, Pears"
```

**Get JSON output:**
```bash
node index.js --json --batch "Milk, Bread" 2>/dev/null
```

**List available lists:**
```bash
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

Related Skills

bring

7
from Demerzels-lab/elsamultiskillagent

Manage Bring! shopping lists - view, add, and remove grocery items from shared shopping lists. Use when the user wants to interact with their Bring! shopping list app, add groceries, check what's on the list, or remove items after shopping.

bring-rezepte

7
from Demerzels-lab/elsamultiskillagent

Use when running the OpenClaw/ClawHub Bring! skill to search recipes on the web, parse recipe URLs for ingredients.

bring-recipes

7
from Demerzels-lab/elsamultiskillagent

Use when user wants to browse recipe inspirations from Bring! shopping app. For discovering recipes, viewing recipe details (name, author, type, images), or filtering by tags. Note - cannot import ingredients (API limitation).

bring-shopping

7
from Demerzels-lab/elsamultiskillagent

Manage Bring! shopping lists via the unofficial bring-shopping Node.js library using email/password login. Use for listing lists, reading items, adding/removing items, and checking/unchecking items when API-style access is acceptable.

paylock

7
from Demerzels-lab/elsamultiskillagent

Non-custodial SOL escrow for AI agent deals.

agent-reputation

7
from Demerzels-lab/elsamultiskillagent

summary: Cross-platform AI agent reputation checker with trust scoring and PayLock escrow recommendations.

Telecom Agent Skill

7
from Demerzels-lab/elsamultiskillagent

Turn your AI Agent into a Telecom Operator. Bulk calling, ChatOps, and Field Monitoring.

OpenClaw-Finnhub

7
from Demerzels-lab/elsamultiskillagent

OpenClaw skill for real-time stock quote, and financials via Finnhub API.

```markdown

7
from Demerzels-lab/elsamultiskillagent

# OpenClaw-Last.fm

security-operator

7
from Demerzels-lab/elsamultiskillagent

Runtime security guardrails for OpenClaw agents.

operator-humanizer

7
from Demerzels-lab/elsamultiskillagent

Transform AI-generated text into authentic human writing.

kit-email-operator

7
from Demerzels-lab/elsamultiskillagent

**AI-powered email marketing for Kit (ConvertKit)**.