Skip to content

Browser Extension

Your agent can only help with what it knows. Conversations and memory cover a lot, but there’s one massive blind spot: what you’re reading right now.

Context Bro is a standalone Chrome extension that bridges this gap. It extracts content from web pages and sends it to your agent’s event stream through a webhook endpoint.

FeatureHow It Works
Manual ClipClick the extension icon or press Ctrl+Shift+K to share the current page
Selection ShareSelect text → floating button or right-click → share just the selection
Scheduled SharingConfigure a domain allowlist + interval → auto-share pages you’re browsing
Live Stream AdaptersTwitch and YouTube adapters capture chat, donations, and stream info in real time
Template EngineControl exactly what data is extracted and how the JSON payload is shaped

Context Bro is not the same as the AnySoul browser extension. It’s a separate, lower-permission extension that only reads pages you explicitly allow:

AnySoul ExtensionContext Bro
Core behaviorAgent drives the browser (opens tabs, runs searches)You share what you’re reading
PermissionsBroad (<all_urls>)Conservative (allowlist only)
Trust levelHigh — agent can see any pageLow — you control what’s shared
Install barrierRequires trusting agent automationWeb clipper mental model

Context Bro sends data to your agent through a standard webhook. Create one in AnySoul first:

  1. Open Agent Settings → Webhooks
  2. Click Create webhook with a name like context-bro
  3. Choose api_key authentication mode
  4. Copy the endpoint URL and API key

Install Context Bro from the Chrome Web Store and open its Options page.

In Context Bro Options → Endpoints:

  1. Click Add Endpoint
  2. Enter a name (e.g. My Soul)
  3. Paste the webhook URL:
    https://api.anysoul.ai/api/ingest/webhook/<webhookId>
  4. Add a custom header: X-API-Key → your API key
  5. Click Save

Open any web page, click the Context Bro icon, and hit Share. The page content is extracted, compiled through the active template, and POSTed to your webhook endpoint. Your agent sees a new event:

- [02-22 14:30] [evt_cb001] context-bro/stackoverflow.com (page_context): How to fix lifetime errors in Rust

Context Bro uses the same webhook ingest endpoint as any other integration. No special API is needed:

Context Bro Extension
│ Extract page → compile template → JSON payload
POST /api/ingest/webhook/<webhookId>
│ Webhook mapping engine → standard Event
Agent Event Stream

The webhook mapping editor transforms the incoming JSON into event fields. Context Bro’s default template produces a payload that works with the default webhook mapping out of the box.

The most common setup: share articles, docs, and code you’re reading throughout the day.

Example scenario — learning Rust:

  1. You browse the Rust Book, Stack Overflow, and GitHub issues
  2. Context Bro auto-shares pages every 15 minutes (allowlist: doc.rust-lang.org, stackoverflow.com, github.com)
  3. You select a confusing code snippet → Ctrl+Shift+K → instant share
  4. Your agent notices you’ve been reading about lifetimes for an hour → sends a message explaining elision rules in your own context
  5. Agent saves a “Rust learning progress” memory node, linking today’s topics

Why this works: The agent already knows you want to learn Rust (from conversations). Context Bro tells it what you’re reading right now — closing the gap between intent and action.

Social Stream Ninja (SSN) is a browser extension by Steve Seguin that aggregates live chat from 120+ platforms (YouTube, Twitch, TikTok, Facebook, Discord, and more). It’s the go-to tool for streamers who need cross-platform chat integration.

SSN can forward chat events directly to a AnySoul webhook — no Context Bro needed:

What SSN provides:

FeatureDescription
120+ platform supportYouTube, Twitch, TikTok, Facebook, Kick, Discord, and more
Normalized messagesDifferent platforms unified into a standard JSON format
Custom triggersMatch messages by content, user role, donation amount, regex patterns
Custom actionsHTTP POST, WebSocket push, OBS overlay, TTS, MIDI signals
Real-time processingMutationObserver-based capture with dedup and batching

Trigger → Action examples:

TriggerActionAgent Use Case
Any chat messagePOST to AnySoul webhookAgent follows live chat
Super Chat ≥ $5POST to webhookAgent tracks community engagement
Message matches !question *POST to webhookAgent answers viewer questions
New subscriberPOST to webhookAgent records community growth
Raid eventPOST to webhookAgent notes channel interactions

Setup with AnySoul:

  1. Create a webhook endpoint in Agent Settings → Webhooks with api_key auth
  2. In Social Stream Ninja, configure the webhook URL and include the key in the JSON body (SSN may not support custom headers — see Webhook: Integrating Social Stream Ninja)
  3. Configure your mapping to extract platform, username, message, and event_type

Your agent then sees a live feed:

- [20:00] [evt_ssn01] youtube/alice (message): That explanation was so clear!
- [20:01] [evt_ssn02] twitch/bob (donation): $10 — "Love the content, keep it up!"
- [20:02] [evt_ssn03] youtube/carol (membership): New member joined

Context Bro vs. Social Stream Ninja:

Context BroSocial Stream Ninja
FocusStatic web pages + Twitch/YouTube120+ live/social platforms
StrengthPage content extraction (Defuddle + template engine)Cross-platform chat aggregation + triggers
Scheduled sharingYes (Chrome Alarm + allowlist)No
Template engineYes (50+ filters, CSS selectors, Schema.org)No
Custom triggers/actionsNo (agent decides how to respond)Yes (regex, donation threshold, role-based)
Best forKnowledge work, research, learningLive streaming, community management

Both tools share the same insight: your browser is the center of your digital life, and its content is the most valuable context source for AI agents. SSN turns that context into streamer automation; Context Bro turns it into agent awareness.

You can use both simultaneously — SSN for live chat aggregation across all platforms, and Context Bro for everything else (articles, docs, code, selections).

Context Bro includes a template engine extracted from Obsidian Web Clipper (MIT). Templates control the shape of the JSON payload sent to your endpoint.

The default template:

{
"title": "{{title}}",
"url": "{{url}}",
"content": "{{content}}",
"author": "{{author}}",
"published": "{{published}}",
"domain": "{{domain}}",
"description": "{{description}}",
"wordCount": "{{wordCount}}",
"clippedAt": "{{date}} {{time}}"
}

You can create site-specific templates with trigger patterns (e.g. github.com/*/pull/* for PRs) and use CSS selector variables ({{selector:.classname}}) or Schema.org variables ({{schema:@Article:author}}).

See the Context Bro documentation for the full template reference.

Configure automatic sharing for domains you frequently visit:

  1. Open Context Bro Options → Allowlist
  2. Add domains (e.g. github.com, *.reddit.com, docs.python.org)
  3. Open Options → Schedule
  4. Set interval (5 min – 2 hours) and mode:
    • Focused tab — only shares the tab you’re actively viewing
    • All allowed — shares all open tabs matching the allowlist

Pages are deduplicated by content hash — if the page hasn’t changed since the last share, it’s skipped.