Use case · Extension
Browser extension with per-origin agents
Manifest V3 reference scaffold. One extension, a different Linda agent per SaaS — Zendesk, Salesforce, HubSpot, GitHub. Same-origin DOM access, content script injection.
@linda/extensionMV3 content scriptsper-origin config
The shape
You want one Chrome extension that adds a Linda agent to every SaaS tool your team uses. A different persona per origin. Same-origin DOM access. No server.
Why an extension instead of a script tag
- Don’t own the page. Script tag requires putting Linda on the site — fine for your own product, impossible for Salesforce.
- User installs. Extension lives in the user’s browser. You distribute the extension; your users add Linda capability to apps they already use.
- Per-origin config. One extension, different configs per host.
Scaffold
packages/extension/
├── manifest.json # MV3, minimal permissions
├── src/
│ ├── content.ts # injects Linda into matching origins
│ ├── background.ts # service worker — handles config + key storage
│ ├── popup.html # the extension popup
│ └── configs/
│ ├── zendesk.json # "you are a Zendesk macro assistant"
│ ├── salesforce.json
│ └── hubspot.json
└── public/icons/
The content script is ~50 lines: load Linda, look up the config for
location.host, attach.
Patterns
Vertical copilot. Build one extension targeting one vertical (e.g. sales) with configs for the 5 tools that vertical uses. Sell it.
Internal-only. Distribute via your org’s Chrome Enterprise policy. Ship internal admin co-pilots without modifying the SaaS tools you use.
Open source. Ship the scaffold under MIT and let your community write configs.
What you don’t get
- You can’t bypass site auth. The user must be logged in for the agent to see anything. (This is a feature.)
- You can’t read across origins. Extensions can request cross-origin permissions, but Linda doesn’t need them — the content script runs inside the page.
Runnable example: https://github.com/neul-labs/linda/tree/main/packages/extension
FAQ
Will this pass Chrome Web Store review?
Yes. The scaffold uses minimal permissions, declarative content scripts, and no remote code execution beyond the LLM call (which is configured by the user).
Can it inject into any site?
By default, only the sites you list in manifest.json. Use the activeTab permission for user-triggered injection.
Ship an agent-driven flow this afternoon.
Install Linda, paste a config, and your form turns into an agent that fills its own inputs.