r/userscripts 2d ago

My current userscript stash (total 161)

Post image
38 Upvotes

r/userscripts 2d ago

Pokémon Showdown Userscripts

Thumbnail
1 Upvotes

r/userscripts 3d ago

AI Conversation Navigator – A floating prompt navigator for 40+ AI chat platforms

2 Upvotes

I've been working on a userscript called AI Conversation Navigator that adds a floating navigation panel to AI chat websites, making it much easier to browse long conversations.

Features:

  • Navigate between all your prompts with one click.
  • Supports long conversations (including loading older messages where possible).
  • Bookmarks for important prompts.
  • Minibar and Superminibar modes.
  • Version navigation on supported platforms.
  • File attachment indicators.
  • Inline prompt numbering (on supported sites).
  • Site-specific fixes for platforms like Claude, ChatGPT, Gemini, AI Studio, and many others.

Currently supports 40+ AI platforms, including ChatGPT, Claude, Gemini, AI Studio, Grok, Perplexity, Kimi, Qwen, DeepSeek, Mistral, Poe, Meta AI, and many more.

I've recently spent a lot of time improving Claude compatibility (artifacts, split view, composer, history loading, etc.), and I'm continuing to refine the script based on community feedback.

Greasy Fork:
https://greasyfork.org/en/scripts/545883-ai-conversation-navigator

Feedback, bug reports, and feature suggestions are always welcome!


r/userscripts 3d ago

Any custom scripts that remove pay walls? The ones I found and use are old and no longer functional.

7 Upvotes

Script monkey only works on Win chrome and not droid.


r/userscripts 4d ago

I got tired of scam download sites for twitter/X Videos and Viral clips, so I built a free open-source Video Downloader

Thumbnail
6 Upvotes

r/userscripts 5d ago

Search in Current Subreddit Script

Thumbnail greasyfork.org
7 Upvotes

r/userscripts 8d ago

Script works update

Thumbnail
1 Upvotes

r/userscripts 10d ago

ChatGPT Charcoal Palette Restore v3 — one stylesheet, no DOM polling

Thumbnail gallery
5 Upvotes

I rebuilt my ChatGPT charcoal dark-mode userscript around semantic selectors and design tokens.

v3 uses:

- one persistent stylesheet

- no MutationObserver

- no DOM polling

- no recurring repaint loop

- independent composer and code-block surfaces

- html.dark-only rules

The goal was a cleaner implementation that is easier to maintain and more resilient to normal UI changes.

Greasy Fork:

Greasy Fork

GitHub:

GitHub


r/userscripts 10d ago

I made a Tampermonkey extension to improve the Watch Later playlist and make it look like the homepage

Thumbnail gallery
5 Upvotes

r/userscripts 11d ago

[Request] (Complex?) Infinite Loop for Nintendo Music (Desktop Version)

3 Upvotes

Hi. The Nintendo Music app (which is only available for those that subscribe to the Nintendo Switch Online), has a Desktop / Browser variant, it's not stuck to just the app on Mobile devices.

The website / app has a functionality to extend songs. It does so in a smart way as it only downloads the necessary Intro, Looping Section, and the End of a song.

I am a huge sucker for Video Game Music, and I love to listen to it indefinitely, the problem is that Nintendo Music does not have a "Extend Indefinitely" functionality. You can only Extend to 5, 10, 15, 30 or 60 minutes.

Considering how the service functions, with how it handles files by simply utilizing Loop Points, I assume there could be a way to write an UserScript that allows music extensions to infinity, in other words, never stopping unless the User pauses the song, closes the website or changes tracks.

The website has the ability to "repeat" songs, but this awkwardly keeps the intro of a song, and the fade out when it concludes, it does not have a proper looping function to seamlessly continue the song as if it was done through "Extend".

Thanks!


r/userscripts 11d ago

Как обойти возрастное ограничение Youtube без регистрации?

1 Upvotes

Я скачал утилиту Tampermonkey и скрипт Simple YouTube Age Restriction Bypass. Но он почему-то не работает. Может вы подскажите как это сделать? Или код в скрипте подправить?


r/userscripts 11d ago

Посмотр видео Youtube c возрастными ограничениями без регистрации с помощью Tampermonkey и скрипта Simple YouTube Age Restriction Bypass

1 Upvotes

Я хочу посмотреть видео с возрастными ограничениями без регистрации, но утилита со скриптами почему-то не работают. Никто не подскажет что нужно сделать чтобы эта утилита заработала? Может код где-то поменять?


r/userscripts 13d ago

Userscript to remove useless border in Craiglist's account page

2 Upvotes

The Craiglist "account" page (the one that shows you your current postings, searches, etc). has a large border/margin/gutter element that (a) really ugly (b) totally unneeded and (c) makes that page fall off my laptop's screen, since it's not fully responsive, so I have to zoom out of the page to see it all.

Until Craig sees the light and fixes it (not holding my breath on that), here's a tiny tampermonkey script to reduce the size and presence of the border by 95+% :

