Model or dataset
aeonfun/opendia avatar
aeonfun/opendia

OpenDia: Browser Automation for AI Models via MCP

Connect your browser to AI models. Just use Dia on Chrome, Arc or Firefox.

1,924 stars163 forksJavaScriptMIT

At a glance

What is it?
OpenDia is an MIT-licensed open-source tool that exposes a browser as an MCP server, letting any MCP-compatible AI client control Chrome, Firefox, or Arc using the user's existing sessions, cookies, and installed extensions. It is local-first and self-hosted, positioned as the open alternative to managed products like Perplexity Comet.
Who is it for?
Developers who already use Claude Code, Cursor, or another MCP-compatible client and want to automate browser tasks without switching tools are the right audience. OpenDia's key constraint is that Firefox extensions load as temporary add-ons and are removed when the browser restarts, making Chrome or a Chromium browser the practical choice for persistent use.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The Specific Gap OpenDia Fills

Most browser automation tools start from a fresh browser session with no login state, no saved cookies, and no access to installed extensions. This means every automated task must re-authenticate before doing anything useful, and wallets, password managers, or site-specific extensions installed in the user's normal browser are unavailable.

OpenDia addresses this by connecting AI models to the user's actual running browser rather than launching a headless instance. When an AI model directs OpenDia to post to a social platform, access bookmarks, or fill a form, it does so through the session that the user is already logged into. The README lists the consequences: existing logins for Twitter/X, LinkedIn, and Facebook are usable directly, browser history is accessible, MetaMask and other wallet extensions work as they normally do, and OAuth-gated services stay authenticated.

The intended users are developers and power users who want to automate browser-based workflows from within an AI coding tool or assistant, particularly those testing web applications with Cursor who want to verify signup flows using real authenticated sessions rather than anonymous test accounts.

The MCP Architecture: Extension Plus Server

OpenDia consists of two parts that must both be running. The first is a browser extension installed in Chrome, Firefox, or any Chromium-based browser. The extension exposes a local WebSocket or HTTP interface that the second component can reach. The second component is the MCP server, which is a Node.js process that starts with the npx opendia command and acts as the bridge between an AI client and the browser extension.

Any AI client that speaks the Model Context Protocol can connect to the MCP server once it is running. The README documents Claude Desktop, Claude Code, Cursor, Grok Build, and ChatGPT as tested clients. It also lists Windsurf, Zed, Continue, Cline, Goose, and Open WebUI as clients that should work because they implement the protocol.

For Claude Desktop, the configuration is:

json
{
  "mcpServers": {
    "opendia": {
      "command": "npx",
      "args": ["opendia"]
    }
  }
}

The same JSON block applies to Cursor by adding it through Settings, then MCP. For ChatGPT, the README documents using npx opendia --tunnel to open an ngrok tunnel, then adding the resulting URL as a connector.

The MCP server runs locally by default. There is no cloud relay, and browser data never passes through an external server.

Installing the Browser Extension

The browser extension is distributed as a zip file in the repository's releases, with separate builds for Chrome/Chromium and Firefox. The v1.1.0 release provides opendia-chrome-1.1.0.zip and opendia-firefox-1.1.0.zip.

For Chrome and Chromium browsers, the README documents extracting the zip to a local folder, navigating to chrome://extensions/, enabling Developer mode, and using Load unpacked to select the extracted folder. The same steps apply to Edge, Brave, and Opera.

For Firefox, the process uses about:debugging#/runtime/this-firefox, then Load Temporary Add-on, then selecting the manifest.json inside the extracted folder. The README includes a specific note about this path: Firefox loads the extension as a temporary add-on that is removed when Firefox restarts. The README calls this a Firefox limitation for unsigned extensions. This means Firefox users must reinstall the extension every time the browser is restarted, making Firefox impractical for persistent use.

A .dxt file is available in the releases for Claude Desktop. Double-clicking it installs the MCP configuration automatically without requiring manual JSON editing.

Grok Build Integration and Plugin Support

OpenDia ships a first-class plugin for Grok Build under the plugins/opendia/ directory, with a marketplace index at .grok-plugin/marketplace.json. The README documents two setup options for Grok Build.

The recommended path uses the Grok plugin marketplace:

bash
grok plugin marketplace add aeonfun/opendia
grok plugin install opendia --trust

The trust flag is required to enable MCP functionality. Details and troubleshooting are in plugins/opendia/README.md inside the repository.

