
Research
/Security News
CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29+ Packages
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.
@different-ai/opencode-browser
Advanced tools
Browser automation plugin for OpenCode. Control your real Chrome browser with existing logins and cookies.
Browser automation plugin for OpenCode.
Control your real Chrome browser with existing logins, cookies, and bookmarks. No DevTools Protocol, no security prompts.
Chrome 136+ blocks --remote-debugging-port on your default profile for security reasons. DevTools-based automation (like Playwright) triggers a security prompt every time.
OpenCode Browser uses a simple WebSocket connection between an OpenCode plugin and a Chrome extension. Your automation works with your existing browser session - no prompts, no separate profiles.
npx @different-ai/opencode-browser install
The installer will:
~/.opencode-browser/extension/opencode.json to use the pluginAdd to your opencode.json:
{
"plugin": ["@different-ai/opencode-browser"]
}
Then load the extension in Chrome:
chrome://extensions~/.opencode-browser/extension/| Tool | Description |
|---|---|
browser_status | Check if browser is available or locked |
browser_kill_session | Take over from another OpenCode session |
browser_navigate | Navigate to a URL |
browser_click | Click an element by CSS selector |
browser_type | Type text into an input field |
browser_screenshot | Capture the visible page |
browser_snapshot | Get accessibility tree with selectors |
browser_get_tabs | List all open tabs |
browser_scroll | Scroll page or element into view |
browser_wait | Wait for a duration |
browser_execute | Run JavaScript in page context |
Only one OpenCode session can use the browser at a time. This prevents conflicts when you have multiple terminals open.
browser_status - Check who has the lockbrowser_kill_session - Kill the other session and take overIn your prompts, you can say:
OpenCode Plugin ◄──WebSocket:19222──► Chrome Extension
│ │
└── Lock file └── chrome.tabs, chrome.scripting
Two components:
No daemon. No MCP server. No native messaging host.
v2.0 is a complete rewrite with a simpler architecture:
npx @different-ai/opencode-browser install (cleans up old daemon automatically)opencode.json:- "mcp": {
- "browser": {
- "type": "local",
- "command": ["npx", "@different-ai/opencode-browser", "start"],
- "enabled": true
- }
- }
+ "plugin": ["@different-ai/opencode-browser"]
"Chrome extension not connected"
"Browser locked by another session"
browser_kill_session to take over"Failed to start WebSocket server"
npx @different-ai/opencode-browser uninstall
Then remove the extension from Chrome and delete ~/.opencode-browser/ if desired.
MIT
Inspired by Claude in Chrome by Anthropic.
FAQs
Browser automation plugin for OpenCode (native messaging + per-tab ownership).
The npm package @different-ai/opencode-browser receives a total of 229 weekly downloads. As such, @different-ai/opencode-browser popularity was classified as not popular.
We found that @different-ai/opencode-browser demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.

Research
/Security News
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Security News
ENISA’s new package manager advisory outlines the dependency security practices companies will need to demonstrate as the EU’s Cyber Resilience Act begins enforcing software supply chain requirements.