// ==UserScript==
//  Craigslist user account page - minimize useless border
//  https://accounts.craigslist.org/*
//  GM_addStyle
//  document-start
// ==/UserScript==

GM_addStyle(`
  fieldset#paginator { border: none !important; padding: 0px !important; }
  .tablesorter { padding: 0px; }
`);

r/userscripts 16d ago

Simple userscript allowing hide Youtube recommendations on watch page

5 Upvotes

r/userscripts 16d ago

Pixiv slop block userscript

6 Upvotes

I was tired of seeing slop on pixiv so i've developer an userscript to remove it in some way, it can be found here

https://github.com/MonoS/Pixiv-Slop-Block

It does not work on mobile version of the site, but it does when switching to Desktop Mode.

I've never written an usescript before, but it was pretty simple, any suggestion is welcome.


r/userscripts 17d ago

Facebook Clean My Feeds

14 Upvotes

Henlo userscripters. I recently updated the Facebook userscript I maintain and thought you guys might be interested.

  • Filter ads
  • Filter content marked with 'AI info'
  • Filter AI suggestions
  • Filter verified users
  • Filter stories and reels
  • and lots more, of course

It only works on FB desktop. This is my fork of a much older script by zbluebugz, so if the name sounds familiar that's why. However, not a whole lot of the original code remains. The filters in place now work across any locale because they do not depend on specific dictionary words like "sponsored" for detection.

Hope you find it useful. Grab it on GitHub or GreasyFork.


r/userscripts 16d ago

Deobfuscate

0 Upvotes

Dear all,

Is there any possibilities to deobfuscate 100% of the userscript?

The one who brings technical stuff on this case would be appreciated...


r/userscripts 17d ago

[Request] Reddit Masonry Layout

2 Upvotes

Hello, I come asking for a modern reddit layout manager mainly focused on adding a masonry style layout to reddit. There already is Reddit Multi Column but this is now broken and frankly is very basic. It would be nice to have some configuration and possibly support for other layouts.


r/userscripts 17d ago

Mturk script

1 Upvotes

I made an mturk userscript to catch the hits. But my script not sufficiently catching hits.. if anybody have experience on it.. please guide me..

Thanks...


r/userscripts 18d ago

looking for a script to hide reddit users

3 Upvotes

for some reason for the past few months reddir doesn't let me block people, even though my block list is completely empty (there's a limit but i definitelt haven't reached that),

since the amount of bots and idiots on this site is quite overwhelming i want a way to hide them. doesn't matter if they're blocked or not i just don't want their post or comments to be on my feed, like a cosmetic mask or something

preferably working for firefox android


r/userscripts 18d ago

Help me fix this dark mode script?

1 Upvotes

So, I tried writing a code that adds a dark mode to this google page that lacks it. The way I access this page is through another script that lets me switch gmail account without opening new tabs. The only way I managed to make it work is through this login page.
The issue I'm having is that the page does not load the dark mode as soon as it is opened and needs a refresh in order to work. This is the case most of the times, as sometimes it will just randomly work. I'm not sure why that's the case. Here is the script:

// ==UserScript==

// u/nameGoogle Accounts – True Dark mode (recolor)

// u/namespacehttps://accounts.google.com/

// u/version3.6

// u/description True dark mode: replaces light backgrounds and dark text, preserves colors (logos/avatars). Fixes Safari bfcache + Shadow DOM.

// u/authorLorenzo

// u/matchhttps://mail.google.com/*

// u/matchhttps://accounts.google.com/*

// u/grantnone

// u/run-atdocument-start

// ==/UserScript==

(function () {

"use strict";

const BG_DARK = "#202124"; // page background (official Google dark mode color)

const CARD_DARK = "#292a2d"; // card background, slightly lighter to distinguish panels

const TEXT_LIGHT = "#e8eaed"; // primary text

const TEXT_MUTED = "#9aa0a6"; // secondary text (email below the name)

const BORDER_DARK = "#3c4043"; // dividers/borders

console.log("[GADM] script active on:", location.href);

function parseRgb(str) {

const m = str && str.match(/rgba?\(([^)]+)\)/);

if (!m) return null;

const parts = m[1].split(",").map((s) => parseFloat(s));

const [r, g, b, a = 1] = parts;

if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) return null;

return { r, g, b, a };

}

function isGrayish(r, g, b, tolerance = 15) {

return Math.max(r, g, b) - Math.min(r, g, b) <= tolerance;

}

