• Operating Systems & Software
  • Macintoshian Achaia

Current state of content blockers and Safari web extensions on iOS/iPadOS.

  • Thread starter Moodyz
  • Start date Dec 4, 2021

More options

Moodyz

Ars Scholae Palatinae

  • Dec 4, 2021
  • Add bookmark

I know there's probably some thread somewhere in this forum about iOS/Safari content blockers, but wager that was started when it was new on iOS, back when big bezels and Penny-Farthings were still in fashion. It's 2021 now and with Safari supporting web extensions and all that newfangled jazz, I figure this topic could use another look. So what's the most powerful ad/tracker/content blocker for iOS/iPadOS these days? My research (basically just drunken goog/ddg/reddit-fu) points to a final showdown between 1Blocker vs AdGuard . From what I've read, along with personal experience using past versions of both, 1Blocker seems to be favoured by the uber Apple-centric folk, from those used to paying $100/yr for calendar apps to the Apple blogger/twitter/medium circle-jerkers. AdGuard on the other hand seems to be more favoured by the privacy and open source crowd, though its iOS and Mac following seems to be small compared to its Windows and Android following. Currently I'm leaning on AdGuard because; 1. AdGuard uses traditional blocklists in .abp syntax, which update regularly (or you can force update) 1Blocker seems to download their own rules and I have no idea what sources they employ. 2. AdGuard's blocking works like blockers I'm used to. 1Blocker (and many other blockers) have this weird "categories based" blocking structure that ends up blocking comments on Ars articles or replies on reddit frontends (like libredd.it) unless I spend a lot of time creating whitelist rules. AdGuard with a decent set of filters still blocks nasty disqus or wordpress comments, but at least I can troll Ars comments section normally. 3. Lifetime sub price for AdGuard's "Pro" features is cheaper, and even the free version of AdGuard gives you more blocking than 1Blocker. Fwiw, I'm only looking at the Safari blocking features. I know both AdGuard and 1Blocker offer system-wide blocking by creating a sinkhole for blacklisted domains by creating a local VPN profile, but that's of no use to me since I currently use IVPN as my daily-driver and they already have decent ad/tracker blocking DNS using the venerable oisd (full version) blocklist, which basically contains most of the domains employed for the in-app tracker blocking that AdGuard DNS or 1Blocker's Firewall promise. What are your thoughts? EdiT: Initially started this thread with a focus on ad/tracker-blockers, but I've amended the subject title to include Safari web extensions as well. All forms of recommendations are welcome.  

japtor

Ars Legatus Legionis

Don't have much to say on the comparison other than AdGuard not yet being updated to use the new WebExtensions stuff, which (for my main use) can get blocking working on YouTube again. I used the free parts of 1Blocker to do it (and only it), but ran into weird stoppages/blackouts during what seemed to be ad breaks anyway, requiring reloading, so gave up on that. I'd really like blocking syncing in AdGuard but that's not a thing yet. I think there's some work being done, meanwhile I think 1Blocker already can do it? (Getting slightly out of the scope of the thread, for YouTube I'm using an extension called Hyperweb which does way too much, but just using it for script injection, where I used the script in AdGuard's shortcut workaround which seems to more or less work. Ideally Userscripts Safari will come out eventually to have something just for that and other scripts.)  

japtor said: Don't have much to say on the comparison other than AdGuard not yet being updated to use the new WebExtensions stuff, which (for my main use) can get blocking working on YouTube again. Click to expand...
I'd really like blocking syncing in AdGuard but that's not a thing yet. Click to expand...
...for YouTube I'm using an extension called Hyperweb which does way too much, but just using it for script injection Click to expand...
Ideally Userscripts Safari will come out eventually to have something just for that and other scripts.) Click to expand...
Moodyz said: japtor said: Don't have much to say on the comparison other than AdGuard not yet being updated to use the new WebExtensions stuff, which (for my main use) can get blocking working on YouTube again. Click to expand...
  • Dec 5, 2021

After much research, I started using Better https://better.fyi/ I like their ethical approach and feel like the devs have less chance to sell out compared to more commercial entities like Ghostery. If I want to block ads, I want to block ads, period. The “ethical ad” bs pushed by Google and others is just that, bs. There must be no trust on the user side in anything that relates to advertising. Choose your providers wisely. “Ethical ad” bs example: yesterday I was watching a guitar-related channel on YouTube and an ad for Kettle vodka run by Sainsbury’s (UK supermarket) came on. WTF? I don’t drink vodka and have no intention to do so. So, thanks for 5he Vinegar hint.  

  • Dec 6, 2021
japtor said: 1Blocker is subscription based too iirc, but like that, I just use the free features in Hyperweb. We'll just the script injection feature, which is annoying cause there's no way to turn off everything else other than tapping the billion other toggles off. Definitely been tempted to get StopTheMadness for a while. There'd be a lot of overlap in what I'd use Userscripts for so just kinda holding out for that. Same with single feature stuff like Vinegar and others...and if they're from random developers I'm a bit wary about them without someone going through the code it's injecting into pages. But I'm just a layman when it comes to this stuff and haven't looked too much into it, so not sure if they've done some security provisions to prevent malicious uses (other than the scary dialog when you enable them). Click to expand...
wicker_man said: “Ethical ad” bs example: yesterday I was watching a guitar-related channel on YouTube and an ad for Kettle vodka run by Sainsbury’s (UK supermarket) came on. WTF? I don’t drink vodka and have no intention to do so. Click to expand...
wicker_man said: After much research, I started using Better https://better.fyi/ I like their ethical approach and feel like the devs have less chance to sell out compared to more commercial entities like Ghostery. Click to expand...

Ars Tribunus Angusticlavius

  • Dec 14, 2021

I paid for a 1blocker subscription, as it covers most of my usual devices (iOS and macOS). I don't think about it much, but sometimes I wander over to a site on my work PC that I'm used to seeing without ads, and it's terrible. This is something I'm willing to pay a small amount of money for.  

VirtualWolf

VirtualWolf

  • Dec 16, 2021
Jeff3F said: I paid for a 1blocker subscription, as it covers most of my usual devices (iOS and macOS). I don't think about it much, but sometimes I wander over to a site on my work PC that I'm used to seeing without ads, and it's terrible. This is something I'm willing to pay a small amount of money for. Click to expand...

D:

also, given the defective biz model that browsing without ads/tracking is trying to stymy, I find it hard to trust/believe-in any company that offers it mostly for free. And, given that there is a level of trust there, I felt like 1blocker was around long enough and was prominent enough (or at least well-written about by several tech sites) that I would try them.  

hestermofet

I use uBlock Origin. Seems to work fine, supports every browser under the sun including Safari. I don't know why anyone would pay for an ad blocker, the best block lists are generated for free by the community. Seems kind of skeevy to turn around and charge people merely to implement it, especially on platforms like Apples' where an ad blocking engine is built in. edit: I see this is for iOS, yeah, nevermind then  

  • Dec 18, 2021
hestermofet said: I use uBlock Origin. Seems to work fine, supports every browser under the sun including Safari. I don't know why anyone would pay for an ad blocker, the best block lists are generated for free by the community. Seems kind of skeevy to turn around and charge people merely to implement it, especially on platforms like Apples' where an ad blocking engine is built in. edit: I see this is for iOS, yeah, nevermind then Click to expand...

