A curated collection of small, single-purpose browser userscripts — with a searchable install catalog.
Browser extensions are heavy, permission-hungry, and often do one thing you could do with 30 lines of JS. This repo is a growing library of atomic userscripts — each does exactly one thing (skip Shorts, strip tracking params, restore right-click, add code-copy buttons, YouTube keyboard shortcuts, …) — plus an auto-generated, searchable install catalog so you can find and one-click-install any of them. Everything runs client-side in Tampermonkey / Violentmonkey / ScriptCat; nothing phones home.
- Live catalog: userscripts.oriz.in — searchable install index (Cloudflare Pages)
- Repo: https://github.com/chirag127/userscripts
- Each script lives in
scripts/<name>/<name>.user.jswith its ownREADME.md
⭐ If this is useful, please star the repo — it helps others find it.
flowchart LR
A[scripts/<name>/<name>.user.js] --> V[validate-userscripts.mjs<br/>metadata checks]
V --> B[build-catalog.mjs]
B --> C[dist/ static catalog]
C --> D[Cloudflare Pages<br/>userscripts.oriz.in]
D --> E[Click install]
E --> F[raw.githubusercontent.com/.../*.user.js]
F --> G[Tampermonkey / Violentmonkey<br/>installs + auto-updates]
- Atomic scripts — one behavior per file; compose the ones you want
- Searchable catalog — the live site indexes every script's name, target site, and description
- One-click install — each catalog entry links to the raw
.user.js; your manager auto-updates frommain - Metadata validation —
validate-userscripts.mjsenforces well-formed==UserScript==headers before deploy - Auto-generated README table — the catalog below is built, not hand-maintained
- Zero tracking — pure client-side scripts, no analytics
- Vanilla JavaScript userscripts (Tampermonkey / Violentmonkey / ScriptCat metadata format)
- Node.js build scripts (ESM), pnpm package manager
- Cloudflare Pages hosting (
wrangler, output dirdist/), custom domainuserscripts.oriz.in - GitHub Actions for validate → build → deploy
scripts/
├── <name>/
│ ├── <name>.user.js # the userscript itself
│ └── README.md # per-script docs
├── build-catalog.mjs # generates the catalog site + README table into dist/
└── validate-userscripts.mjs # metadata header validation
wrangler.toml # Cloudflare Pages config (pages_build_output_dir = dist)
package.json # scripts: validate, build, lint
- Install a userscript manager: Tampermonkey or Violentmonkey
- Open userscripts.oriz.in (or the table below) and click install next to any script
- Your manager prompts to install and will auto-update it from this repo
pnpm install
pnpm run validate # checks every userscript's metadata header
pnpm run build # builds the catalog site into dist/
pnpm run lint # validate + syntax-check the build scriptPushing to main runs .github/workflows/deploy.yml, which validates, builds the catalog, and deploys dist/ to Cloudflare Pages.
One of ~80 small, single-purpose products in the oriz family. See the rest at blog.oriz.in.
Hosting is $0 on the Cloudflare Pages free tier. The scripts themselves are free and run locally in your browser.
Add a folder under scripts/<name>/ with a <name>.user.js (valid ==UserScript== header) and a README.md. Run pnpm run validate before opening a PR — the catalog and this table regenerate automatically on deploy.
Stable and growing. New atomic scripts are added regularly. Conventional commits are the changelog — see the commit history.
MIT — see LICENSE.
Chirag Singhal · chirag@oriz.in
Personal userscripts collection by @chirag127. Tampermonkey / ScriptCat / Violentmonkey compatible.
Click install next to any userscript below, or open its folder for full docs. Your userscript manager will prompt to install and auto-update from this repo.
| Userscript | Site | What it does | Install |
|---|---|---|---|
Add copy buttons to |
any page | Inject a small "copy" button on every code block so you can grab the snippet without hand-selecting. One click copies innerText; button flashes "co... | install |
| AI chat — Auto-continue truncated responses | https://chatgpt.com/* | Auto-clicks the "Continue" button on ChatGPT / Claude / Gemini when a response is cut off by output-token limits, so long generations complete unat... | install |
| Restore right-click + selection + hotkeys | any page | Neutralises pages that block right-click, text selection, copy/cut, drag, and keyboard shortcuts. Stops the hijack at document-start before the hos... | install |
| Auto-reject cookie banners | any page | Auto-click the "reject all" button on cookie consent banners (OneTrust, Cookiebot, TrustArc, Osano, Didomi + generic fallbacks). Why: opt-out is th... | install |
| Copy email links | any page | When you click a mailto: link, copy the email address to your clipboard instead of opening the OS mail client. Toast confirms the copy. Replaces th... | install |
| Copy highlighted links | any page | Copy URLs of every link found in the current text selection to the clipboard (one per line). Tampermonkey menu command — same behavior as the "Copy... | install |
| Preview shortlinks on hover | any page | Hover a bit.ly / t.co / tinyurl / etc. link and see the resolved destination in a tooltip before clicking. Avoids opening blind shorteners that may... | install |
| Fake Filler | any page | Fill every form input/textarea/select on the page with realistic dummy data via a hotkey (Ctrl+Shift+F) or the userscript menu. Replaces the "Fake ... | install |
| Link Klipper (userscript) | any page | Extract every link on the current page and export as CSV download or plain-text clipboard. Captures + |
install |
| Open all links in selection | any page | Tampermonkey menu command — opens every link found in the current text selection in new tabs. Catches both elements AND plain-text URLs (h... | install |
| Per-domain persistent scratchpad | any page | Fixed-position textarea per hostname. Notes persist across page loads via GM storage. Toggle from menu, Esc to close. Useful for jotting selectors,... | install |
| Picture-in-Picture Hotkey | any page | Toggle Picture-in-Picture on the largest/active | install |
| Read Aloud | any page | Read the selected text (or the whole article) aloud using the browser's built-in speech synthesis. Hotkey Alt+R to start/stop, Alt+. to pause/resum... | install |
| Force old.reddit.com | reddit.com | Redirect new Reddit (www/sh/bare) to old.reddit.com. Old UI loads faster, no infinite-scroll, saner comment threading. | install |
| Reopen recent URLs (cross-tab history) | any page | Keep a rolling ring-buffer of the last 30 URLs you closed across all tabs. Menu command opens an overlay listing them; click any to reopen in a new... | install |
| SERP — Toggle site:reddit.com button | reddit.com | One-click button to add/remove site:reddit.com from the current search query on Google, DuckDuckGo, and Bing. For when you want real answers, not... |
install |
| SERP: open all article results | https://www.google.com/search* | Add a button to search engine result pages that opens all article-type results in new tabs. Skips videos, social, shopping, maps. Deduplicates by U... | install |
| SERP: highlight oriz-recommended sites | https://www.google.com/search* | Adds a small gold star to search-result rows on Google, DuckDuckGo, and Bing when the hostname appears in Chirag's curated 2026 links directory at ... | install |
| StereoToMono | any page | Convert stereo audio to mono on any page. Auto-detects playing | install |
| Strip URL tracking params | any page | Strip utm_*, fbclid, gclid, mc_eid, msclkid etc. from the address bar on load and from URLs copied to clipboard. No more tracking-tagged links past... | install |
| Video Speed Controller | any page | Control playback speed of any HTML5 | install |
| YouTube — Copy Title + Channel + URL as markdown | youtube.com | Ctrl+Shift+Y copies the current video as a markdown link with title, channel, and a timestamped URL. Shortcut remappable via menu. | install |
| YouTube — Dislike & next (X) | youtube.com | Press X to dislike the current video AND immediately skip to the next one. Key is remappable via the Tampermonkey menu. | install |
| YouTube — Dislike (D) | youtube.com | Press D to dislike the current video. Atomic — does one thing only. | install |
| YouTube — Hide Shorts everywhere | youtube.com | Hides Shorts shelves + sidebar entry, and redirects /shorts/ to /watch?v= so Shorts play as regular videos. | install |
| YouTube — Like & next (A) | youtube.com | Press A to like the current video AND immediately skip to the next one. Key is remappable via the Tampermonkey menu. | install |
| YouTube — Nav shortcuts (next + previous) | youtube.com | Combined: press N to jump to the next video, P to the previous. Both keys are remappable via the Tampermonkey menu. | install |
| YouTube — Next video (N) | youtube.com | Press N to jump to the next video. Atomic — does one thing only. | install |
| YouTube — No autoplay + no end cards | youtube.com | Kills autoplay, hides end-card overlays, and auto-dismisses the "Video paused. Continue watching?" modal. Stops YouTube from stealing your next hour. | install |
| YouTube — Previous video (P) | youtube.com | Press P to jump to the previous video. Atomic — does one thing only. | install |
| YouTube — Reaction shortcuts (like + dislike) | youtube.com | Combined: press S to like, D to dislike the current video. Both keys are remappable via the Tampermonkey menu. | install |