Please wait...
by Jan Biniok
This section contains some of the most frequently asked questions. If you miss something, just send me a message.

Q100: How do I install and uninstall Tampermonkey (TM)?

Both is pretty easy:

In order to install Tampermonkey take a look at this video:

If you want to uninstall Tampermonkey then please check this video:

Q101: How do I work with TM?

TM consists of three outstanding parts:
  • the button
    A mouse clicks opens the action menu, a right mouse click opens the alternative context menu created by chrome itself
  • the action menu
    The action menu show what scripts are currently running. You can enable or disable then by clicking at the green/red LED icon. Additionally there are some extra items to force a scripts update check and a button to easily contribute some dollars or euros for my extraordinary work. ;) ( video tutorial)
  • the options page
    You can open this at the alternative context menu by clicking at options. The first tab shows all installed scripts. Click at the script name to edit and setup your scripts. ( video tutorial)
    There is second tab that allows you to modify TM's settings. Tip: adjust the Config mode options to see more settings. ( video tutorial)
    The third tab offers script import and export functionality to Zip files and JSON documents.

Q102: How to install new scripts to Tampermonkey?

There are different ways to achieve this:
  • Go to this page to learn about the different script sources. If you found a page then search for a script, open the script's page and click at the install button. ( video tutorial)
  • Search GitHub Gist and Github for userscripts. Then click it at the view raw link. ( video tutorial)
  • You can also search for scripts at your preferred search engine. Then search for a link that ends up on .user.js and click it
  • If you have a URL to a script, just paste it to Chrome's Omnibox.
  • Go to TMs options page and click at the edit column of the <New script> item. Enter the source and save it. ( video tutorial)
  • Go to Chromes extensions page, enable the Allow access to file URLs checkbox at the Tampermonkey item, create a file with the file extensions .tamper.js and drag-and-drop it to Chrome.

Q103: Is it possible to overwrite or extend a scripts includes and/or excludes? How is this working?


Click at the image to view full size

Sure, just go to the options page and click at the script's name you want to modify. A new tab is opened that shows the script's source code. Click at the "settings" tab (1) to get the *cludes editor shown at the image above.

Now you can select i.e. a entry from the "Original includes" section (2) and add them as exclude by clicking at "Add as User excludes" (3). The entry now appears at the "user excludes" section (5) and the script will not run at this page anymore.

If you want to make a script run at a page it originally shouldn't you have to use the "Original excludes" section (4). Again select a entry, click a the button bellow the section and the entry will appear at "User includes".

You can also add, edit or remove entries that are manually added by using the buttons (6) below the according User section ("User includes", "User matches" and "User excludes").

If you want to override the orginal includes completely just uncheck the checkbox (7) in front of the according heading. For example you have to uncheck "Original includes" if you want to disable the directive "htt*://*facebook.com/*".

Q105: How can I sync all scripts installed at Tampermonkey to another browser?

It is very easy to sync your scripts. Please follow this procedure to enable the sync feature:
  • Go to TM's Dashboard/Options page and select the 'Settings' tab
  • now set the 'Config Mode' to either 'Beginner' or 'Advanced'
  • search for the 'Script Sync' section and
  • Choose your favorite sync service (see below)
  • Finally you need to 'Enable Script Sync' and press the 'Save' button
Tampermonkey supports the following sync services:
  • Google Drive: You need a Google Account in order to use this service. Once enabled Google asks whether Tampermonkey is allowed to store data at a special folder which solely contains app data.
  • Dropbox: A Dropbox account is needed for this. Once enabled Dropbox asks whether Tampermonkey is allowed to store data to your Dropbox.
    Note: if this service is enabled Tampermonkey will not run scripts at several Dropbox related URLs anymore!
  • WebDAV: You can use any WebDAV server, but you may need to enter credentials to access it. Please also have a look at TamperDAV. It contains some proprietary features which speed up the process and allows script editing with your own external editor.
    Note: Tampermonkey will not run scripts at the server's URLs anymore!
  • Browser Sync: If it's available for your browser, then it uses your browser's internal service to transfer information between all Tampermonkey instances. Please note that you have to be signed in to your browser and that the amount of data that can be synced is very limited. That's why Tampermonkey needs a publicly accessible URL to sync your scripts. To be clear on that: only scripts that are downloaded from a web server or that contain a valid @downloadURL tag are processed. For that purpose both, the http and https protocol can be used.

