Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Tampermonkey, ViolentMonkey and GreaseMonkey are all available in Firefox.

Can anyone provide a comparison?

Edit for the early commenters: as I stated, all of the above are available on current Firefox. Greasemonkey also has been ported to webextensions. Hence my question.

Edit 2:

TamperMonkey is closed source source and apparently embeds Google Analytics. Either of those immediately kill it for me, considering the kind of access the addon gets.

ViolentMonkey "does not collect user data at the moment", but also allows for it in the privacy policy.

I think I'll stick with GreaseMonkey.



Here's a short relevant Reddit thread:

https://www.reddit.com/r/firefox/comments/9uemks/greasemonke...

Though I wrote Greasemonkey originally, I have no idea regarding the answer to this question. What I can say is that Anthony Lieuallen is a super standup guy, which is why I handed it over to him and Johan way back. Based on that alone, I personally continue to use GM whenever I have a need.


Thanks! GreaseMonkey was so crucial back during my Ingress days!


Thanks Aaron!

GreaseMonkey is still pure open source, MIT licensed. For a while we had some general telemetry built in, but that was back in the 3.x days, so not for over two years now.


Even an MIT licensed extension can be changed on a whim and pushed through update - and browsers make it deliberately inconvenient to run a local extension checkout long-term.

I have a chip on my shoulder here, because i was the victim of when the de-facto analogous extension for CSS, Stylish, silently changed ownership and violated my privacy without ever prompting me to accept any new ToS.

No userscript or extension has ever seemed sufficiently interesting for me to risk that ever happening again,

(PSA: Make sure you do not have Stylish installed.)


And, if you're looking for a Stylish alternative, pick up Stylus: https://addons.mozilla.org/en-US/firefox/addon/styl-us/


This is why my extensions are limited to highly trusted and highly essential ones like ublock. I just can't trust extensions to be good now and good forever after. Its way to tempting for an extension developer to sell it on to an ad corp.


uBlock is not highly trusted. You are looking for uBlock Origin.


This is a real life case of "why should I have to chanher my name? He's the one that sucks!" I wish gorhill would get over it and change the name so naive users stop getting victimized by uBlock.


> ViolentMonkey "does not collect user data at the moment", but also allows for it in the privacy policy.

That reddit thread is outdated. ViolentMonkey's actual privacy policy unambiguously states that they do not collect any user data.

https://violentmonkey.github.io/privacy/


> "does not collect user data at the moment"

There are limited record of edit history of ViolendMonkey's privacy policy [0] that I can locate, so don't know if it's true in the past, but I don't see this statement in ViolentMonkey privacy policy now [1].

[0] https://github.com/violentmonkey/violentmonkey.github.io/com... [1] https://violentmonkey.github.io/privacy/


One difference: Tampermonkey is closed source while ViolentMonkey and Greasemonkey are MIT licensed.


I've stuck with Greasemonkey myself too. My reason is a bit more esoteric -- I use a user script which adds a dicebear.io/adorable.io avatars based on usernames on HN (I find it easier to remember commenters by the avatar/username combo rather than just username), and Greasemonkey seems to have been the only one out of the three to successfully bypass HN's CSP rules and show the actual hotlinked images.


Can you please name or link the avatar script? Search fu is failing me.



I think when Firefox moved to WebExtensions and GreaseMonkey was too late to adapt their code, TamperMonkey had quickly made the switch supporting the full GM API and more. I had seen after a while and GM had become even more limiting in terms of what you could do, so I just made the switch to TamperMonkey. Didn't notice the privacy policy so far, will have to re-evaluate my options now.


I am an author of many userscripts, and I personally tell my script users to switch from GreasyMonkey when they have problem using my script. The reason is GM inject the script a little bit differently since GM 4 was released, which breaks some hooking techniques so script will break.

As for myself, I use ViolentMonkey because it is more reliable (compared to GM) and open source.


I use Violentmonkey because unlike Tampermonkey, it’s open source, and unlike Greasemonkey, it supports old user scripts that use the synchronous `GM_…` functions such as `GM_getValue` and `GM_setValue`.

Greasemonkey 4, released in 2017, introduced a new asynchronous API `GM.…` (e.g. `GM.getValue`), and dropped support for the equivalent synchronous `GM_…` functions: https://www.greasespot.net/2017/09/greasemonkey-4-for-script.... There also used to be some functions such as `GM_registerMenuCommand` that Greasemonkey 4 provided no equivalent to. However, it looks like Greasemonkey’s polyfill (https://github.com/greasemonkey/gm4-polyfill) has expanded its support for the old `GM_…` functions since I last checked, so maybe migrating old scripts I use to Greasemonkey 4’s new API won’t be as difficult and limiting as the last time I considered it. I probably won’t bother unless I have a reason to switch away from Violentmonkey, though.

The user script I use that still uses the old APIs is Webcomic Reader, if you’re wondering. It preloads previous and next comics to speed up browsing, and restyles sites to show hidden per-comic bonuses like title text. It’s at https://github.com/anka-213/webcomic_reader, and its issue about potential Greasemonkey migration is at https://github.com/anka-213/webcomic_reader/issues/130.


As you noted, TM is closed-source. However, GM is very sparsely developed after the switch to webextensions—still no script management interface, as far as I can see. TM whips it in terms of features. VM appeared recently in the FF land, and my guess is, it's for those who hope for faster development—however dunno if those hopes are realized, feature-wise.


> dunno if those hopes are realized, feature-wise

Violentmonkey has all the features I need. I don’t know what features Tampermonkey has, but I can’t think of much more I could ask for in Violentmonkey. VM has:

• A dashboard page where you can remove, disable, or update user scripts.

• A CodeMirror editor with syntax highlighting for editing installed scripts.

• A ‘+’ button to create a new script for the current site.

• Support for scripts that use the GM_… functions like `GM_setValue` and `GM_registerMenuCommand`.

• Site-specific actions in the extension menu: enable or disable scripts for this site, run those scripts’ menu commands, or search Greasy Fork for published scripts that apply to this site.


I only use extensions that don't have minimized/obfuscated code in the xpi file. So that leaves only GreaseMonkey. There's zero technical reason to minimize extension JS code, since it's already compressed in xpi (zip) file.

It's not a silver bullet (I caught people who managed to put a tracker into non-minimized code too, in the past.), but minimized code is hard to compare for chnages and review during updates, so that's a no no for me.


Usage stats from Mozilla AMO:

ViolentMonkey: 50K TamperMonkey: 418K GreaseMonkey: 478K


VM appeared quite recently, compared to the other two. Its usage has been growing for some time, but dunno about the last months. My guess is, it's a fresh open-source option for those who don't like the current glacial-rate development of GM—but not sure how it is in terms of features.


GreaseMonkey is the "legacy" option. ViolentMonkey runs on Chrome. TamperMonkey runs on Firefox.


Both you and the article recommend not to run ViolentMonkey on Firefox. Why?


I think it's stale info -- ViolentMonkey used to be unavailable on Firefox.


From tfa: “you simply install ViolentMonkey (on Chrome, use TamperMonkey for other browsers)”

Greasemonkey is old news.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: