Tampermonkey® by Jan Biniok

Recent Changes

Resolved issue with GM_notification url property when no onclick listener is set
No longer displaying script modification conflict warnings when there's no conflict
Resolved an issue with Instant Injection mode when a script requires a local file
Addressed problems related to script installation from certain Gitlab URLs
Removed warning about script updates being disabled upon script modification
Restored application of custom CSS to installation pages
Resolved quirks in the darker theme
Corrected 'replace all' functionality in code editor for certain strings
Support for the Tampermonkey Editors extension, which will enable userscript editing at Visual Studio Code Online (vscode.dev)
Modified GM_openInTab to prevent opening new tabs on event page reloads
Fixed crashes when 'Never remember history' or 'Always use Private Browsing Mode' is enabled
Updated Russian translation | thanks to adem4ik
Updated Vietnamese translation | thanks to IoeCmcomc
Updated Japanese translation | thanks to maboroshin and shirayuki
Updated Italian translation | thanks to bovirus
Known Issues
GM_download starts downloads serialized
Firefox >= 78
This release includes significant updates for maintaining Android compatibility. Please report any issues here.
Content-security-policy (CSP) directives are no longer relaxed by default
  • If the page CSP blocks inline injection, a nonce is added to the CSP to allow script injection.
    Otherwise, userscripts are now injected into a JavaScript-mode @sandbox, which might necessitate cloneInto and similar functions for unsafeWindow property modification
  • The previous behavior can be reinstated by setting 'Modify existing content security policy (CSP) headers' to 'Yes'
