This section contains some of the most frequently asked questions. If you miss something, just send me a message.
Q100: Where can I get Tampermonkey (TM)?
There are different versions of TM. most propably it's the best to take a look at the download page here.
Q101: How do I work with TM?
TM consists of 4 different parts:
A mouse clicks opens the context menu, a right mouse click opens the alternative context menu created by chrome itself
The context 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 links to the TamperFire page (if enabled at the options), a forced scripts update check and a button to easily donate some dollars or euros for my extraordinary work. ;)
You can open this at the alternative context menu by clicking at options. The first tab shows all installed scripts. Click at the icon at the table to perform some actions like moving,
and deleting a script.The second tab allows you to modify TM's
. You can also enable some disabled features like TamperFire.The third tab offers script import and export functionality. For your first experiments use the "Export to document" and "Open File" Buttons and follow the displayed instructions. The "SandboxFS" is a folder of you chrome's profile folder. Use this button only to backup your scripts locally. The Textarey can be used to backup or restore some data manually.
This one is only viewable if TamperFire is enabled. You can open it by clicking at the first entry of the context menu ("x scripts available"). The "Available Userscripts" tab can be used to search for userscripts for manually entered URLs. The settings tab displays some information about the TamperFire database and allows forced updates.
Q102: How to install new scripts to Tampermonkey?
There are 3 different ways to achieve this:
Goto userscripts.org, search for a script open the scripts page and click at the install button.
Goto TMs options page and click at the "edit" column of the "<New script>" Item. Enter the source and save it.
Goto Chromes extensions page, enable the "Allow access to file URLs" checkbox at the Tampermonkey item. After this create a file with the file ending ".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?
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
to get the *cludes editor shown at the image above.Now you can select i.e. a entry from the "Original includes" section
and add them as exclude by clicking at "Add as User excludes"
. The entry now appears at the "user excludes" section
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
. 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
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
in front of the according heading. For example you have to uncheck "Original includes" if you want to disable the directive "htt*://*facebook.com/*".
Q104: What is the @user-agent tag for and how does it work?
Sometimes pages use a string that is sent by your browser to determine the layout or feature set that will be show to you. For example if you using Chrome on Linux it is almost impossible to sell an item on eBay cause it is not possible to upload images. So what can TM do for you now?Just install this script that overwrites your user-agent string to look like a Windows Chrome and everything will be working fine again:
// @name UA | eBay
// @namespace http://ebay.de/
// @version 0.1
// @description enter something useful
// @match *://*.ebay.tld/*
// @user-agent Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1284.0 Safari/537.13
// @copyright 2011+, You
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.
Q201: Is Tampermonkey compatible to NotScripts?
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.
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"
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, NotScripts, Smooth Gestures 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, cause I don't know at what pages your userscripts will run and therefore TM must be able to inject them at every page.But you're right, userscripts and extensions can harm your privacy and your computer. But I think more evil is that Chrome does not display at what pages a userscript wants to run on when installing it natively. 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. :)
Q400: I want to edit/view the values stored by a userscript. How can I do that?
Right-Click at the TM icon and choose "Manage Extensions", enable the Developer Mode if not already done and search for the Tampermonkey entry. Click at the "background.html" link and choose "Resources". Now there is a tree view at the left side, choose "Databases", "tmStorage" and "config". Now all config entries will be displayed.You can alter them by clicking at "tmStorage" again and typing some SQL commands at the right part of the window.
Some useful commands:
'DROP TABLE config' - removes all data and resets TM to factory defaults
'SELECT * FROM config' - show all rows
'SELECT * FROM config WHERE name LIKE "TamperScript"' - shows the Tamperscript config entry
Q401: Facebook is painful slow. What can I do?
This is a known issue caused by the iframe support of TM (and by the way Greasemonkey too ;)
). To avoid TM to check and most probably run scripts at unwished iframes just goto to this page
, say "thank you" to the authors ;)
and copy the RegExpr version to your clipboard. Then open the TM options page, goto "Settings" and paste the list to the "Forbidden Pages" text area.
Q402: I want to use an external editor to edit my scripts. How can this be done?
Click 'Enable' and 'Relaunch now' at the bottom of the page.
Q404: What is the unsafeWindow retrieval setting and how does it work?
in normal have to start by a click at some button.
Unfortunately in Chrome 27 (or to be more accurate: since WebKit 537.35) the common way to retrieve the unsafeWindow is not working anymore.
But not every Userscripts needs this type of interaction, some Scripts just inject stylesheets (i.e. the scripts from userstyles.org)
Finally the correct answer of the question, what option should be set for the 'unsafeWindow retrieval method', depends on the scripts you're using
and maybe the pages you're visiting.
After setting the "Config Mode" to "Beginner", you can choose between 4 different options that will be described below.
Note: At the moment this is available at Tampermonkey Beta only.
This is the most secure option.
If no unsafeWindow can be retrieved the safe window will be used,
All scripts that are able to run as extension in Chrome will work.
Tampermonkey can inject the scripts into the page context.
Before you now say "Good, I'll use this option" - wait!
Another downside is, the execution contexts are the same.
This can cause i.e. the page's Jquery to be overwritten by a Userscript requiring Jquery too and bad written Userscripts may
leak global variables and functions to the page context.
A proxy is a object that intercepts all attempts to access a attribute of an object and modifies them as required.
I wrote a proxy that gives the Userscripts access to all attributes of the unsafeWindow, except the ones that are secured by Chrome itself.
Question 403 describes how to do this.
I've seen some glitches at popular pages when this option is set.
So, just try it out and file bug reports to the page or the Chromium developers if something isn't working. ;)
Your userscripts can access the unsafeWindow and are still secured by separated execution context.
This option runs the execution environment at the page context but wraps the scripts into a separated world so that global variables and
required scripts like JQuery can not break the page.
Please note that this is a very new implementation and it therefore still might contain bugs or trigger issues.
Nevertheless, this seems to be the way to go in the future.
If you discover a problem, please file a bug report here.
'Auto' uses the 'Sandbox' option at the moment.
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 specific frames.
That's why as long as frames should be supported, Tampermonkey needs to be injected into every page.
After the injection it asks the main application if a script is supposed to run at that URL and then 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 issue at Chrome's bug tracker.
Just login with you Google Account and click at the star in front of the issue heading. Thanks.
Q500: XYZ is my native language. How can I translate TM to XYZ?
C:\Users\*UserName*\AppData\Local\Google\Chrome\User Data\Default\Extensions (Windows)
~/.config/chromium/Default/Extensions (Linux - replace chromium with google chrome if necessary)
Enter the folder that has "dhdgffkkebhmkfjojejmpbldmpobfkfo" in its name and enter the folder that is named according to TM's version too.Now you can see a folder "_locales".More information how internationalization of extensions works can be found here:
Please translate the file "messages.json" and send it to me. If you attach an additional file called "about.txt" it will be delivered from now on with the extension.
Q600: Ahhh, someone wants my console output. Where can if find that?
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 Extensions", enable the Developer Mode if not already done and search for the Tampermonkey entry. Click at the "background.html" link and choose "Console".
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 choose "Console".
Last but not least every web page has a console. This one can be opened by "Ctrl-Shift-J" when viewing the page.