| name | boycott-filter |
| description | Personal boycott list — users can conversationally tell the agent which brands they
want to avoid, and why. A local sync server exposes the list at http://127.0.0.1:7847,
and a bundled Chrome extension warns the user when they land on pages from boycotted
brands. Use when the user says things like "I'm done with X", "boycott Y", "never
buying from Z again", "remove X from my boycott list", or asks to see their list.
Trigger phrases: "boycott", "never buying from", "sick of", "add to boycott",
"show my boycott list", "remove from boycott".
|
| allowed-tools | Bash(curl:*) |
| version | 1.2.0 |
| author | Bubble Invest <contact@bubbleinvest.com> |
| license | MIT |
| tags | ["boycott","consumer","shopping","brands","chrome-extension","productivity","ethical-consumption"] |
| user-invocable | true |
| compatibility | Designed for Claude Code |
Boycott Filter
Manage a personal boycott list conversationally. Users complain about brands, the agent adds them to a local list with their reason, and a Chrome extension warns them on any page from those brands — displaying their own words back to them.
Overview
This skill is the conversational layer of a 3-part system:
- This skill (Claude Code) — understands user intent, calls the local API
- Local sync server (
scripts/server.js, port 7847) — stores the list, serves it to the extension
- Chrome extension (
extension/) — scans pages, shows the warning banner
The user's value: they complain ONCE, they're reminded FOREVER — in their own voice, with their own reason. No more accidental clicks on brands they'd decided to stop supporting.
Prerequisites
- Node.js 18+ installed
- Chrome (or any Manifest V3 browser) with the bundled extension loaded manually (see README)
- The local sync server must be running on port 7847
Check with:
curl -s http://127.0.0.1:7847/health
If not running, ask the user to run setup once in a terminal (the skill itself only has curl permission, by design — see README for security rationale):
bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh
Tell the user: "The boycott server isn't running. Open a terminal and run: bash ${CLAUDE_PLUGIN_ROOT}/scripts/setup.sh — that starts the local server and shows you how to load the Chrome extension. Then ask me again."
Instructions
When the user wants to ADD a brand
Detect phrases like:
- "I'm done with X"
- "Never buying from X again"
- "Boycott X"
- "Add X to my boycott list"
- "Sick of X"
Extract:
- Brand name (the thing they want to avoid)
- Reason (their own words — critical, this is what will be shown back to them)
- Aliases (optional — if you know subsidiaries, offer them: Nestlé → Nespresso, KitKat, Purina, etc.)
Then call:
curl -s -X POST http://127.0.0.1:7847/add \
-H 'Content-Type: application/json' \
-d '{"name":"BRAND","reason":"USER_REASON","aliases":["alias1","alias2"]}'