User Agent Switcher and Manager Spoofs and mimics browser's User-Agent strings
Support Development
PayPal ● 
Bitcoin Address: 1sM2BrTH8BRgt3quiASK8TmYSafutNvDo
Ether Address: 0xCf9eaAc56992e12EB61fD46342172d4EEff5C8e4

"User Agent Switcher and Manager" spoofs browser's User-Agent string. This string is used by web servers to provide content to you. Based on your browser type and operating system, web servers might provide different HTML content (like a different styling or lower resolution images) or JavaScript engine might operate differently. Using this extension you can alter your browser's "User-Agent" string and hence get the content for that particular device of interest. One particular use case of this spoofing is to get the mobile content instead of the desktop content for faster and lighter web browsing.


  1. What is "User-Agent Switcher" extension and how does it work?

    This extension when activated performs two actions: 1) It overwrites the navigator.userAgent string to return a custom string provided by the user. 2) It alters the "User-Agent" header that is sent with each request. The former method is used in JavaScript libraries to detect user's browser type and operating system. The latter one is used by web servers to detect these two parameters. When the extension is active, both of these approaches are applied to prevent the actual "User-Agent" string from leaking.

    Note: When the extension is not active (disabled from the toolbar popup by pressing the "Reset" button), there is no network monitor and hence extension does not use any resource.

    Note: This extension only alters "User-Agent" string for "HTTP://", "HTTPS://" and "FTP://" schemes. So locally loaded HTML pages with "FILE://" scheme can pass the extension's protective script and will display your actual "User-Agent" string (there is no security or privacy concern as this type of pages cannot send any request to an actual web server).

  2. What's new in this version?

    Please check the Logs section.

  3. How can I set a custom or pre-defined "User-Agent" string?

    After installing the extension, a toolbar button is added to your browser. Simply open the popup by pressing the toolbar button. Wait until all "User-Agent" strings are loaded (this may take a few seconds). You can filter the strings by "Browser" type or by "Operating System". Also, you can use the "custom" filtering box to find matching strings. When a "User-Agent" string is selected from the list, it will be inserted in the provided text-box where you can edit its content. When the content looks good, press the "Apply" button.

  4. Sometimes, new versions of the "User-Agent" strings for a particular browser is not on the list. Can I manually set it?

    Yes, simply paste the string in the provided text box in the popup and press the "Apply" button.

  5. How can I reset the "User-Agent" string back to the default one?

    Open the toolbar popup and press the reset button. You will notice the color of the toolbar will change. Also, the tooltip is tagged with the "disabled" label.

  6. What is my current "User-Agent" string?

    To find the currently used "User-Agent" string hover your mouse pointer over the toolbar button. The string and enable or disable status is displayed in the tooltip.

  7. Although the extension is active, still in the incognito mode, my actual "User-Agent" string is displayed. How can I fix this?

    Go to the extension manager and allow this extension to work on the incognito mode.

  8. Can I apply user-agent string spoofing only for certain domains?

    As of version 0.1.3, it is possible to have "white-list", "black-list", or "custom" modes of operation. In the "black-list" mode, the custom user-agent string is set for all tabs except the ones that are listed on the options page. In the "white-list" mode, however, the user-agent string is only set for those tabs that their hostname matches with one of the hostnames listed in the options page. In the "custom" mode, user-agent string is resolved from the user-defined JSON object. If there is a key in the JSON object with the hostname, then user-agent will be the value of this key, otherwise, the user-agent string will be the default user-agent string of your browser or the one that is set from the toolbar popup.

  9. What is the meaning of the "custom" mode and how can I use it?

    In the custom mode, the extension uses user-defined JSON object to match user-agent strings. If the provided JSON object has a key that is equal to the top-level hostname (e.g.:, the value of that key is used as the user-agent string for all the requested originated from this hostname. If no key is found, the extension ignores the tab which means the default user-agent string or the one that is set in the popup is used.

    To have a random user-agent string, provide an array of user-agent strings instead of a single one

    Use "*" to match all hostnames

      "": "useragent-string-1",
      "": "useragent-string-2",
      "": [
      "*": "useragent-string-for-all-hostnames"

    Note that as of version 0.2.9, the user can define an array with ““ key which provides the list of all hostnames that are going to use a single random user-agent string for the current browser session. So if a hostname is defined in this list, then the extension randomly selects a user-agent string once and will use this random string until the browser restarts. If you need this behavior for all random arrays in your JSON object, then add “*” in your ““ array instead of the hostnames. See this example:

      "": [
      "_": [""]

  10. What is the meaning of the "window" button in the toolbar popup?

    As of version 0.2.4, you can define a user-agent string for the current window only. This means that all other browser windows will use the global setting except the current window. This may help you organize your work better. Note that you can have as many user-agent strings per-window as you want. To reset the window-based UA settings use the "Restart" button in the toolbar popup. This button basically restarts the extension and hence all the temporarily settings are wiped. So the window based settings is not a permanent setting (there is no way to find a window when a browser is restarted). It works until all the tabs in the window are closed or the extension gets reloaded. To differentiate the window with a defined user-agent string, this extension adds a badge notification to the toolbar area. For the users of black- and white-list modes, please read the options page to make sure how the black- and white-lists are affected by the newly introduced window-based user-agent string setting.

  11. Can I set the empty user-agent string?

    Use the "empty" keyword as the user-agent string since blank input is not a valid entry. The extension will use the empty string when this keyword is used.

  12. This extension doesn't seem to support wildcard matching. How can I set a user-agent string for both top domain and all its sub-domains?

    Wildcard matching is not a native method in JavaScript and it will reduce the extension performance. Instead, this extension supports the exact matching option. If this option is checked, you will need to insert all the sub-domains in the list for the matching to work. If the option is unchecked, the extension will automatically consider all sub-domains while matching is applied. For instance if is in the white or black list then will also be matched.

  13. Is there a way to easily switch between different modes (black-list, white-list, and custom modes)?

    Use the right-click context menu over the toolbar button to switch between different modes. For instance, if you use the custom mode, then to temporarily disabling the extension, switch to the default black-list mode.

  14. How can I know if the user-agent string of the current tab is set? What is the meaning of the toolbar icon colors?

    As of version 0.3.2, the toolbar uses 3 different colors. The gray color is used when the extension is entirely disabled. This means that no network observer is installed and the extension has no effect on the browser whatsoever. When it is colorful, then there is at least one observer on the network, either because there is a window with a custom user-agent or you are on the white/blacklist modes. When the color is orange, it means the current tab is using the user-agent string that is set from the toolbar popup. When the icon has a half blue color, it means the tab is being ignored and the default user-agent string is used (for all internal pages, pages that have not been refreshed after the extension gets enabled, and the ones that are either in the protected list or the white/blacklists). If you are using the JSON mode, the color should be orange and the user-agent string is shown in the tooltip area.

  15. Although the extension sets the userAgent key of the "navigator" object, though there are other keys that need to be replaced to fully spoof the navigator object when the browser type changes for instance from Firefox to Chrome or vice-versa

    This extension spoofs more than just the userAgent key. Currently "navigator.userAgent", "navigator.appVersion", "navigator.platform", "navigator.vendor", "navigator.product", and "navigator.oscpu" are all spoofed. If this is not enough for your case, go to the options page and define a custom new key for the parser object. Whenever a user-agent string is set that is matched to a key of this parser object, this extension bypasses the default parser and uses the object that is returned by the parser object. You can define as many keys as you would like. If there is a key that needs to be deleted, use the "[delete]" keyword as the value. All the keys that are defined in this object will be appended or replaced by the navigator object. This tool allows you to customize the navigator object the way you would like to

  16. What does this extension do with the port number in the hostname part of the URL (e.g.

    In both white- and black-list modes, the extension considers the port portion when resolving the hostname. For this example, the hostname would be "". So to match with a hostname, you need to have the hostname written with the port part. For custom mode, the extension checks both hostnames with the port section and hostnames without the port section. Basically both "" and "" rules match the pages.

  17. In the custom mode, I have several hostnames that need to have a single user-agent string. Can I group them all in the JSON object?

    Yes, you can create a key that is a comma-separated list of hostnames. See the example on the options page of the addon for more info.

  18. I need to create a user-agent string based on the browser's current user-agent string. Is it doable with this extension?

    Yes, this extension supports "${}" placeholders. Basically whatever is inside ${} expression, will be passed to a sandboxed navigator object and the result replaces the expression. To use the current user-agent string use ${userAgent} or to use the current platform use ${platform}. You can have multiple ${} expressions in your user-agent string definition too.

Matched Content


Please keep reviews clean, avoid the use of improper language and do not post any personal information.
  • <a> Defines an anchor.

    Example: <a href="">a sample link</a>

  • <pre><code> Syntax Highlighting (Supported languages: Bash, JSON, HTML, JavaScript, and CSS).

    Example: <pre><code class="javascript">var foo = 'bar';</code></pre>

  • <strong> Defines bold text
  • <blockquote> Defines a long quotation
  • <caption> Defines a table caption
  • <cite> Defines a citation
  • <em> Defines italic text
  • <p> Defines a paragraph
  • <span> Defines a section in a document
  • <s> Defines strikethrough text
  • <strike> Defines strikethrough text
  • <u> Defines underlined text
  • <br> Defines a single line break; can be used alone and don't need an ending tag


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 on