Firefox 78 is now required, as it can handle the manifest key gecko_android necessary for Android compatibility
Transitioned to a non-persistent event page
Resolved several internal issues that could potentially cause crashes
Refactored version number parser to support ISO format dates
Note: As a result of this change, 1.0-0.3 is now considered a lower version number than 1.0
Fixed window.showDirectoryPicker
Introduced GM_notification tag to overwrite existing notifications
Added GM_notification url property to open a new tab on click (can be cancelled by onClick event via preventDefault)
Notifications now automatically close when the userscript unloads, provided that neither a url nor a tag was specified
Added GM_registerMenuCommand id parameter to update existing commands
Introduced GM_registerMenuCommand title parameter
Added an option to GM_registerMenuCommand to prevent automatic popup closure on click
Fixed GM_download to prevent onload from firing too frequently
Performed rework related to Instant Navigation
User-defined globals are now accepted in ESLint configuration
Enhanced sandbox window addEventListener to support EventListenerObjects
Added script version number when saving a script to disk
Locally modified scripts will not be updated automatically, but can now be reverted through a manual update and confirmation
Fixed GM_xmlhttpRequest FormData key-value order
Adjusted ESLint to allow top-level await
Resolved BSD issue due to incorrect getPlatformInfo response
New GreasyFork script URLs are now detected
Sync now and sync reset are only enabled after changes have been saved
Fixed script search badge mode to display accurate numbers
Tabs can now be scrolled horizontally when there are too many tabs
Search-as-you-type always starts from the current position
Updated Italian translation | thanks to bovirus
Updated Portuguese-Brazil translation | thanks to igorruckert
Updated Japanese translation | thanks to shirayuki
Updated Russian translation | thanks to ACherepkov1989
Updated Turkish translation | thanks to selimsumlu
Updated Chinese (traditional) translation | thanks to 5idereal
Updated French translation | thanks to Juknum
Known Issues
Instant injection mode is currently incompatible with scripts that require local files
A crash may occur when 'Always use Private Browsing Mode' is enabled in Firefox. It is recommended to either disable this setting or downgrade to version 4.19.0
Introduced support for userscript editing at vscode.dev with the Tampermonkey Editors extension
Enabled downloading of cloud backups
Resolved issue with active script count when an embedded frame is removed
Corrected automatic detection mode of the option 'Add GM functions to this or window'
Fixed disappearing 'Yes' value of the 'Modify existing content security policy headers' option
Corrected GM.download(url, name) functionality
Fixed GM_setValue for binary content
Resolved issue with broken userscript link in stack trace
Fixed multiple execution of menu command listeners
Ensured GM_deleteValue deletes values in the background
Enhanced the storage editor to display undefined values
Resolved issues caused by document.write
Performed internal cleanup and rework in preparation for manifest v3
Improved visualization of blacklisted scripts
Updated ESLint to version 8.32.0
Enabled cloneInto, exportFunction and createObjectIn in @sandbox JavaScript mode
Resolved issue with XML viewer when Tampermonkey is enabled
Fixed node argument of GM_addElement in @sandbox JavaScript mode
Improved mobile dashboard view
Fixed export functionality on mobile devices
Ensured GM_openInTab's setParent option works within containers
Closed popup menu after click on Android
Enhanced script installation on Android
Meet Tam, your new assistant for getting started
Display more site icons per script
Search within the editor as you type
Ensure editor search results are scrolled into view
Add confirmation for script deletion in the dashboard when trash is disabled
Ensure TamperDAV script change detection works regardless of boot order
For WebDAV usage, append a trailing slash to collection names as per the specification
Resolve issues related to enabling and disabling sync
Localized extension name and description
Updated Italian translation | thanks to bovirus
Updated Japanese translation | thanks to shirayuki
Updated Chinese (simplified) translation | thanks to gin3715
Updated Russian translation | thanks to Tyemak
Updated Danish translation | thanks to jhertel
Added experimental GM_info.userAgentData with all properties of NavigatorUAData and some "high entropy" values
If you encounter unreliable script injection after this update, then please check this FAQ entry.
Fix GM_unregisterMenuCommand
Fix GM.saveTab
Make @sandbox always default to raw
Make console methods enumerable again
Disable wrappedJSObject compatibility option by default
Internal rework and cleanup
Fix variable access via unsafeWindow in JavaScript sandbox mode
Fix instant injection in combination with document-start scripts
Fix communication with external pages
Fix some CSP issues by injecting the script code earlier
Fix an issue that script updates were disabled on sync triggered change imports
Chrome >= 71, Firefox >= 65
Experimental @sandbox support with possible values 'raw', 'JavaScript' and 'DOM'
  • 'raw' access means that a script for compatibility reasons always needs to run in page context. At the moment this mode is the default if @sandbox is omitted.
  • 'JavaScript' access mode means that this script needs unsafeWindow access. At Firefox a special context is created which should also bypass all remaining CSP issues. Execution in page context is used as fallback at other browsers.
  • 'DOM' access mode means that the script only needs DOM and no direct unsafeWindow access. If enabled these scripts are executed inside the extension context or at any other enabled context otherwise.
Add an option to configure available sandbox modes
Warning: Any option that enables 'DOM' mode is potentially unsecure. Userscripts that run in extension context have almost full extension permissions and can even modify and install new userscripts.
Remove document.addEventListener('DOMContentLoaded', ...) delayed event dispatching for document-start scripts executed later than the event
Remove toSource object prototype compat option
Allow GM_xhr streams to be canceled
Add GM_xhr.upload.onprogress support
Add some more entries to the download file extension whitelist
Add GM_download.details.conflictAction (works only in browser API mode)
Fix @resource SVG handling
Add some more editor shortcuts
Remove GM_setTab in favor of the documented GM_saveTab call
Allow script tabs to be closed via middle mouse click
Add a close button to the header of some more dialogs
Fix script toggle element if darker theme is enabled
Add Macedonian translation | thanks to EntityPlantt
Add Hellenic (Greek) translation | thanks to panos78
Update Chinese (simplified) translation | thanks to iskandarma
Update Portuguese-Brazil translation | thanks to DavidBrazSan
Update Russian translation | thanks to vanja-san
Add an access token revoke button to some more cloud storage types
Note: make sure to sign out from the service first if you want to login with another account.
Show script sync log messages at the settings page
Dropbox: avoid upload of identical content
Use userScript API to execute userscripts
Add container ID to GM_info
Fix script counter at file URLs
Fix sandbox window to have Object.prototype properties
Make GM_xhr multi-account container aware