Q106: How can I export and import my scripts?

Import and export of scripts is pretty simple. Just go to TM's Dashboard/Options page. If you see a 'Utilities' tab then go there, otherwise set the 'Config Mode' to either 'Beginner' or 'Advanced' in order to see it.
At this tab there are different sections depending on your Tampermonkey version and browser support:
  • Cloud: You can import and export zip files via cloud service. Please check Q105 for the cloud service list.
  • Zip: You can import and export zip files from and to your harddisk. Please click 'Export' to save a zip file or 'Choose File' to select an archive for import.
  • File: You can import and export JSON text files from and to your harddisk. Please click 'Export' to save such a file or 'Choose File' to select a file for import.
  • Textarea: You can import and export zip files from and to a text area input element. Please click 'Export' to fill the textarea and copy its value or 'Import' after you've pasted a JSON document.
  • URL: In case Tampermonkey is unable to detect (due to a failing script URL detection or because it's disabled) a userscript, then you can force Tampermonkey to import it from this URL here.
Chrome Extension

Q200: Is it possible to install scripts as native Chrome extension even though Tampermonkey is installed?

Yes it is. If you want to install a script just click at the install link. TM now asks you whether to install the script in TM or native in Chrome.
Click at the image to view full size

Q201: Is Tampermonkey compatible to NotScripts?

Yes it is, but due to the fact that NotScripts destroys the whole javascript environment at the page context you have to either allow embedded scripts at every page a userscript should run on or add an options to the NotScripts configuration file. This can be done by simply adding the following code to CHANGE__PASSWORD__HERE.js.
You can find more information here.

Q202: Tampermonkey missing, there is no icon and no script is running. Where are my scripts and what happened?

In order to show native userscripts at the options page Tampermonkey's permissions have changed to include the "management" permission. Chrome automatically disables extensions that need more permissions after an update, but show a bar like this:

To re-enable Tampermonkey do the following steps:
  • Click the wrench icon on the browser toolbar.
  • Select "Tools".
  • Select "Extensions".
  • On the Extensions page, click Enable for Tampermonkey to re-enable it
Now a dialog like this should appear and you can double check the new permissions.

Q203: Tampermonkey extension shows a warning. Why?


TM checks whether HTTP headers like "user-agent" or "referer" can be modified by userscripts. If now another extension like a user agent spoofer or an script blocker like ScriptNo modifies this request too the warning is displayed. This should not occur that often when the option "Allow HTTP headers to be modified by scripts" is set to "Yes" (Default) or even never if it is set to "No"

Q204: How can I allow Tampermonkey access to local file URIs?

Local file access can be given to an extension at the extension management page. Go to the settings page (chrome://settings/) and choose extensions at the left.

Now search for the Tampermonkey entry and enable the "Allow access to file URIs" checkbox. ( video tutorial)

Q205: How do I setup the Native Script Import?

Tampermonkey can help you to import your previously as an extension installed userscripts. The only things that TM needs to know is where it should search for the source of that extensions.

The following table will help you to identify your browser profile folder at your operating system. So just open your file manager an check what path fits for your system!

There are two wildcards that you have to know:
  • <user> is your user name
  • <extension> is the ID of the Tampermonkey extension you're using:

    Tampermonkey dhdgffkkebhmkfjojejmpbldmpobfkfo
    Tampermonkey Beta gcalenpjmijncebpfijmoaglllgpjagf
    Tampermonkey Beta Operamfdhdgbonjidekjkjmjaneanmdmpmidf
    Tampermonkey Legacy dcgolfjdmhddbdbpipnjnakbblbojcnf
And this is where the extensions are located:

Linux /home/<user>/.config/google-chrome1/Default/Extensions/<extension>/
Windows XP C:\Documents and Settings2\<user>\Local Settings3\Application Data4\Google\Chrome\User Data\Default\Extensions\<extension>\
Windows Vista/7/8 C:\Users\<user>\AppData\Local\Google\Chrome\User Data\Default\Extensions\<extension>\
Windows V/7/8
(Opera Next)
C:\Users\<user>\AppData\Roaming\Opera Software\Opera Next\Extensions\<extension>\
Mac OS /Users/<user>/Library/Application Support/Google/Chrome/Default/Extensions/<extension>/
1 might also be chromium
2 'Documents and Settings' might also be a localized name like 'Dokumente und Einstellungen'
3 'Local Settings', 'Lokale Einstellungen', ...
4 'Application Data', 'Anwendungsdaten', ...

Q206: Tampermonkey tells me that my Chrome profile is broken. What does that mean?



This issue was earlier caused by a bug in Chrome at the chrome.storage API. Chromes internal database at Windows OSes somehow got corrupted.

Why do I see this warning?

Nowadays the bug should be fixed but some users are still reporting that they (sometimes) see this the "broken profile" message.
Since I do not see the warning myself I can only guess what's going on and I need some help to find the root cause.

How does Tampermonkey detect that the profile is broken?

As already mentioned Tampermonkey is using Chrome's API to store values like the settings and your scripts. That's why it runs a simple test to detect issues. It stores a value and reads it back. If an error condition is set, the read value differs from the written one or the whole process hasn't finished within 3 minutes then TM claims that something is wrong.

How can I help?

Some users reported that this can be seen when Chrome was updated, when they move or copy files and others see it all the time. My first guess was that maybe just the first storage hit fails. In order to workaround this I reworked Tampermonkey Beta to re-run the test five times before assuming the worst.

If you see this issue or have seen it, then please report the details at the forum. Please include information like:
  • Can you reproduce this issue with TM Beta?
  • How often have you seen this issue?
  • Was Chrome updated recently?
  • Did you run heavy file operations (copy/move) in parallel?
  • Does this happen only after or while your OS is still booting?

You just want to get rid of the warning?
  • right click at the TM icon and choose 'Manage' to open the extensions page (chrome://extensions/).
  • enable the 'Developer Mode' at the upper right if not already done and
  • search the page for the Tampermonkey entry
  • click at the 'background.html' link and
  • select the 'Console' tab
  • at the bottom of the window (where the cursor is blinking) insert:
    localStorage.setItem('#brokenprofile', 'nowarning');

You want to workaround the issue, whatever it takes?

OK, but there are major disadvantages:
  • Every time TM starts in incognito mode the (incognito) config will be emtpy!
  • This way is not heavily tested by me
  • When a new TM version is released it's possible that you need to run some other commands in order to get your data back.
You still want to go that way? Alright, Follow the steps above but enter this:
localStorage.setItem('#storage', 'sql'); window.location.reload()
and press enter

Q207: My scripts are gone and Tampermonkey moans that Chrome wiped the extension database. What's going on here?

In order to solve the issue described above at Q206 Chrome now tries to automatically correct any corruption by removing corrupted parts.
Depending on the severity of the corruption it might restore some data, otherwise the database is just empty.
Since this can also affect TM's data it tries to detect this process and notify you of the possible loss of all or some settings and scripts.

Q208: My scripts are only executed after several reloads, the console prints "pagejs missing".

This is caused by a bug in Chromium that causes Tampermonkey's content scripts to run in the wrong order. Unfortunately the order matters and due to timing constraints it is not possible to wait longer for the other content script than already done.
This bug "only" happens when the extension is updated from a previous stable version lower than 4.18.

To fix the issue simply:
  • Disable Tampermonkey extension
  • Restart browser (make sure that all browser processes are gone, better restart the computer)
  • Enable Tampermonkey extension
  • Restart browser
Disabling the extension seems to cleanup things and the content scripts are executed in the right order again.

If it still doesn't work, then please
  • export your settings and scripts (you can try importing them into the BETA version first to be on the safe side) and
  • re-install Tampermonkey and
  • import the backup again.

Q300: Tampermonkey can access every page that I visit! Is TM evil?

...like any other chrome extension that has https and http access!
This includes extensions like AdBlock, ScriptSafe, Avast Online Security and due to the fact that it is not displayed explicitly when they are downloaded, any userscript that is installed as native Chrome extension.

If you're interested in this, you can find the access information a the right column of every extension at the Chrome store by searching for "This extension can access".
Tampermonkey needs to be able to run at every page, because it doesn't know at what pages your userscripts will run and therefore needs to be able to inject them into every page.

But you're right, userscripts and extensions can harm your privacy and your computer. Nevertheless I think more evil is that Chrome does not display at what pages a userscript wants to run on when install it is installed as native extension. From this point of view TM even can bring you some security back, at least if you believe me, that I'm not interested in any of your data. If not, you can open the console (Ctrl-Shift-J) and choose the network tab to investigate what network communication is done. :)

Q301: Chrome says "Danger: Malware Ahead!". Is Tampermonkey infected with Malware?

No, Tampermonkey is not infected. Chrome shows this message because the options page tries to load a favicon from a page that Google suspects to be evil. So this just means that you have script installed that has such an malicious page in its @includes and Tampermonkey loads the favicons from there to give you an overview where your scripts will run.

Click at the image to view full size
In order to fix this issue:
  • note down what URL is mentioned at the warning page,
  • click at 'Advanced' and allow Chrome to continue,
  • then check your scripts step by step which one includes the page mentioned at the warning page and
  • finally remove this @include at the editor.

Q302: How do I setup userscript-triggered downloads?


First, please notice that downloading files to your harddisk may be security relevant!
Malware might have an easy job once it is downloaded. So please make sure that you only allow the download of non-executable files.

There are a few steps necessary to enable the download feature: ( video tutorial)
  • Go to the options page
  • Scroll down to the Downloads section
  • Double-check the Whitelisted File Extensions setting to not contain file extensions of executable files
  • Select Browser API at the Download Mode option
  • A notification may come up, you need to click at it and to click confirm at the permission grant dialog
Note: Even though GM_download is a powerful function, it's finally more or less just convenience for the userscript autors.

Q303: Tampermonkey says one of my scripts is blacklisted. Why?


This happens cause you either added the source URL to the Manual Userscript and @require Blacklist or it was added to the list maintained by me. You can find the list including the reason for blackisting at the GitHub repo.

If you still want the script to run then you can either increase the Severity Level or disable the remote list this way:
  • Go to the options page
  • Make sure Config Mode is set to Beginner or higher
  • Scroll down to the BlackCheck section
  • Modify the Blacklist Source or Severity Level
Note: If you're a script author and think I made a mistake, then just send me an email or open an issue at GitHub.

Q304: What permissions are necessary to run Tampermonkey and why?


Tampermonkey requires the following permissions. Some of them might be optional at some browsers and need to be granted only when used.
  • notifications
    for GM_notification, Tampermonkey related notifications
  • tabs
    to find the active tab and navigate, create and close tabs in general
  • idle
    to not show update notifications if your playing a game
  • webNavigation
    install userscripts, check URLs for matching scripts
  • webRequest+webRequestBlocking
    install userscripts, check URLs for matching scripts, modify request details for GM_xmlhttpRequest
  • storage
    to store your userscripts
  • unlimitedStorage
    to store many of your userscripts 🤓
  • contextMenus
    for @run-at context-menu
  • chrome://favicon/
    to easily get the favicons of pages
  • clipboardWrite
    for GM_setClipboard
  • cookies
    GM_xmlhttpRequest, GM_cookies
  • <all_urls>
    to run your userscripts at every page and to allow them to modify the page
  • downloads
    GM_downloads, storing Tampermonkey backups
In Chrome these permissions translate to:
  • Read your browsing history
  • Display notifications
  • Modify data you copy and paste
Especially the first one looks a little bit strange. In fact it's not possible for Tampermonkey to get access to your browser history when it is installed. In theory Tampermonkey could access the history of all currently open tabs and store "new" history once installed, but this is neither needed nor done. However, because of this fact the Chrome team maybe thought that printing a too broad warning is better than a too flat one. There also is a bug report for this.

In Firefox this translates to
  • Access your data for all websites
  • Input data to the clipboard
  • Download files and read and modify the browser’s download history
  • Display notifications to you
  • Access browser tabs
  • Store unlimited amount of client-side data
  • Access browser activity during navigation

Q305: I'm using Chrome and Tampermonkey keeps coming back after uninstallation. Why is this?


Chrome has a "feature" that allow third-party software (which is not related to me) to instruct Chrome to install extensions. There are legit use-cases like a desktop software that needs an extension being installed, but also malware can make use of this.

That's why please check the preferences file and/or Windows registry keys and remove all unwanted entries.
If the entries re-appear, then the problematic software is still at your PC!

Windows users please open the registry editor and check these two keys:
32-bit Windows: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
64-bit Windows: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions

Tampermonkey's (stable) ID is "dhdgffkkebhmkfjojejmpbldmpobfkfo".

Important: I'd suggest to check your system for malware and viruses.

Q400: I want to edit/view the values stored by a userscript. How can I do that?

Open Tampermonkey's Dashboard and click at the script's name. Click at the 'Storage' if present and check or modify the stored data as needed. If there is no 'Storage' tab, then the script has no data stored.

Q401: Tampermonkey slows down my computer. What can I do?

This is a known issue caused by the iframe support of TM (and by the way Greasemonkey too ;)). In order to avoid TM to check and most probably run scripts at unwished iframes you can do a lot of different things:
  • No global includes!!!
    Try not to use scripts that @include all pages (http://* and https://*) cause these scripts will run at every tab, every frame and every advertisement.
    Note: Tampermonkey outlines such scripts by this icon at their sites column.

  • Make TM not run at social buttons
    Open TM's options page, make sure the Config mode is at least set to Beginner, go to Settings and extend the Blacklisted Pages text area:
    For example by this Facebook exclude regular expression: http://userscripts-mirror.org/guides/395
    and/or by others like:


  • Exclude advertisements
    You can try your own excludes based on this:


Q402: I want to use an external editor to edit my scripts. How can this be done?

Please take a look at the tutorials section to learn how to achieve this: http://forum.tampermonkey.net/viewtopic.php?p=1832#p1832 or try TamperDAV.

Q403: How do I enable the experimental Javascript feature?

This is pretty simple. Just go to chrome://flags.

Now a page with all experimental Chrome featues is shown - search for 'Javascript'.

Click 'Enable' and 'Relaunch now' at the bottom of the page.

Q405: Tampermonkey seems to run at every page instead of only those where scripts are supposed to run. Why?

Unfortunately Chrome does not allow code injection into frames at the right time.
That's why Tampermonkey needs to be injected into every page, because only pre-defined content scripts will be executed at document-start for sure. After the injection, it asks the main application whether to run a script at this URL, and if not, it unloads itself to free all resources.
You can help to improve this and tell the Chrome developers how important this feature is for you by starring this and this issue at Chrome's bug tracker.
Just login with you Google Account and click at the star in front of the issue heading. Thanks.
Support Development

Q500: XYZ is my native language. How can I translate TM to XYZ?

Thanks! :) This is pretty easy.

Just clone or fork the i18n repository from Github, apply your changes and send me the file or create a pull request.

More information how internationalization of extensions works can be found at Google's Extension Development Documentation.

Tip: you can attach an additional file called 'about.txt' that will be delivered from now on with the extension.

Q501: My native language is already supported and I have no idea how to write javascripts. How can I support you ?

You can use TM and report bugs if you've found one, make a small contribution . Thanks. :)

Q600: Ahhh, someone wants my console output. Where can if find that?


Before getting the output you have to enable debug output.
Just right-click at the Tampermonkey icon, choose Options and set Logging Level to Debug. ( video tutorial)

There are 3 different kinds of consoles in TM.
  • First the background page console. The background page is the main part of TM. You can get the output this way: right click at the TM icon and choose "Manage", enable the Developer Mode if not already done and search for the Tampermonkey entry. Click at the "background.html" link and select the "Console" tab. ( video tutorial)
  • The second one is the option page console. You can open it this way: right click at the TM icon and choose "Options". At the new tab press "Ctrl-Shift-J" and select the "Console" tab.
  • Last but not least every web page has a console. This one can be opened by "Ctrl-Shift-J" when viewing the page. ( video tutorial)
Environment specific questions

Q700: Tampermonkey reports a problem with Dolphin.


You'll see this message if Tampermonkey detects that its scripts are successfully injected into the page but can't communicate back to the Tampermonkey add-on. This problem is caused by a Dolphin bug. So if this problem persists, then you might want to notify them of the problem by sending them a mail to support@dolphin.com with your Android, Dolphin and WebView version.

Possible work-arounds are listed below.
  • If you're using Android 5.0 or higher then make sure you're using the latest version of the WebView component.
  • Try to enable Dolphin Jetpack, either it's part of your Dolphin browser itself or you can download it at the Play Store
  • Use the (outdated) Dolphin test APK provided by the developers. Please use this APK only for testing!
  • Downgrade your WebView component. You can get different versions from here. Please be careful when installing APKs from third-party pages.