I paid whatever few bucks Wipr wanted and am happy with it. It's unnoticeable, which is kinda great praise?  

I'm very happy with Adguard for safari on macOS.  

  • Jan 9, 2022
japtor said: Don't have much to say on the comparison other than AdGuard not yet being updated to use the new WebExtensions stuff, which (for my main use) can get blocking working on YouTube again. I used the free parts of 1Blocker to do it (and only it), but ran into weird stoppages/blackouts during what seemed to be ad breaks anyway, requiring reloading, so gave up on that. I'd really like blocking syncing in AdGuard but that's not a thing yet. I think there's some work being done, meanwhile I think 1Blocker already can do it? (Getting slightly out of the scope of the thread, for YouTube I'm using an extension called Hyperweb which does way too much, but just using it for script injection, where I used the script in AdGuard's shortcut workaround which seems to more or less work. Ideally Userscripts Safari will come out eventually to have something just for that and other scripts.) Click to expand...

Userscripts 4+

User script and style manager, justin wasack.

  • #17 in Developer Tools
  • 4.9 • 129 Ratings

Screenshots

Description.

Userscripts is an open source Safari extension that lets you save and run arbitrary bits of JavaScript (and CSS) code for the websites you visit. It implements a code editor right in your browser for a simple method of creating, editing and saving your code. Features: - Open source - Straightforward usage - Multiple domain specific scripts - CSS or JS - Automatically locally saves your scripts to the file system - "Advanced" Javascript editor with auto complete - No user tracking Use cases: - Automatic page redirection - Website page manipulation (styling, element creation) - Custom ad-blocking - Website custom code injection If you're looking for a way to easily create quality of life Javacript code snippets for your web browsing experience, give Userscripts a try.

Version 4.5.0

Visit the GitHub repository for help or to report bugs: https://github.com/quoid/userscripts/ Highlights: - In this release, introducing our new open source automated build and deployment process, where everything from the open source code to the app installed on your device is transparent and verifiable. - We've fixed a compatibility issue that existed in visionOS (Designed for iPad) and you can now use this Safari extension in Apple Vision Pro, just like on the iPad and iPhone. Changes: - refactor(native): several significant improvements around preferences - #546 - With a new preference item, the logger is now disabled by default, and a toggle has been added in iOS and macOS. - In iOS, the toggle is located in the `Userscripts` sub pane of the system `Settings` app. - In macOS, the toggle is under the `DEBUG` menu in the menu bar of `Userscripts` app. - The old save location will be smoothly and imperceptibly imported into the new preferences. - Fully optimized storage and reading processes, eliminating potential kernel resources leaks. - Only use shared containers and have updates between app and ext done auto via wrappers. - In iOS, enable the feature of displaying the app's document directory to the system `Files` app. - It also supports importing and exporting document content through `iTunes` or `Finder`. - Supports in-place editing or viewing of third-party applications that supports file providers. - This directory is automatically set by default when the app is launched for the first time. - Optimize the first-time use experience, no longer require to manually set a directory. - Retain the ability to change the save location and optimize relevant text prompts. - fix(ios): improve initialization process make sure display document folder - #548 - refactor: update dev and build process and improvements - #560 - Some minor tweaks and optimizations to the iOS App WebView. - Show informative text when using the default app document. - Improved rendering flickering through min-height and min-width. - Click on the current directory text to open the folder in Files app. - Refactor the APIs append and injection process of user scripts in content scripts. - Only parse UserJS code without APIs precode can reduce computation. - This also incidentally fixes "Userscripts with quotes in their names break #401". - Inject into page with closed ShadowRoot for better security. - fix: correctly handle url containing hash but without search - #593 - fix: make the Open Extension Page button work stably - #616 - refactor: improve basic popup view structure and fix issues - #624 - ci: verifiable open source automated builds and deployments - #665 - fix: avoid potentially infinite hangs on async messages - #669 - fix: avoid potentially infinite hangs on async messages (revise) - #671

Ratings and Reviews

129 Ratings

no data collection going on

i am new to this stuff but this developer is safe. i was scared ngl. you have the apple badge too. learned that all app store apps should be safe due to rigorous standards and scanning. i used it to modify a website to help me with school. i am also learning programming. i also read his github readme. i dont need to get tamper monkey for free through chrome installation. mac os appstore tamper monkey costs $2. minor, but still inconvenient. this is so good and i get to keep using only safari for m1 optimized mac. thank you developer. you will be successful. i hope you dont sell out when you make it big hahaha. you're so good :D

Good project, but feeling like not complete for beginner

This is an excellent open-source project with a simple interface and completely free. However, the software only has two actions for a certain script, on and off, without further operations. It should be noted that many scripts currently provide more options for specific web pages, such as the option to support single or double columns on search result pages. This software does not provide this function. I guess users need to write their own operations in the script, but for ordinary users, this is very difficult. I hope the developers can take care of beginners and allow ordinary users to further set up script functions on specific web pages.

Developer Response ,

