Use the Tampermonkey tag if running Tampermonkey or Violentmonkey, use the "Greasemonkey-4" tag if running that engine on Firefox. For all other engines, or multi-engine scripts, use the "Userscripts" tag. Userscripts primarily refers to JavaScript extensions for web browsers, used to automate or customize actions, the layout, or other aspects of the user experience.
Userscripts primarily refers to javascript extensions for web browsers. Userscripts can automate or customize actions, and/or they can change the layout or even "mash up" different websites.
Userscripts are commonly installed in browsers using a userscript manager add-on/extension, but some browsers have limited native support.
On most browsers, when using a userscript manager, userscripts have access to an extended API that allows some actions that are not permitted for ordinary JavaScript code running in the page scope. However, that extended API is significantly less powerful than what's available to actual browser extensions.
Userscripts are available in most browsers:
- Dolphin: Userscript managers: Tampermonkey.
- Edge: Userscript managers: Tampermonkey.
- Firefox: Userscript managers: Tampermonkey, Violentmonkey, and Greasemonkey add-ons.
- Google Chrome: Natively supported. Userscript managers: Tampermonkey, Violentmonkey.
- Internet Explorer: Support via Trixie extension.
- Opera: Natively supported. Userscript managers: Tampermonkey.
- Safari 4-: Supported after installing SIMBL and GreaseKit.
- Safari 5+: Supported via NinjaKit (Japanese site, download link in English).
- Safari 5.1+: Supported via Tampermonkey.
- UC Browser: Userscript managers: Tampermonkey.
Scripts meant for Greasemonkey or Tampermonkey should be tagged greasemonkey-4 or tampermonkey, instead.
If the userscript is meant to be cross-browser compatible (not always worth the trouble), use both userscripts and tampermonkey.
Userscript API changes:
For quite some time, the APIs provided by userscript managers were reasonably cross-compatible. Those APIs were synchronous, with the exception of AJAX calls. However, Greasemonkey 4.X re-wrote the APIs it presents to userscripts such that they were asynchronous, using Promises, which makes scripts using those APIs not backwards/cross-compatible. The Greasemonkey project provides a polyfill which userscripts can @require
in order to write scripts using their new APIs which will function in other userscript managers.
Tampermonkey has begun to provide support for these Promise based APIs.