Open In Open current page or link in another browser
Support Development
PayPal ● 
Bitcoin Address: bc1qh7juzrxrawpr65elm4qs285m5rdhnhgsn7h2jf
Lightning Address: [email protected]
Your Input Matters
The "Open In" extension enhances your browsing experience by adding an action button to integrate your browser with an external browser (Chrome, Edge, Firefox, Safari, or Opera). This button enables you to open the current webpage in a different browser of your preference. Additionally, when you right-click links, a context menu item is included to open these links in alternative browsers. You can also optionally select text content to extract links and open them in the external browser. You have the flexibility to customize your destination browser through the options page, and you can even instruct the extension to open links in the chosen browser based on left, middle, or right clicks.



  1. What is "Open In" extension and how does it work?

    "Open In" provides a straightforward solution for opening links in a different browser with the ease of a single click. This collection of extensions empowers you to effortlessly redirect any link from your Chrome, Opera, or Firefox browser to a browser of your preference. Currently, the link-opening functionality is compatible with Firefox, Opera, Safari, Yandex, Microsoft Edge, and Internet Explorer.


    Photo Editors:

    Media Players:

    General Purpose:

    PDF Readers (YouTube Preview):

    If you would like support for another browser or application, please leave a comment in the review section to discuss its possibility.

  2. How does the "Open In" extension work?

    All "Open In" extensions employ a minimal NodeJS native client to locate and run your preferred browser for link redirection. Once you've installed the extension and attempted to open a link for the first time, you will be automatically guided to a page providing instructions on how to install this native client. It's important to note that the native client is a mandatory component for the proper functioning of the extension. Due to security restrictions, no extension can directly access external processes, such as another browser, which is why the native client, often referred to as a bridge, is required to execute native commands. Thankfully, installing the native client is a straightforward process, and you can find detailed instructions in FAQ3 for easy setup.

  3. Which web browser should I select for page navigation?

    The choice of a web browser largely depends on your specific needs and preferences. Typically, it's advisable to assign each browser a distinct purpose based on various factors, such as privacy concerns or the need for speed. You may want certain browsers to store your login credentials for convenience, while others should maintain your anonymity.

    Additionally, you can install the "open-in" extensions across all your browsers, ensuring link sharing from one browser to another. It's worth noting that each "open-in" extension offers the option to automatically close the tab that has been sent to the destination browser.

    For in-depth information about browser security and privacy considerations, please refer to the blog post on Best Browsers for Privacy and Security-Focused.

  4. How can I install the native client?

    To set up the native client, follow these steps:

    1. Open native-client/releases in a browser tab. Locate the latest version of the client for your operating system and download it.
    2. Extract the downloaded file to a local directory once the download is finished.
    3. For Windows OS:
      • Find the "install.bat" file.
      • Right-click on it and choose "Run as administrator."
      • Wait for the script to complete the file copying process.
    4. For Linux and Mac OS:
      • Open a terminal window in the root directory of the downloaded file.
      • Run the following command: "./"
      • Allow the script to copy files and display a successful message.

    The installer script's primary function is to generate a manifest.json file and place it in two different locations. This enables Opera, Chrome, and Firefox browsers to locate the native client seamlessly.

    The native client itself is a minimal NodeJS application serving as a bridge between "Open In" and the native environment. It's important to note that the script will attempt to use any existing NodeJS installation by default. The bundled NodeJS executable will not be copied if NodeJS is found on your system. However, if no NodeJS instance is detected, the packaged NodeJS executable will be utilized. Therefore, if you have NodeJS installed, ensure it is up to date with the current version.

  5. How does the extension proceed with opening links in a different browser?

    The method employed varies depending on your operating system. Here's how it works:

    • On macOS: The extension uses the command open -a firefox link to open the specified "link" in a browser such as Firefox.

    • On Linux: The extension invokes the browser by providing the browser's name and the link URL.

    • On Windows OS: The extension searches for the browser in the "%ProgramFiles%" directory and launches the browser's executable with the URL as an argument.

    If, for any reason, an error occurs during this process, the response differs based on your browser:

    • In Chrome and Opera, you'll receive an alert box.
    • In Firefox, an error message appears in the browser console, which you can access by pressing (Ctrl + Shift + J) to open the console.

  6. What's new in this version?

    Please check the Logs section.

  7. Can I use a keyboard-mouse combination to send links to a different browser?

    Starting from version 0.1.4, all "open in" extensions can be configured to personalized keyboard-mouse-click combinations for opening links in an alternative browser. For example, you can set up specific keyboard-mouse-click combinations within this extension's options page to send links to the Firefox browser. It's important to note that this feature is deactivated by default to avoid conflicts with page functions. Enabling this feature will override the default action if one is defined.

  8. How can I install the native client?

    Instruction on how to install the native client will be displayed once the toolbar button is clicked. If you want to see it in action watch these two short tutorials

    Linux and Mac:

  9. How can I test the functionality of my "Open in VLC" extension?

    The "Open in VLC" extension offers two user interface elements. One of them is the action button, essentially a toolbar button that appears exclusively on pages where it is supported. In the Chrome browser, this toolbar button is a permanent fixture on the toolbar but remains disabled if the current page does not support it. To check whether the extension detects media on a webpage, observe the toolbar's appearance; in Chrome, the icon should display in full color when media is detected.

    If the action button is enabled, click it to open the media in the VLC player. For instance, you can test this functionality using this example link mov_bbb.mp4.

    In cases where the action button is inactive, you can still access the option to open the media in the VLC player. Right-click on the media player within the page, and you should find an item that allows you to open the media in the VLC player. Please note that this option is available only when the media's URL can be detected. You can test this feature with the example by opening html/html5_video.asp in a browser tab and right-clicking over the player.

  10. Is it possible to construct the native client project instead of relying on the prebuilt releases?

    To build the native client project yourself, refer to the instructions provided in the .travis.yml file. This file contains details on how to generate the native client's *.zip files through the build process. For additional insights and to observe the actual build process in action, you can review the log file from the latest release on GitHub, which is accessible at

  11. The "Open in Internet Explorer" extension opens links in a new window rather than in new tabs. How can I resolve this issue?

    To address this, follow these steps:

    1. Open your Internet Explorer browser.
    2. Access the options page by clicking on the gear icon.
    3. Within the general tab, locate and click the "Change how webpages are displayed in tabs" button.
    4. Adjust the setting related to "Open links from other programs in."
    5. After making this adjustment, restart your Windows system to ensure that the changes take effect.

  12. Is this important whether I use the x86 or x64-bit system when installing the native client?

    When it comes to the native client installation, the system architecture does play a role. Here's what you need to know:

    • On Windows OS, we utilize the 32-bit version of NodeJS, which is compatible with 32-bit and 64-bit systems. You don't need to worry about the architecture in this case.

    • However, on Mac and Linux, only 64-bit systems are supported by default. If you happen to have a 32-bit system, it's important to ensure that you have NodeJS installed before proceeding with the native client installation. This way, the system's NodeJS executable will be used.

    If you've already installed the native client and need to make adjustments based on your system's architecture:

    • Access the container folder where the native client is located.
    • Paste the appropriate NodeJS executable into this folder to align it with your system's architecture.

  13. When installing the native client, I encountered the message "No such file or directory" after running the command into the terminal. What am I doing incorrectly?

    If you encounter the "No such file or directory" message during native client installation, it's likely due to your terminal's current directory not being set to the root of the extracted folder. To fix this, follow these steps: 1. Use the cd directory-path-here command to switch your terminal's directory. In Mac OS, you can type cd, followed by a space. Then, drag the folder you want to set as the current directory and drop it into the terminal application. Afterward, press the Enter key. 2. To confirm that your current directory has been successfully changed, type pwd and press Enter. This command will display the current directory in the terminal. 3. With the correct directory set, you can now retry the installation process following the provided instructions.

  14. What is the "Open in PDF viewer" extension, and how does it work?

    The "Open in PDF viewer" extension is designed to enhance your PDF viewing experience. It introduces a context menu item that appears when you right-click links containing at least one PDF-related keyword in their URLs. When you select this menu item, the extension initiates the download of the PDF file and then proceeds to launch your default external PDF viewer application, referencing the downloaded file. This approach allows PDF files to be opened directly in an external application, bypassing the browser's default PDF viewer. It's worth noting that many external PDF viewers, such as Adobe Acrobat Reader, do not support direct URL opening, which requires the download step before sending the link to the external application.

    Similar to my other "Open in" extensions, this one also requires the native-client wrapper for optimal functionality. To set up the native client, you can follow the instructions provided in the following video tutorial.

    Furthermore, this extension supports an action button activation when the top-level URL contains a PDF-related keyword. The top-level URL is sent to the external PDF viewer when this button is pressed. Notably, the extension only executes the external PDF viewer if the downloaded file is indeed a PDF file. If it's not a PDF, the extension handles the file based on its MIME type, akin to double-clicking a file after a download is completed.

    For detailed instructions and a comprehensive review, visit

  15. Is it possible to utilize "open in" extensions on Chrome OS?

    Unfortunately, no. Chrome OS does not permit the installation of the native client, which means that these extensions cannot function on this operating system.

  16. Can I automate the process of sending links matching a specific pattern to an external browser?

    With the latest update of the open-in extensions, a new feature is introduced on the options page. This feature allows you to create a list of preferred hostnames, specifying which domains you want the extension to open automatically in the destination browser with a simple left-click on the links. You can define this list as a comma-separated collection of domains. Consequently, when you click on a link whose domain corresponds to an entry in your list, the link will be opened in the destination browser.

  17. What is the newly introduced managed storage and how can I use it?

    Managed storage is used by administrators to set the default list of hostnames and URLs to be opened by the external browser on all computers on this network. For instance for the "Open in Chrome" extension that is installed on Firefox browser to open "" hostname in Google Chrome browser, create "{086f665e-6a55-4107-9147-f9a14e72b137}.json" file with the following content and place it in the "ROOT_DIR/ManagedStorage" directory. To find the root directory for your operating system see WebExtensions/Native_manifests.

      "name": "{086f665e-6a55-4107-9147-f9a14e72b137}",
      "description": "managed storage for Open-in-Chrome extension",
      "type": "storage",
        "hosts": [""],
        "urls": []
    Note: "{086f665e-6a55-4107-9147-f9a14e72b137}" is the GUID of the extension for Firefox browser.

  18. Why does the destination browser close itself when I close Firefox (the browser from which the link is sent)? This occurs specifically when the destination browser isn't already open.

    The behavior you're observing is tied to how Firefox operates. When you open the backend NodeJS as a child process, any executable spawned by this NodeJS process remains a child of the parent executable, which, in this case, is your Firefox executable. Consequently, if the destination browser isn't already running, and Firefox initiates it, closing Firefox triggers the operating system to terminate all child processes associated with it. This issue arises exclusively when you launch a process that hasn't been initially started from Firefox on a Windows OS. Unfortunately, at present, there is no known workaround to address this particular issue.

    See FAQ22 for a workaround.

  19. Is it possible to use this extension to open the destination browser in private or incognito mode?

    While these extensions do not directly accept command-line arguments, you can achieve this functionality by creating a batch script. Within this script, you can insert the specific command required to open the external browser with your desired command-line options, such as -incognito for incognito mode. Ensure that the script is designed to read input arguments and pass these arguments to the destination browser.

    Next, navigate to the extension's options page and specify the path to this script as the executable path. By following this approach, the extension will send the links to the script instead of directly to the browser, enabling you to control the browser's behavior, including opening it in private or incognito mode, as defined in your batch script.

  20. What is the Tor network, and should it be used?**

    The Tor network is a system designed to enable users to access the internet anonymously, with the primary aim of safeguarding their identity. The concept involves routing each user request sent to a remote server through multiple intermediary nodes, making it exceedingly challenging for the server to pinpoint the actual client making the request. Native applications are available for Windows, Mac, and Linux to facilitate access to the Tor network. On Android, the equivalent application is known as Orbot. These applications establish connections to the Tor network.

    For local applications on a user's device to use the Tor network, a standardized protocol called SOCKS5 is employed. Desktop applications, such as web browsers, can employ this SOCKS5 protocol to communicate with the Tor client. The Tor client then forwards these requests to the internet, receives the responses, and relays them to the desktop applications. Recognizing that configuring these settings might be somewhat complex, the Tor project offers a user-friendly solution: the Tor browser. This browser embeds an internal Tor client, automating the process of connecting to the Tor network.

    For more information regarding the privacy and security aspects of the Tor browser, you can refer to the Privacy & Security of TOR Browser blog post. Additionally, it's worth noting that you can enhance your online privacy by combining the Tor network with a VPN. In this configuration, the Tor application utilizes your VPN's IP address for external communication. The blog post titled How to Use TOR with a VPN provides step-by-step instructions on setting up a private VPN connection that connects to the Tor network.

    It's essential to be aware that even when your external communication is fully anonymous, your identity can still be potentially tracked through browser cookies or browser fingerprinting. Therefore, it's advisable to install appropriate browser extensions to protect against these tracking methods.

  21. Can I use this extension to launch a URL in a specific Firefox profile?

    To achieve this functionality, I recommend trying out the "External Application Button" extension. You can find more detailed information in FAQ 21.

  22. Is there a way to avoid the closure of all browsers opened by this extension when I close my Firefox browser?

    This behavior is linked to how Firefox manages native applications. To explore a workaround for this issue, I recommend reviewing FAQ #22 in the documentation for my External Application Button extension.

  23. How can I configure policies for open-in extensions on Windows OS?

    To set up policies for open-in extensions, you'll need to establish each policy as a "string value" within the Windows registry. Here's a step-by-step guide using an example to add two URLs to the list of the "Open in Firefox" extension for Google Chrome:

    1. Create a text file and save it with a "*.reg' extension, e.g., "open-in-policies.reg".
    2. Inside the text file, insert the following content as an example:

      Windows Registry Editor Version 5.00
      "hosts"="[\"\", \"\"]"
    3. Save the file.
    4. Double-click the saved "*.reg" file to apply the policies to the Windows registry.
    5. You can use the regedit.exe application to view and edit Windows registries if needed.
    6. Once the file is successfully loaded into the registry, open a new browser tab and enter "chrome://policy" to view the applied policies.
    7. Alternatively, you can also access the background page of the extension to inspect the policies specific to that extension.
    8. To print all the configured policies, use the command:, p => console.log(p)). This command will display all the policies.
    9. To find the names of policies that this extension accepts, you can refer to the schema.json file.

    For further information and details, you can visit the Configuring Apps and Extensions by Policy resource.

  24. One scenario where reverse mode is useful is when you want to open a specific page in a particular browser while directing all the targeted links from that page to your default browser. Below is a guide by markstos:

    I prefer using Firefox for most of my browsing activities, but on Linux, Chrome offers a unique feature that Firefox lacks. Chrome allows you to transform any website into an "app" through the "More Tools... / Create Shortcut / Open in New Window" option. Once created, an app icon appears in the launcher, and the app can be launched independently of the browser, devoid of a browser URL bar or tabs. Essentially, it functions as a standalone application.

    For instance, this feature is exceptionally useful when treating "Fastmail" or "Gmail" as separate apps. It's also valuable for other websites you might want to treat as dedicated "apps," such as Jira, Slack, Google Calendar, or Spotify.

    Typically, when you open external links within these "apps," they open in a new Chrome window linked to the same profile as the app. However, by employing this extension in conjunction with "Reverse Mode," you can whitelist the URLs associated with the "app" and have external links open in Firefox instead. This way, the fact that the "app" is running in Chrome becomes irrelevant.

    This feature may also interest users who find memory-intensive Electron apps like Spotify or Slack to be resource-heavy. Now, these apps can run within an existing browser without the need for yet another large installation of the Chromium project.

    Taking it a step further, I have my personal email "app" configured to open links in a personal Firefox profile, while my work email "app" opens links in a work-specific Firefox profile.

    To manage this, I've set up two distinct Firefox profiles, each equipped with its .desktop file complete with a custom icon. These profiles are launched with unique WM_CLASS values. Consequently, the window manager treats them as entirely distinct Firefox apps, even though there's only one installation.

    Here's a "work" Firefox .desktop file I added to ~/.local/share/applications/firefox-work.desktop:

    [Desktop Entry]
    GenericName=Work Firefox Browser
    Comment=Browse the World Wide Web
    Exec=/usr/lib/firefox/firefox -P Work --class firefox-work %u
    [Desktop Action new-window]
    Name=New Window
    Exec=/usr/lib/firefox/firefox -P Work --class firefox-work --new-window %u
    [Desktop Action new-private-window]
    Name=New Private Window
    Exec=/usr/lib/firefox/firefox -P Work --class firefox-work --private-window %u

    Notice the Icon has been changed to firefox-symbolic which is an alternate icon that allows me to tell apart the two profiles.

    Finally, it seems this app requires calling a single executable on the command line with no arguments, so I added a new bash script in ~/.local/share/bin/firefox-work

    /usr/bin/firefox -P Work --class firefox-work "$1"

    Putting the pieces together I can have a "Work email app" (running in Chrome) that opens links in "Work Firefox".

    For more info visit open-in/issues/6

  25. I'm encountering a "permission denied" error on macOS, even though the native client is installed. How can I resolve this issue?

    To address this "permission denied" error on macOS, follow these steps:

    1. Open Mac's "Security & Privacy" settings.
    2. Navigate to the "Full Disk Access" category.
    3. Add "/bin/bash" to the list of applications that have full disk access.
    4. Next, locate and open the "" script.
    5. Within the "" script, modify the shebang line from "#!/usr/bin/env bash" to "#!/bin/bash". This change directs the "" script to use the bash executable that has been granted full disk access, allowing it to execute any executable regardless of the path.

    You may be able to add the bash executable to the "Files and Folders" category instead.

  26. Is it possible to use regular expressions with the left-click on a link to match more complex URL patterns?

    If your browser supports the new "URL Pattern" API, and the extension is updated to the latest version, then you can use this feature. If it is supported, on the options page, the "URL Pattern" keyword is indicated. On the supported extensions, you can use the following matching patterns:

    • If no special matching group exists, exact URL matching is used.
    • Use "*" (wildcard) to match any character with arbitrary length (e.g. /posts/*).
    • Use the "{...}?" pattern to make the "..." part non-capturing. This makes parts of a pattern optional (e.g.: /books{/old}?).
    • Use the "(Regular Expression)" pattern to take advantage of regular expression matching. This can be used for arbitrary complex matching segments (e.g. /books/(^d)).

    To learn more about "URL Pattern" matching visit Note that this extension silently drops the "URL Pattern" API, and used the old exact matching if there is a syntax error in one of the provided patterns. To check if you have a valid pattern, use this form:

    Pattern Sample

  27. Is it possible to use the "Open In" extension to open a bookmarked page to another browser?

    You can achieve this by following these steps:

    1. Go to the options page of the "Open In" extension.
    2. In the "Comma-separated list of URLs..." section, input the precise URL of the bookmarked page you want to send.
    3. Ensure the option "Consider even top-level navigation" is enabled.

    With these settings in place, the page will be automatically sent to the other browser, even when it's opened from your bookmarks.

  28. What does the "custom script" mean on the options page?

    The "custom script" feature refers to a JS script that runs each time a user clicks within their browser. If, after execution, the current script's dataset contains both "block = true" and "URL = '...'", the specified URL is opened by an external browser. If the dataset includes "close = true", then the source tab get closed by the extension. It is the responsibility of this script to prevent the link from opening in the current browser, which can be achieved using "script.preventDefault()" as an example. You have access to the click event through "script.evt", and you can also access the script itself using "document.currentScript." With this script, you can customize how links are blocked and opened in the external browser. Below is a simple script that opens Google when a user clicks anywhere on the page.

      const script = document.currentScript;
      const event = script.evt;
      script.dataset.block = true;
      script.dataset.url = '';
      script.dataset.close = false;
    Simple example to open all clicked links in the destination browser:
      const script = document.currentScript;
      const event = script.evt;
      if ( {
        script.dataset.block = true;
        script.dataset.url =;
        script.dataset.close = false;

  29. On my extension's options page, there's a feature allowing me to choose a runtime. What are the differences of available options?

    "com.add0n.node" native client relies on NodeJS and is compatible with Windows, macOS, and Linux operating systems. This package includes the NodeJS binary tailored for your OS. It will use this embedded NodeJS if it is not already installed.

    "org.webextension.bun" native client is built upon BunJS and is supported on macOS and Linux platforms. To use this native client, BunJS must be installed on your system separately. The package doesn't bundle native binaries.

  30. How should filters be formatted for the "Force Open in the External Browser" option?

    Filters should be written as a comma-separated list, where each entry converts to a regular expression that matches the entire URL. To block URLs containing a specific word in the hostname, use the pattern *://*word*/*. For blocking a word within the pathname, use *://*/*word*. If you need to create a custom regular expression rule, prefix it with R:. The rule must match the URL from the beginning (http:// or https://). For example, R:ht{2}ps*://.*.go{2} will open on the destination browser. You can view the generated regular expressions by opening DevTools and checking the console tab after saving your settings.

Matched Content



Please keep reviews clean, avoid improper language, and do not post any personal information. Also, please consider sharing your valuable input on the official store.

What's new in this version

Change Logs:
    Last 10 commits on GitHub
    Hover over a node to see more details

    Need help?

    If you have questions about the extension, or ideas on how to improve it, please post them on the  support site. Don't forget to search through the bug reports first as most likely your question/bug report has already been reported or there is a workaround posted for it.

    Open IssuesIssuesForks

    Recent Blog Posts