Thank you for your kind words and feedback. The script options page needs to be implemented by the script author himself. But we know that there is a related API that we have not implemented yet, which may affect opening the options page from some scripts. We hope to resolve this issue in the future: https://github.com/quoid/userscripts/issues/230
Needed this for Mac Safari! Just the tool to use to run Javascripts on webpages. Easy to install; easy to control; easy to update. Just works. [Question: I have a red badge in the </> icon in the Safari toolbar. It's saying "1," like I have a pending message or problem, but I can't see anything. What's that for and can I clear it?]
Yes, you can disable the count in the settings of the extension page. It tells you the number of user scripts matched and injected for the current page.

App Privacy

The developer, Justin Wasack , indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy .

Data Not Collected

The developer does not collect any data from this app.

Privacy practices may vary, for example, based on the features you use or your age. Learn More

Information

  • Developer Website
  • App Support
  • Privacy Policy

You Might Also Like

Web Inspector

Koder Code Editor

Termius: Terminal & SSH client

ServerCat - SSH Terminal

Stack Exchange Network

Stack Exchange network consists of 183 Q&A communities including Stack Overflow , the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

How do I install a userscript?

What are the steps to install a userscript for any of the major browsers? This question is for the benefit of those trying to get the minimal theme working. One browser per answer please.

  • greasemonkey
  • userscripts

Moshe's user avatar

  • Related: How to install a private user script in Chrome 21+? –  V2Blast Commented Mar 12, 2022 at 1:51

Detailed instructions are available on the Stack Apps Site

How to install user scripts in Chrome There are two methods for installing UserScripts in Chrome. The first is to install the TamperMonkey extension, which makes installation simple and easy. The second is to follow these instructions below: Note: As of Chrome 35 (late May 2014), downloaded user scripts cannot be installed using the second method. Please use the TamperMonkey extension.
  • Click on the link to the .user.js file found in the post

Look for the confirmation at the bottom of your browser and click Continue .

Are you sure you want to continue?

The script should have appeared in your downloads bar.

  • If the file name is modified to <filename>.user (<number>).js , rename the file so it ends with .user.js . Note: If file extensions are not displayed on your system, the name has to end with .user .

the extension manager

  • Drag drop the file from the downloads bar to the extensions page. If you had renamed it, drag-drop it from your file manager.

Release the mouse if the text "Drop to install" appears.

Confirm New Extension - click "Add" to install the script

The script should now be installed. Refresh all tabs affected by the script to start using it.

How to install user scripts in Firefox

  • Install the Greasemonkey add-on for Firefox if you haven't done so already
  • Click on the link to the .user.js file found in the post.

A Greasemonkey Installation dialog will appear. Review the sites on which this script will work on, view the source of the script if so desired and confirm that you wish to install the script

Greasemonkey Installation dialog

How to install user scripts in Safari

GreaseKit (The hack approach, for Safari 4 and earlier)

  • Download and Install SIMBL – (From the SIMBL website), SIMBL, pronounced like “symbol” or “cymbal” enables hacks. In other words, you can “patch” Mac applications to add functionality to them.
  • Next, download GreaseKit . To install it, drag the GreaseKit.bundle file to ~/Library/Application Support/SIMBL/Plugins . If you don’t have a SIMBL/Plugins/ folder, just create it, then drop GreaseKit.bundle into it.
  • Restart Safari, and you will see a new entry in the menu bar for “GreaseKit”.
  • Click on the link to the .user.js file found in the post to install the userscript.

from http://mosheberman.com/wordpress/?p=284

NinjaKit (a Safari 5 extension)

  • Go to the NinjaKit homepage . The page is in Japanese, but don't worry—the install link is in English.
  • Click on the "NinjaKit for Safari" link.
  • If you are prompted to open or save the file, select open. If the file automatically downloads, find the downloaded file ( NinjaKit.safariextz ) and double-click it.
  • When Safari pops up a message confirming you want to install NinkaKit, click install.

How to install user scripts in Opera 15 and newer versions

Install the TamperMonkey extension , which makes installation simple and easy.

How to install user scripts in Opera 12 and older versions

  • Create a folder for userscripts. (eg, C:\Program Files\Opera Browser\Userscripts\ - it does not need to be within the Program Files folder, anywhere is fine.)
  • Within Opera, go to Tools > Preferences .
  • Click the Advanced tab.
  • Click Content in the choices on the left.
  • Click JavaScript options .
  • For the "User JavaScript files", click Choose .
  • Select the userscripts folder created in step 1. and click OK .
  • Click on the link to the .user.js file and save it to the userscripts folder created in step 1.

Refresh the tab(s) affected by the script to start using it.

from http://www.howtogeek.com/howto/3986/set-up-user-scripts-in-opera-browser/

Development resources

  • UserScripts - a site to host Greasemonkey scripts.
  • How to use jQuery in your scripts

Community's user avatar

  • What content type should a web server use in to make the Safari version of the instructions work properly? It looks like just naming the file .user.js is not enough. –  internetdotcom Commented Dec 4, 2011 at 18:13
  • I would guess application/javascript but I am not positive... Sounds like a good question for you to post @dpk! –  Josh Commented Dec 4, 2011 at 20:10
  • 4 In Chrome 21+ it’s not that easy anymore, sadly :( See here: How to install a private user script in Chrome 21+? –  Mathias Bynens Commented Jul 19, 2012 at 11:40
  • This answer is outdated. In Opera 15+ you’ll need to install Tampermonkey to enable and manage user scripts. –  Mathias Bynens Commented Jul 8, 2014 at 8:06

You must log in to answer this question.

Not the answer you're looking for browse other questions tagged greasemonkey browser userscripts ..

  • The Overflow Blog
  • Where does Postgres fit in a world of GenAI and vector databases?
  • Featured on Meta
  • We've made changes to our Terms of Service & Privacy Policy - July 2024
  • Bringing clarity to status tag usage on meta sites

Hot Network Questions

  • Passport Carry in Taiwan
  • What is this strengthening dent called in a sheet metal part?
  • Get WEBP via FFmpeg/thumbnails utility
  • I'm trying to remember a novel about an asteroid threatening to destroy the earth. I remember seeing the phrase "SHIVA IS COMING" on the cover
  • Are there any theoretical reasons why we cannot measure the position of a particle with zero error?
  • What can I do when someone else is literally duplicating my PhD work?
  • Can I use "historically" to mean "for a long time" in "Historically, the Japanese were almost vegetarian"?
  • How are notes named in Japan?
  • How can I move TikZ pictures in 3D space?
  • Order of connection using digital multimeter wall outlet
  • Validity of ticket when using alternative train from a different station
  • Is the theory of ordinals in Cantor normal form with just addition decidable?
  • Submitting a paper as a nonacademic practitioner in a field
  • What is the spiritual difference between hungering and thirsting? (Matthew 5:6)
  • Historical U.S. political party "realignments"?
  • Change output language of internal commands like "lpstat"?
  • sudo / sudoers on macOS: regex not working but wildcards/globs are
  • What issues are there with my perspective on truth?
  • Why is one of the Intel 8042 keyboard controller outputs inverted?
  • Are quantum states like the W, Bell, GHZ, and Dicke state actually used in quantum computing research?
  • How do I safely remove a mystery cast iron pipe in my basement?
  • Is it possible to create a board position where White must make the move that leads to stalemating Black to avoid Black stalemating White?
  • My enemy sent me this puzzle!
  • Why did General Leslie Groves evade Robert Oppenheimer's question here?

userscripts safari reddit

userscripts safari reddit

Greasy Fork

Showing English results only. Show results for all languages.

Login reminder popup remover (developement ceased - not up to date) JS - Removes the nagging login popups and banners from mobile and desktop versions of Facebook, Instagram, Reddit, Twitter, Quora, Ask.fm, VK, Pinterest, Tumblr, Twitch and from the mobile versions of Youtube and TikTok.

Reddit app bypass js - bypass reddits app enforcement for nsfw content., bring back old reddit js - always redirects to old-reddit, avoiding reddit's redesign., reddit nsfw unblur js - unblur nsfw in shreddit, reddit fast auto redirect js - auto-redirect traffic from www.reddit.com to new.reddit.com before the page loads, reddit++ js - a lot of enhancements for new design of reddit.com like unwrapped feed buttons, bigger fonts, view images without redirect and many more..., privacy redirector js - redirect social media platforms to their privacy respecting frontends, force old reddit layout js - force old reddit layout using cookie., the internet gets better: no cookies 🍪 js - first version: gets rid of cookies 🍪🍪🍪 let me know wich website it doesn't work on, reddit age bypass js - bypass the "open in app prompt" for nsfw posts, reddit mobile banner kill js - removes the banner prompting to open reddit in the mobile app. this script only does anything on mobile browsers that support tampermonkey, open-source alternative redirector js - redirects you from proprietary web-services to ethical alternatives(front-end)., old new reddit redirect js - gets rid of reddit's new december 2023 layout., remove reddit login requirement js - remove the on-screen modal that forces you to log in for certain posts., remove reddit over 18 login requirement popup js - remove reddit.com annoying over 18 login requirement popup, 2nd gen reddit ui js - reverts reddit to 2nd generation ui (new.reddit.com), ads dom remover js - removes ad containers from dom (doesn't replace adblocker extension, but blocks dynamic content which the adblocker fails to block by removing whole sections from the html dom.), plumfont - replace roboto, segoe ui, arial, and other fonts js - replace web page fonts with your preferred ones. stop using segoe ui, arial, and microsoft yahei. replace english numerals with the sf pro and inter fonts., old reddit redirect js - automatically redirects you to the old reddit, reddit fix js - fix of the infinite scroll, hide subreddits, see full image actually shows the full image, html5 video player, remove background effects, copy video adress, reddit video downloader js - adds button to direct link or download the stupidly hard to save or share directly reddit videos. designed to work on new reddit only. buttons appear when viewing the specific post -- does not work on preview/expand on post listing pages., lift web restrictions: modified js - a user extension that modifies many sites., reddit 2023 ui revert js - redirects reddit.com to new.reddit.com which restores the reddit ui from 2020-2023, jr mturk panda crazy helper js - a script add on for panda crazy sending commands to main script., reddit video downloader js - a script to that allows you to download videos hosted on reddit by pressing ctrl+s or meta+s on the comments section., remove reddit ads js - remove reddit post ads, reddit downloader js - download your saved posts or directly posts from your feed with support for direct links (png, jpg, gif, mp4...), (gypcat kinda), redgify, imgur (only when supplied with an api key), reddit spoiler blur remover js - remove all blur on spoiler images while keeping the nsfw setting. supports external images too., dismiss cookies warning js - agrees to the cookies dialog to make it disappear forever, subreddit tab icons js - replaces tab icons (favicons) on reddit with icons of subreddits., reddit show images marked with spoiler/nsfw js - show images marked with spoiler/nsfw post in reddit, reddit show redgifs video js - show redgifs video in reddit post, reddit image download button js - adds a button to download images from reddit posts, delete all reddit comments js - deletes all reddit comments, enable this script to scrub your comment history, reddit infinite scrolling js - adds infinite scrolling to subreddits and to comments., reddit secure delete - only comments more than 7 days old js - securely delete your reddit posts. now with the ability to only securely delete comments more than 7 days old. originally by https://greasyfork.org/en/users/5868-mrazavi, res twitter expandos js - formats embedded tweets. res cannot do this for technical and security reasons., reddit inline gallery js - add's inline gallery viewmode on reddit.com, reddit link hijack remover js - remove link-click tracking from reddit, redditmod2 js - dark themes, inline posts/comments, endless scrolling, subreddit filters, and other improvements for reddit.com, add a link to hide all reddit posts js - add a link to hide all reddit posts listed in currently logged-on user's page tab (overview, submitted, downvoted, etc.). this script will auto-navigate to the next page (if any) and will continue hiding any hideable posts until the last page., "view reddit in the app" mobile pop-up remover js - removes the "view reddit in the app" when accessing reddit on mobile, old snoo js - replace the new favicon with the old one, better reddit delete js - based on spaz's reddit delete, adds subreddit selection and ability to delete posts. replaces all visible comments with garbage text, then deletes the comment. works with res, disable reddit lightbox js - disable the damn lightbox on the reddit redesign, dark theme for reddit chrome app js - force dark mode for reddit by setting theme-color meta property to #1a1a1a, bundle helper js - highlights games you already own on steam, on other sites. modified from https://greasyfork.org/scripts/16105-bundle-helper/, reddit minimal dark css - minimal dark usercss style for reddit, better reddit image previews js - fixes issues with reddit image previews. specifically, clicking image preview now links directly to image (instead of thread) and fits height of image previews in carousel so they don't get clipped out., reddit - always disable safe search js - always disable the safe search toggle when performing a search on reddit., delete all reddit comments js - delete all your comments in reddit, navigate to https://www.reddit.com/user/{your username}/comments, and reload. only compatible with old reddit interface. switch to old interface before using., libreddit redirector js - automatically redirects all links from reddit to libreddit or redlib, reddit mobile app nag remover js - stops reddit from pushing you to use the mobile app., reddit css js - new design with new functionalities, reddit old mobile 📱 js - mobile-friendly design for reddit old, reddit b64 decoder js - decode base64-encoded text in reddit posts and convert urls to clickable links., use old reddit favicon js - script to change reddit favicon to the old icon, reddit sort by new 🆕 js - sort subreddits by "new", fix image links on old reddit js - fix opening redd.it image links on old reddit, reddit automatic dark mode js - switches reddit cark mode on and off according to system theme (if exposed by browser)., old reddit inline images js - displays image posts and replies inline in threads on the old reddit interface., reddit - fix "new" js - fix "new" reddit behaviour: long-lived page, internal links, moderator page, old.reddit.com login form redirection fix js - adds a login form to the top right of old reddit and preserves the current page after login., reddit zoom + js - latest update: full screen 5x4 create post gallery grid - fix 2, unhide reddit spoilers js - automatically unhides reddit spoilers on old reddit, reddit auto 18+ confirmation js - automatically clicks the "yes, i'm over 18" button on reddit, old reddit sidebar hider js - hides the sidebar of old reddit when you scroll down, reddit media downloader with cobalt js - adds a button to download media via cobalt.tools, reddit comment faces helper js - allows you to easily add comment faces from those subreddits: r/awwnime, r/pantsu, r/moescape, r/twodeeart, r/patchuu, r/visualnovels, r/kemonomimi, r/manga, r/anime, r/supersonico, r/kanmusu, r/kanmusunights, r/schoolidolfestival, r/lovelive, r/onetrueidol, r/fatestaynight, r/saber, r/nisekoi, r/onetruebiribiri, r/gamindustri, r/esdeath, r/onetruetohsaka, r/kancolle, r/leagueoflegends and r/chibi, reddit reveal js - reveal hidden information on reddit, reddit new comment highlighting js - a free gold feature, restore downvote arrows js - restores all arrows for those annoying sub-reddits that insist on having them hidden., reddit highlight newest comments js - highlights new comments in a thread since your last visit, reddit uppers and downers enhanced js - show up-votes and down-votes next to the total score on reddit comments., side-reddit js - simple side-bar toggle for reddit, reddit visited link remover js - hides links you already visited on reddit and offers keyboard navigatin, reddit flair linkifier js - turns the text in various subreddits' flair into links, colorfull reddit usernames (cru) js - colorizes usernames on reddit comments, reddit - restart failed never ending reddit at old position js - when using the "reddit enhancement suite" with "never ending reddit" option, at some point the next page cannot be loaded anymore. currently your only option is to reload reddit and start from the top. this script searches bottom up for the next working entry it can use as starting point. this way you can continue browsing from the same position., markdown toolbar for reddit.com js - creates a markdown toolbar whenever you make/edit text posts or comments in reddit.com, bovverzoom js - view linked images and animated gifs on reddit by hovering instead of having to click and navigate away., hide /r/unexpectedcena js - find out this sunday night at the wwe suuuuper slam (changes /r/unexpectedcena to /r/videos on reddit), hide self-serve advertising link on reddit js - if you have that annoying little link stuck forever on your reddit pages, heres a simple way to remove it., reddit vote and comment fuzzer js - fuzzes comments (on your front page) for a specific subreddit, add reddit top menuitems ( h,24,w,m,y ) js - adds quickaccess menuitems: hour day week month year, expand subreddit header js - expand subreddit header on reddit, reddit: remove 'np' js - changes np links to regular links, button checker js - watches the button, test script cross domain post js - all tests are outputed to developer javascript console (try f12 hotkey), the grey pill js - prevents the consequences of casual button clicks, reddit - unread comment helper (fork) js - on topic pages, show "x unread comments (y total)"; on comment pages, highlight unread comments. local storage only -- does not work across multiple computers., advanced button stats js - show advanced button stats, the grey guard js - prevents casual button clicks, reddit - side-by-side editor and res preview js - show the edit box and preview next to each other when writing comments if you have res installed, show flairless count js - estimate flairless users on /r/thebutton/, the sexy button js - allow the button to change colour, the sexy button header js - allow the button header to change colour from the websocket, the_button_helper js - colourise the button with the flair you'd get when pressing it right this instance. also makes it possible to check for your desired colour and press the button when it's (probably) hit..

Publish a script you've written (or learn how to write one )

  • Daily installs
  • Total installs
  • Created date
  • Updated date
  • (All sites)
  • youtube.com
  • twitter.com
  • bilibili.com

Awesome

Curated list of awesome lists

Awesome userscripts.

A curated list of Awesome Userscripts.

User scripts can improve your browsing experience, and open a lot of possibilities to make the sites you visit better by adding features, making them easier to use, or taking out the annoying bits.

Brave Search

Additional catalogues, contributing.

To use user scripts you need to first install a user script manager. Here are managers for various browsers:

  • Supports GM 4 userscripts.
  • Supports GM 3 userscripts.
  • Supports GM 4 userscripts and some GM 3 userscripts.
  • Supports both GM 3 and GM 4 userscripts.
  • Supports some GM 3 userscripts.

The most popular userscript managers are Greasemonkey, Tampermonkey, and Violentmonkey.

There's no focused plugins to get Userscripts running on Internet Explorer, but the Adguard extension provide this feature.

  • Direct links out - Removes all "You are leaving our site" and redirection stuff from links.
  • Linkify Plus Plus - Turn plain text URLs into links.
  • Select text inside a link like Opera - Disable link dragging and select text.
  • Show and reload broken images - Show and reload broken images, even when it contains "alt" tag.
  • Show Password onMouseOver - Show password when mouseover on password field.
  • URL Shortener Unshortener - Adds small button next to shortened URLs that will replace the shortened URLs with their real locations and vice-versa. Useful for when you don't want to blindly click links.
  • Anti-Adblock Killer - Bypasses anti-adblock functionality in websites.
  • AntiAdware - Remove forced download accelerators, managers, and adware on supported websites.
  • AdsBypasser - Bypass Ads, Popups and count-down ads.
  • BraveGPT - Display ChatGPT answers in Brave Search sidebar (powered by GPT-4!)
  • ChatGPT Auto-Continue - Automatically continue generating multiple ChatGPT responses.
  • ChatGPT Auto Refresh - Auto-sends background requests to keep sessions fresh & prevent Cloudflare checks + network errors.
  • ChatGPT Infinity - Generate endless answers from all-knowing ChatGPT (in any language!)
  • ChatGPT Widescreen Mode - Adds Widescreen + Fullscreen modes to ChatGPT + Poe.
  • Autoclear ChatGPT History - Auto-clears chat history when visiting chat.openai.com for maximum privacy.
  • DuckDuckGPT - Display ChatGPT answers in DuckDuckGo sidebar (powered by GPT-4!)
  • GoogleGPT - Display ChatGPT answers in Google Search sidebar (powered by GPT-4!)
  • Gist to dabblet - Add a Dabblet link to Gists saved from Dabblet.
  • GitHub Commit Whitespace - Adds button to hide whitespace diffs from commits.
  • GitHub Custom Emojis - Add custom emojis anywhere on GitHub.
  • GitHub Dark Script - Apply the GitHub-Dark style to the site.
  • GitHub Diff File Toggle - Add a toggle to each diff file (shift-click toggles all files).
  • GitHub Image Viewer - Preview images from within the file listing.
  • GitHub Make Tooltips - Convert all titles into GitHub tooltips.
  • GitHub Monospace Editor - Provide MonoSpace font on GitHub textareas.
  • GitHub PR Approvals - Require approvals in GitHub PRs before merging is allowed.
  • GitHub Toggle Code Wrap - Toggle code wrapping in files.
  • GitHub User Info - Show user information on avatar hover.
  • GitHub code colors - Add a color swatch preview to code.
  • GitHub code folding - Add code folding to files.
  • GitHub code guides - Add code guides to files and diffs.
  • GitHub code show whitespace - Show whitespace (spaces/tabs/carriage returns) in files.
  • GitHub collapse in comment - Toggle long code blocks in comments.
  • GitHub collapse markdown - Toggle markdown headers.
  • GitHub custom hotkeys - Add your own custom hotkeys to all of GitHub.
  • GitHub custom navigation - Add a custom navigation bar to link anywhere.
  • GitHub diff files filter - Add a file type filter to diffs.
  • GitHub diff links - Add next and previous buttons to each diff file.
  • GitHub font preview - Preview OTF, TTF and WOFF font files.
  • GitHub image preview - Add an image preview mode.
  • GitHub indent comments - Use the tab key in comments.
  • GitHub issue comments - Toggle the view of some issue comments and timeline entries.
  • GitHub issue counts - Show the number of issues in repository view.
  • GitHub issue highlighter - Highlight the linked issue.
  • GitHub label color picker - Add an extensive color picker to the label editor.
  • GitHub monospace font toggle - Add a monospace font toggle to comments.
  • GitHub remove diff signs - Remove diff signs from file diffs.
  • GitHub rtl comments - Add right-to-left indicators in comments.
  • GitHub search autocomplete - Add a search filter autocomplete to all of GitHub.
  • GitHub sort content - Sort lists and tables on GitHub.
  • GitHub static time - Convert time ago into a time format of your choice.
  • GitHub table of contents - Show a TOC window for Readme and wiki pages.
  • GitHub title notification - Add a notification indicator to browser tabs.
  • GitHub toggle expanders - Expand or collapse all commit titles.
  • GitHub toggle wiki sidebar - Toggle wiki sidebar view.
  • GitHub Commit Diff - Adds button to show diff (or patch) file for commit.
  • GitHub News Feed Filter - Add filters for Github homepage news feed items.
  • GitHub Pages Linker - Add a link to Github Pages (gh-pages) when available.
  • GitHub Pull Request From Link - Make pull request branches linkable.
  • GitHub Reply Comments - Easy reply to Github comments.
  • GitHub Skip Delete Repo Verification - Skips the verification step when deleting a repository.
  • GitHub Star History - Adds star history chart to every repo's sidebar.
  • Endless Google - Load more results automatically and endlessly.
  • Google Images direct link - Adds direct links to images and pages in google image search.
  • Google Translate Keyboard Shortcut - Adds keyboard shortcut for quick swapping between active languages.
  • Reddit Search On Google - Adds a button to your Google searches to show only Reddit posts.
  • Handy Image - Displays the full size image for many image hosting websites, skipping popups and other annoying stuff.
  • Image Max URL - Finds larger or original versions of images/videos for thousands of supported websites, including a customizable image popup feature.
  • Mouseover Popup Image Viewer - (Deprecated) Shows images and videos behind links and thumbnails.
  • Mouseover Popup Image Viewer (updated fork) - An updated fork of MPIV, maintained by one of Violentmonkey's developers.
  • Picviewer CE+ - Powerful picture viewing tool which can popup/scale/rotate/batch save pictures automatically.
  • Remove Google Click Tracking - Removes Google's click-tracking from result links.
  • Remove Yandex Redirect - Removes Yandex's click-tracking from result links.
  • Hide YouTube recommendations - Hides the thumbnails and titles of the recommended videos to reduce distraction and procrastination.
  • Iridium - Adds a lot of extra functionality to YouTube, including pop-out videos, extra control over video/comment feeds, and much more.
  • YouTube Classic - Reverts YouTube to its classic design (unround corners, restore dislikes + remove/redirect Shorts).
  • YouTube Peek Preview - See video thumbnails, ratings and other details when you mouse over a Youtube link from almost any website.
  • YouTube Subtitle Download - Adds links to download video subtitles.
  • Greasemonkey Hacks - Complete wiki book on Userscripts.
  • Greasemonkey Tutorial for Beginners - How to create simple Userscripts and installing it using Greasemonkey.
  • Video - GreaseMonkey Userscript Development
  • UserScripts Mirror - Mirror of the original Userscripts.org repository (that is currently down).
  • Greasy Fork
  • Stack Overflow
  • #greasemonkey on Freenode
  • r/userscripts on Reddit

Contributions are very welcome!

Please have a look at CONTRIBUTING for guidelines.

To the extent possible under law, Bruno Candido Volpato da Cunha has waived all copyright and related or neighboring rights to this work.

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications You must be signed in to change notification settings

An open-source userscript manager for Safari

NewbingandBard/quoid-userscripts

Folders and files, repository files navigation, userscripts safari.

An open-source userscript editor for Safari

Userscripts Safari

Table of Contents

Installation.

  • Browser Page
  • Settings Modal
  • Scripts Directory / Save Location

Getting Help

Contributing, privacy policy.

Userscripts is available for iOS (iPadOS) and macOS. For all versions, installation is done through Apple's App Store . On macOS, versions prior to 4.x were made available to download and install directly from the repository, but due to changes in the way Apple allows developers to distribute apps built with the WebExtension API , that is no longer an option.

To run Userscripts on iOS you should be on iOS 15.1 or higher.

To run Userscripts on macOS you should running macOS 12 or higher, along with Safari 14.1 or higher.

App Store Link

Development Progress

It's recommend to read this documentation and, if you have time, watch the following video overviews to familiarize yourself with the app and extension.

Once the app is downloaded and installed the following steps should be taken:

iOS (iPadOS)

After installing the iOS App, you need two main steps to make the extension work:

Open the App and set a directory (For saving and loading userscripts)

  • After Userscripts for ios v1.5.0, a local default directory will be set automatically
  • In earlier versions please click the Set Userscripts Directory button and select the directory

Enable the extension in Safari (And grant permissions)

  • Manage extensions from Settings App (Settings > Safari > Extensions) or Safari App ( AA button on iPhone, extension-icon on iPad, also where you open the extension's popup interface)
  • For optimal experience it's recommended that you Always Allow Userscripts for All Websites

The App cannot detect whether you have enabled the extension in Safari, therefore, the App prompt will not change after you enable the extension. Currently the App interface is only used to set or change the userscripts directory.

You could select an iCloud folder for syncing scripts between macOS and iOS, but please note that there may be delays in synchronization, and you may encounter files be evictioned due to iCloud optimization, please refer to #424 .

There are two main ways to install a user script from the iOS version:

  • Visit any .user.js URL in Safari, then open the extension popup and you will see an installation prompt
  • You can also save .user.js files directly to the Userscripts directory you set above

Both of the above work equally well in the macOS version.

The iOS version does not include the script editor provided in the macOS version, but you can always edit script files in the directory you set directly on iOS. (use any third-party code editor apps, support in-place opening and editing)

After installing Userscripts on macOS, you do not need to select a userscripts directory if you do not plan on syncing your userscripts between multiple devices. Instead you can choose to use the default directory, which is located at ~/User/Library/Containers/Userscripts/Data/Documents/scripts - again, this is default (and automatic) behavior. You only need to select a new location if you want to store your userscripts elsewhere, which is especially useful if you are using an external code editor such as Sublime Text or VSCode.

Refer to Apple's official guide page: Use Safari extensions on your Mac

Here's a short clip showing how to easily create/add a userscript in Safari using this extension on macOS

UI Overview

Browser page:.

Userscripts Safari Main Application Window

  • Extension button - click this button to open the extension interface
  • Filter bar - use this input to filter items in the sidebar, by name
  • Sort button - changes the order of the items in the sidebar by name or modified time
  • The settings button (represented by a cog ) displays the settings modal (discussed below)
  • New CSS is a "userscript" that expects CSS code
  • New Javascript is a prototypical userscript that expects Javascript code
  • New Remote allows the user to add a remote hosted userscript (or style) by inputting the web address ( ex: https://www.k21p.com/example.user.js )
  • Item toggle - this toggle enables or disables an item
  • Item - this is the userscript (or style), clicking on it will load it's contents into the editor - you can hide descriptions in the settings area!
  • metadata contains @version tag
  • metadata contains @updateURL tag
  • Note: every userscript that is displayed in the interface is already present on your local machine, at your save location - the download button offers a quick way to retrieve a copy of that file, without needing to click the settings button, and then the save location link within the settings modal
  • Trash button - moves the currently loaded userscript to the trash bin - it will subsequently be removed from the interface and save location
  • Discard - while editing, reverts any unsaved changes you've made to a userscript
  • Command + S is the keyboard shortcut for the action

Settings Modal:

Userscripts Safari Settings Window

  • this affects the following characters: () [] {} "" ''
  • Auto Hint - automatically shows completion hints while editing
  • Hide Descriptions - hides the item descriptions in the sidebar
  • Show Invisibles - toggles the display of invisible characters in the editor
  • Javascript Linter - toggles basic Javascript linting within the editor
  • Tab Size - the number of spaces a tab is equal to while editing, obviously defaults to 4 because using 2 spaces is absolute insanity
  • Enable Injection - toggle on/off script injection for the pages you visit (this is the on/off switch)
  • Show Toolbar Count - displays a badge on the toolbar icon with a number that represents how many enabled scripts match the url for the page you are on
  • Save Location - where your file are currently located and being saved to (click the blue text to open location)
  • Change Save Location (cogs icon) - this button, located directly to the right of the save location, is a shortcut for opening the host app, which will allow you to change the save location
  • Global Blacklist - this input accepts a comma separated list of @match patterns ( Match pattern structure ), a page url that matches against a pattern in this list will be ignored for script injection

userscripts safari reddit

  • Open Page Link - macOS only , opens the extension browser page
  • Enable Injection toggle - turns on/off page script injection (on/off switch)
  • Refresh View - refreshes the popup view
  • Available Updates View - the extension periodically checks all userscripts in your save location for updates and when an update is found, it is shown in this view
  • Folder Button - on macOS this button opens your save location directory in Finder, on iOS this button displays the "all scripts view" where you can see every script that found in your save location directory, the "all scripts view" allows you to toggle individual userscript scripts on/off regardless of the current page being displayed in the browser
  • Install Prompt - when a userscript is displayed in the browser, this alert displays, giving the user the option to install the userscript into their save location directory, tapping the prompt will take them through the installation steps
  • Matched Userscripts List - this list shows the currently matched userscripts relative to the current page being displayed in the browser, all userscripts that match to the domain will be showed, whether they are active or not. Users can click/tap the userscript to the toggle them on/off. If a userscript is active for the domain through a subframe a sub tag will be show next the to the file type indicator

Userscripts Safari currently supports the following userscript metadata:

  • @name - This will be the name that displays in the sidebar and be used as the filename - you can not use the same name for multiple files of the same type
  • @description - Use this to describe what your userscript does - this will be displayed in the sidebar - there is a setting to hide descriptions
  • @icon - This doesn't have a function with this userscript manager, but the first value provided in the metadata will be accessible in the GM_/GM.info object
  • Note: this extension only supports http/s
  • @exclude-match - Domain patterns where you do not want the script to run
  • @include - Used to match against urls for injection, globs and regular expressions are allowed, read more here
  • @exclude - Functions in a similar way as @include but rather than injecting, a match against this key's value will prevent injection
  • allows the user to choose which context to inject the script into
  • GM apis are only available when using content
  • works like violentmonkey
  • allows the user to choose the injection timing
  • document-start, document-end (default), document-idle
  • allows the user to further adjust script injection timing
  • can be used to ensure one script injects before another
  • ONLY accepts integers (floats, strings and everything else will be ignored)
  • min value = 1, max value = 999, higher numbers (“heavier”) execute earlier
  • allows users to include remote resources in their scripts
  • the value must be a valid url, currently no local file support
  • must require a resource of the same file type (JS for JS, CSS for CSS)
  • when a resource is required, it is downloaded and saved locally
  • if you want to update the require resources, and the url does not change, you must remove the resources, save, then re-input it
  • require remote resources at your own risk, the extension never validates remote resource code in any way and be aware that using remote resources from untrusted sources can jeopardize your personal security
  • used to determine the current version of a userscript
  • when paired with @updateURL , this will allow the user to update a userscript from a remote source, if the version on their machine is < version at the update URL
  • @version does nothing by itself, it needs to be paired with @updateURL for remote updating to function properly
  • the remote url to check version against
  • if the version of the file located at the update URL is > the version on the local machine, the file will be updated
  • @updateURL does nothing by itself, it needs to be paired with @version for remote updating to function properly
  • optional download location for a remotely updateable file (*i.e. a file that has both @version and @updateURL )
  • when paired with @version and @updateURL , if the local version is < the version of the file that @updateURL points to, the extension will attempt to update the file's code with the contents of the file located at the @downloadURL
  • @downloadURL does nothing by itself, it needs @version and @updateURL to present in order to function properly
  • this key takes no value
  • prevents code from being injected into nested frames

All userscripts need at least 1 @match or @include to run!

Userscripts currently supports the following api methods. All methods are asynchronous unless otherwise noted. Users must @grant these methods in order to use them in a userscript. When using API methods, it's only possible to inject into the content script scope due to security concerns.

  • css: String
  • returns a Promise , resolved if succeeds, rejected with error message if fails
  • key: String
  • value: Any - any can be JSON-serialized
  • defaultValue: Any - optional
  • returns a Promise , resolved with the value that was set or defaultValue provided or undefined if succeeds, rejected with error message if fails
  • returns a Promise , resolved with an array of the key names of presently set values if succeeds, rejected with error message if fails
  • returns a Promise , resolved with Any data that is persistent as long as this tab is open if succeeds, rejected with error message if fails
  • tabObj: Any - any can be JSON-serialized
  • url: String
  • openInBackground: Bool - optional, false by default
  • returns a Promise , resolved with tab data for the tab just opened if succeeds, rejected with error message if fails
  • tabId: Int - optional, the caller tab by default
  • data: String
  • type: String - optional, text/plain by default
  • read more here
  • returns a Promise , resolved with a Bool value indicating succeeds or fails, rejected with error message if fails
  • is available without needing to add it to @grant
  • scriptHandler: String - returns Userscripts
  • version: String - the version of Userscripts app
  • scriptMetaStr: String - the metablock for the currently running script
  • description: String
  • exclude-match: [String]
  • excludes: [String]
  • grant: [String]
  • includes: [String]
  • inject-into: String
  • matches: [String]
  • name: String
  • namespace: String
  • noframes: Bool
  • require: [String]
  • resources: [String] - currently not implemented
  • run-at: String
  • version: String - the userscript version value
  • details: Object
  • url: String - required
  • method: String - optional, GET by default
  • user: String - optional
  • password: String - optional
  • headers: Object - optional
  • overrideMimeType: String - optional
  • timeout: Int - optional
  • binary: Bool - optional
  • data: String - optional
  • responseType: String - optional
  • refer to XMLHttpRequests
  • onabort: Function - optional
  • onerror: Function - optional
  • onload: Function - optional
  • onloadend: Function - optional
  • onloadstart: Function - optional
  • onprogress: Function - optional
  • onreadystatechange: Function - optional
  • ontimeout: Function - optional
  • responseHeaders
  • responseType
  • responseURL
  • withCredentials
  • responseText (when responseType is text )
  • usage: const foo = GM.xmlHttpRequest({...}); ... foo.abort(); to abort the request
  • an alias for GM.xmlHttpRequest , works exactly the same

Scripts Directory

This is the directory where the app/extension will read from and write to. This directory is changed by opening the containing app and clicking the respective "change location" button.

Script Directory Notes

  • Close all instances of the extension UI (browser app and/or popup) before changing the scripts directory
  • After files are added, removed or edited, you will need to open the popup at least 1 time to see those changes reflected in your browsing experience
  • On macOS , after a directory outside of the default is selected, if you rename or move that selected directory, the extension will continue to read/write to that directory - the only way to remove the “link” is by trashing the folder or selecting a new save location

If you encounter a problem while using this app/extension or are in need of some assistance, please open an issue here in the repository. When doing so, please provide as much detail as possible. This includes listing system specs and what website and script you are trying to execute. Please follow the issue template!

"Refused to execute a script" error(s), what should I do!?

You are seeing this error because of the website's Content Security Policy . Currently there is no way to allow extension content scripts to bypass CSPs in Safari. Automatically, the extension will attempt to circumvent strict CSPs, but if you are still experiencing issues, trying setting the userscript metadata key/val // @inject-into auto or // @inject-into content . You can read more about this in this issue .

Do I need to use the extension's editor to create new userscripts or to edit existing?

You can use your own editor to update and manage your files. As long as you are saving the files to the save location, and they are properly formatted, they should be injected. However, you must open the extension popup beforehand. That means, if you create a new or edit an existing userscript with an external editor and save it to the save location, before injection will occur properly, the extension popup must be opened and the popup must load completely.

What are the keyboard shortcuts?

Whilst using the included editor, clicking ⌘ + s will save the file. While working the editor, clicking ⌘ + f will bring up the search bar and esc will hide it.

When I use @require , where are the required files stored?

All required files are saved as Javascript files in the extension container folder in macOS 11.x. That folder is located in the default save location, at: ~/Library/Containers/Userscripts/Data/Documents/require/ . If you move files from the require folder or manually edit the manifest.json file, you will likely break app/extension functionality.

Code level contributions are welcome. I prefer to collaborate directly with contributors rather than receiving spontaneous pull requests . If you feel you can improve the project in some way, please reach out to me by email or by opening an issue with your improvement/feature request.

Further, any issue marked "help wanted" is actively seeking assistance. Please respond to those issues with feedback, guidance or offers of coding assistance.

  • use semantic commit messages
  • under most circumstances, you should fork the most current version of the develop branch for your contributions

Please ensure your contributions align with the project's license before committing anything.

The quickest and easiest way to support the project is by leaving a positive review on the App Store if you enjoy the extension and want to see future improvements. Seeing these reviews let me know I am doing something right, or wrong, and motivates me to continue working on the project.

The second best way to help out is to sign up to beta test new versions of the app. Since this extension values your privacy, and does not collect any data from users , it is difficult to gauge how the extension is being used. By signing up to be a beta tester it not only allows you to test upcoming features, but also gives me the opportunity to elicit direct feedback from real users.

Please join and test the corresponding beta version in releases via the TestFlight public link.

Userscripts does not collect any data from its users nor monitor activities or actions you perform within the application and extension. This means everything that you do with the application and extension is private to you and is never shared with the developers or third parties. Since there is no data collection, there is no data retention of any kind.

Copyright (c) 2018-2024 Justin Wasack

Licensed under the GNU General Public License v3.0 license for all open source applications. A commercial license is required for all other applications.

  • Swift 34.1%
  • JavaScript 31.2%
  • Svelte 29.7%

IMAGES

  1. Userscripts for Safari

    userscripts safari reddit

  2. UserScripts Safari is a very useful and free script plug-in on Apple

    userscripts safari reddit

  3. UserScripts Safari is a very useful and free script plug-in on Apple

    userscripts safari reddit

  4. UserScripts Safari is a very useful and free script plug-in on Apple

    userscripts safari reddit

  5. iOSのSafariでカスタムJSやCSSを使える拡張機能「Userscripts」の使い方

    userscripts safari reddit

  6. [Request] Userscripts/Userstyles for Safari iOS : r/jailbreak

    userscripts safari reddit

COMMENTS

  1. An open-source userscript Safari App Extension

    Userscripts for Safari - An open-source userscript Safari App Extension. With .safariextz support gone in Catalina I was kind of hoping something like this would exist and from a quick search it turns out it does. It's really basic compared to the likes of Tampermonkey, but it's on the App Store today and does what it says on the tin.

  2. A user-script manager for iOS/iPadOS : r/apple

    A user-script manager for iOS/iPadOS. Safari. Haven't seen much news about this but I for one looked very forward to a User-script manager for iOS/iPadOS that allowed me to modify sites as per my needs and load scripts from GreasyFork, SleazyFork or UserScript.zone . And my wishes were fulfilled recently when Macaque dropped.

  3. r/userscripts on Reddit: Gear

    We develop both the browser and the Userscript engine itself. It's built-in and can perfectly integrate with the whole browser with better performance, user experience, and compatibility, and supports more functionality. We also provided many developer tools that can edit, and debug Userscripts just from the browser.

  4. GitHub

    Awesome Userscripts A curated list of Awesome Userscripts. User scripts can improve your browsing experience, and open a lot of possibilities to make the sites you visit better by adding features, making them easier to use, or taking out the annoying bits.

  5. GitHub

    An open-source userscript manager for Safari. Contribute to quoid/userscripts development by creating an account on GitHub.

  6. mobile safari

    2 Userscripts for Safari is currently in the process of being ported to iOS 15, as a Safari Web Extension. It's a big task though, they'll appreciate help.

  7. Getting Started with User Scripts

    Here are step-by-step instructions to install these scripts. Install the Userscripts browser extension for Safari. Enable the extension. Go to the Safari drop-down menu and select Preferences. When the Preferences window appears, go to the Extensions tab. Make sure the "Userscripts" extension is enabled.

  8. Question "Userscripts" Safari Extension : r/Safari

    Question "Userscripts" Safari Extension. I'm trying to add some of the userstyles styles that I use in Chrome. try both copy/pasting the CSS code and adding the .css file remotely to Userscripts and no luck. it doesn't work. even wrote a very simple CSS style from scratch to test it and that doesn't work either. javascript UserScript works fine ...

  9. Greasy Fork

    What are user scripts? User scripts put you in control of your browsing experience. Once installed, they automatically make the sites you visit better by adding features, making them easier to use, or taking out the annoying bits. The user scripts on Greasy Fork were written by other users and posted to share with the world. They're free to install and easy to use.

  10. GitHub

    Enrich your browsing experience, whether it be on mobile (iOS) or your desktop (macOS) - steventheworker/safari-userscripts

  11. Current state of content blockers and Safari web extensions on iOS

    For Youtube in Safari, there's also Vinegar. Ideally Userscripts Safari will come out eventually to have something just for that and other scripts.) Interesting. Thanks for sharing.

  12. Userscripts on the App Store

    ‎Userscripts is an open source Safari extension that lets you save and run arbitrary bits of JavaScript (and CSS) code for the websites you visit. It implements a code editor right in your browser for a simple method of creating, editing and saving your code. Features: - Open source - Straightforwa…

  13. greasemonkey

    Restart Safari, and you will see a new entry in the menu bar for "GreaseKit". Click on the link to the .user.js file found in the post to install the userscript.

  14. Userscripts extension for safari will not recognize user.js files

    Userscripts is installed, activated as an extension, and allowed on all websites in safari. I am wondering if the method of copying the file from my iphone and pasting it into the directory isn't actually creating the user.js file but every single piece of userscripts Q&A will not address how to get user.js files.

  15. extratone/userscripts-safari

    An open-source userscript manager for Safari. Contribute to extratone/userscripts-safari development by creating an account on GitHub.

  16. User scripts for reddit.com

    Reddit Video/Image/GIF Downloader [Redditsave] Adds a download button to Reddit posts that contain videos, images, or GIFs. The button will open a new tab to redditsave.com with the video/image/GIF URL pre-filled.

  17. GitHub

    After downloading Userscripts, go to the iphone Settings > Safari > Extensions. Under Allow These Extensions click on Userscripts and turn on and set Allow Websites to Allow. Next, open the Userscripts app and set the directory. Remember this directory for saving your .js file to. Now copy the code in reddit_compact_userscript.js.

  18. [AskJS] userscripts for safari on ios : r/javascript

    AskJS. hi, i was wondering if there is anyway to add a custom script to safari on ios 14 like one can with the desktop version? i just want to redirect google amp articles to the actual article and small things like that. thanks! 1. 4.

  19. How can I block Twitch ads on mobile Safari? : r/Adblock

    I've tried using adGuard, nextDNS, adblocker pro extension which all don't work. Is it possible to block ads on Twitch on mobile Safari?

  20. Awesome Userscripts

    Awesome Userscripts A curated list of Awesome Userscripts. User scripts can improve your browsing experience, and open a lot of possibilities to make the sites you visit better by adding features, making them easier to use, or taking out the annoying bits.

  21. GitHub

    Tampermonkey is the leading userscript manager for browsers, available for Chrome, Edge, Safari, Opera Next, and Firefox.

  22. NewbingandBard/quoid-userscripts

    In earlier versions please click the Set Userscripts Directory button and select the directory; Enable the extension in Safari (And grant permissions) Manage extensions from Settings App (Settings > Safari > Extensions) or Safari App (AA button on iPhone, extension-icon on iPad, also where you open the extension's popup interface)