For teams deploying across multiple devices or building scalable workflows, the README introduces Cloudflare Workers as an alternative server path. The Cloudflare Workers option uses Cloudflare Voice Agents and Durable Objects to handle WebSocket connections from browser sessions globally, with Cloudflare's Workers AI providing speech-to-text and text-to-speech natively. This path requires only an LLM API key, not a locally running Node.js process.

What the Browser Agent Can Actually Do

The README documents workflows across four categories. In content and social media, the examples include summarizing articles from the browser's reading history and posting a thread, reading recent bookmarks and creating a categorized list, and checking conversation bookmarks on social platforms. Each relies on the AI model navigating pages the user is already authenticated to.

In productivity and research, the examples include browsing email for urgent items, collecting GitHub repository visits from browsing history, and extracting points from research papers currently open in a tab. These tasks use the browser's stored data without any separate login step.

For development and testing, the README focuses on Cursor users: testing a web app's signup flow with screenshots at each step, filling forms with test data and verifying validation behavior, and using a connected wallet extension to interact with a DeFi interface. This is the workflow where the extension's access to installed extensions, rather than just cookies, provides a concrete advantage.

The README also lists visual customization as a use case, applying CSS themes to documentation sites or modifying page contrast for readability. These are client-side page modifications that do not persist across page loads.

Limitations That Affect Real Workflows

The Firefox temporary-add-on constraint is the most practical daily limitation. Firefox's policy for unsigned extensions means the extension must be reinstalled on every browser restart. There is no workaround documented in the README, and the limitation is attributed to Firefox rather than OpenDia's design.

The README notes that OpenDia includes specialized bypasses for Twitter/X, LinkedIn, and Facebook for what it calls anti-detection. The existence of these bypasses implies that without them, automated browser control is detectable by those platforms, which could affect account standing depending on each platform's terms of service.

The ChatGPT integration requires running a tunnel via ngrok, which routes some traffic through ngrok's infrastructure. The README describes this under the Auto-Tunnel mode. For users who want fully local operation with no external traffic, this means ChatGPT is not a viable client.

There is also a version mismatch to be aware of: the README in the extension installation section references opendia-chrome-1.1.0.zip, while the latest release listed in the repository metadata is v1.1.1. Users should verify which release to download from the current releases page rather than relying on the version numbers in the README.

OpenDia vs Perplexity Comet

The README opens by calling OpenDia the open alternative to Dia and Perplexity Comet, and near the top recommends Perplexity Comet for users who are not technical or who are new to MCPs. Perplexity Comet is a managed, hosted browser AI product from Perplexity. It handles configuration, hosting, and updates as a service, removing the requirement to run a local Node.js server or install a developer-mode browser extension.

OpenDia's trade-off against that approach is full local execution with no cloud relay, an open-source codebase that can be inspected and self-hosted, and compatibility with any MCP client rather than a single product's interface. Users who need the Grok Build integration, the Claude Code integration, or support for a custom local model via the Cloudflare Workers AI path will find those configurations documented in OpenDia and not in Perplexity Comet's offering.

For engineers comfortable running npx commands and editing JSON configuration files, OpenDia's MCP architecture provides flexibility that a managed product cannot match. For users who want browser automation without any local configuration, the managed alternative is the more practical starting point.

Editorial conclusion

Developers who already use Claude Code, Cursor, or another MCP-compatible client and want to automate browser tasks without switching tools are the right audience. OpenDia's key constraint is that Firefox extensions load as temporary add-ons and are removed when the browser restarts, making Chrome or a Chromium browser the practical choice for persistent use. Anyone not familiar with MCP configuration should first try Perplexity Comet, which the README itself recommends for non-technical users. Verify that your AI client supports MCP before installing, and check that the npx opendia command resolves correctly on your machine.

Frequently asked questions

Does OpenDia work with Claude Desktop?

Yes. The README documents Claude Desktop as a tested and supported client. Configuration requires adding the npx opendia MCP server block to the Claude Desktop configuration file and restarting the application. A .dxt file available in the releases automates this step.

Can OpenDia access my existing browser cookies and sessions?

Yes. The README identifies this as the key advantage over headless browser automation tools. Because the extension connects to the user's running browser rather than launching a new isolated session, existing authentication state, cookies, wallet extensions, and browsing history are all accessible to the AI model.

Does Firefox support OpenDia permanently or only as a temporary add-on?

Only as a temporary add-on. The README notes this is a Firefox limitation for unsigned extensions: the extension is removed when Firefox restarts. For persistent use, Chrome or a Chromium-based browser is the practical choice.

Official sources

  1. aeonfun/opendia on GitHub
  2. License: MIT
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/aeonfun-opendia.svg)](https://hysenlabs.com/projects/aeonfun-opendia)