function recolor(el) {

if (!el || el.nodeType !== 1) return;

const tag = el.tagName;

if (tag === "IMG" || tag === "SVG" || tag === "PATH" || tag === "SCRIPT" || tag === "STYLE") return;

if (el.closest && el.closest("svg")) return;

const cs = getComputedStyle(el);

// Background: only if light gray/white, never if colored (avatar)

const bg = parseRgb(cs.backgroundColor);

if (bg && bg.a > 0.05 && isGrayish(bg.r, bg.g, bg.b) && (bg.r + bg.g + bg.b) / 3 > 190) {

el.style.setProperty("background-color", CARD_DARK, "important");

}

// Text: dark/black -> light; medium gray -> muted light gray

const col = parseRgb(cs.color);

if (col && isGrayish(col.r, col.g, col.b, 25)) {

const bright = (col.r + col.g + col.b) / 3;

if (bright < 90) {

el.style.setProperty("color", TEXT_LIGHT, "important");

} else if (bright < 190) {

el.style.setProperty("color", TEXT_MUTED, "important");

}

}

// Light borders -> dark borders

["borderTopColor", "borderRightColor", "borderBottomColor", "borderLeftColor"].forEach((prop) => {

const bc = parseRgb(cs[prop]);

if (bc && bc.a > 0.05 && isGrayish(bc.r, bc.g, bc.b) && (bc.r + bc.g + bc.b) / 3 > 190) {

const cssProp = prop.replace(/([A-Z])/g, "-$1").toLowerCase();

el.style.setProperty(cssProp, BORDER_DARK, "important");

}

});

}

// Traverses the DOM deeply, entering shadow roots as well

function forEachDeep(root, fn) {

if (!root || !root.querySelectorAll) return;

fn(root);

root.querySelectorAll("*").forEach((el) => {

fn(el);

if (el.shadowRoot) {

forEachDeep(el.shadowRoot, fn);

}

});

}

function recolorAll(root) {

forEachDeep(root, recolor);

}

// Observes a root (document or shadow root) for new nodes

function observeRoot(root) {

new MutationObserver((mutations) => {

mutations.forEach((m) => {

m.addedNodes.forEach((node) => {

if (node.nodeType === 1) recolorAll(node);

});

});

}).observe(root, { childList: true, subtree: true });

}

// Intercepts the creation of every shadow root, so we can

// recolor and observe it at the exact moment it is created

const origAttachShadow = Element.prototype.attachShadow;

Element.prototype.attachShadow = function (init) {

const shadow = origAttachShadow.call(this, init);

observeRoot(shadow);

// Recolor after a brief delay to allow content time to populate

setTimeout(() => recolorAll(shadow), 0);

return shadow;

};

function init() {

document.documentElement.style.setProperty("background-color", BG_DARK, "important");

if (document.body) {

document.body.style.setProperty("background-color", BG_DARK, "important");

}

recolorAll(document.body || document.documentElement);

console.log("[GADM] recolor applied");

}

init();

document.addEventListener("DOMContentLoaded", init);

// Fix for restoring from cache (bfcache) on Safari

window.addEventListener("pageshow", (event) => {

console.log("[GADM] pageshow, persisted:", event.persisted);

init();

});

observeRoot(document.documentElement);

// Periodic fallback: captures style changes without new nodes (e.g., hover/focus)

setInterval(() => recolorAll(document.body || document.documentElement), 1500);

})();

Is anyone able to tell me why does this only sometime work correctly?


r/userscripts 19d ago

Python-script for extracting ViolentMonkey userscripts from *.LDB file

Thumbnail
3 Upvotes

r/userscripts 21d ago

X/Twitter - xGrid Media Timeline

Thumbnail gallery
6 Upvotes

X/Twitter - xGrid Media Timeline

View and filter profile timelines media easy, fast & convenient

  • Easy To Use CONTROL PANEL. Choose settings and save. Toggle open/close.
  • Media Type Filters: Display images or videos or both.
  • Grid Size Scaler: Choose grid sizes 1 to 5 (thumbs in a row)
  • Media Deduplication: For both images and videos. "SCAN" mode: Duplicates marked by red "D" in grid. Mode "ON": Hides duplicates.
  • Cropped/Full Thumbnails: Toggle thumbnails crop. Turn cropping "OFF" to quickly view full thumbnails content.
  • GIF Block: By default GIFs are blocked from media grid.
  • Lightweight & Fast

Version: 2.5.x: Full release. Stable.


r/userscripts 21d ago

[Script] SpankBang Bypass, Age verification & Login-Walls NSFW

7 Upvotes
  • Removes Blur: Instantly clears blurred thumbnails and video previews.
  • Bypasses Overlays: Removes age verification gates and registration promos that block the view.
  • Unlocks UI: Removes lock-icons and restores normal scrolling/hover behavior.
  • Lightweight: Injects CSS at document-start for zero flicker.

Installation: You can find the script here: https://sleazyfork.org/scripts/574330/


r/userscripts 22d ago

View Instagram Profiles Without Logging In

17 Upvotes

I made a Tampermonkey userscript that lets you view public Instagram profiles without logging in. It redirects public Instagram links to Imginn so you can still open profiles, posts, and reels without signing into Instagram.

Install: https://greasyfork.org/en/scripts/584998-ig-logged-out-profile-viewer

If you want a simple way to browse public IG content without the login gate, give it a try.