Skip to content

Repository files navigation

UserScript Finder

UserScript Finder

VersionLicenseTampermonkeyViolentmonkey

Discover userscripts and extension alternatives for any website — searches GreasyFork, SleazyFork, OpenUserJS, Chrome Web Store, Mozilla AMO, curated catalogs, GitHub Gists, and GitHub from one place.


Installation

  1. Install Tampermonkey or Violentmonkey
  2. Click here to install UserScript Finder
  3. Confirm installation when prompted

How It Works

Click your userscript manager icon on any website and pick a source to search:

┌─────────────────────────────────────────────────────────┐
│ Tampermonkey / Violentmonkey Menu │
│ │
│ ⚙ Find Scripts for reddit.com (GreasyFork) │
│ ⚙ Find Scripts for reddit.com (SleazyFork) │
│ ⚙ Find Scripts for reddit.com (OpenUserJS) │
│ ⚙ Find Extensions for reddit.com (Chrome Web Store) │
│ ⚙ Find Extensions for reddit.com (Mozilla AMO) │
│ ⚙ Find Catalogs for reddit.com (Awesome/Tampermonkey) │
│ ⚙ Find Scripts for reddit.com (GitHub Gists) │
│ ⚙ Find Scripts for reddit.com (GitHub) │
│ ⚙ Reset Script Finder Settings │
└─────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ Scripts for reddit.com │
│ 47 scripts found │
│ │
│ [GreasyFork] [SleazyFork] [OpenUserJS] │
│ [Chrome] [Firefox] [Catalogs] │
│ [Gists] [GitHub] │
│ │
│ 🔍 Filter scripts... │
│ Sort by: Daily installs ▾ │
│ │
│ ┌─ Reddit Enhancement Suite ──────────── [Install] ──┐ │
│ │ Author: honestbleeps · v5.24.6 · MIT │ │
│ │ A suite of modules that enhance your browsing... │ │
│ │ 📥 2.1k/day 📊 1.2M ⭐ 892 🔥 9.2 🔄 3d ago │ │
│ └────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘

Zero visual footprint. Nothing appears on the page until you open it from the menu.

Features

FeatureDescription
Eight Sources + AllSearch GreasyFork, SleazyFork, OpenUserJS, Chrome Web Store, Mozilla AMO, curated catalogs, GitHub Gists, and GitHub from a single interface — or query all enabled sources at once with deduplicated results
One-Click InstallInstall scripts directly from registries and .user.js Gists without leaving the page
Source PreviewView fetched installable .user.js source with bounded syntax highlighting before installing
Install SafetyValidates install origins, .user.js metadata, and dangerous @grant requests before opening a userscript-manager install handoff; unsafe candidates become View actions with inline warnings
Stale Script WarningFlags userscript, GitHub, and Gist results with a red "Stale" badge when last updated more than 2 years ago
Live Search FilterReal-time filtering within results with match count (e.g., 12/47)
Result FiltersNarrow results by recent update window, normalized minimum rating, and language (Any, Browser, or English)
Fielded SearchSearch with author:, license:, source:, name:, or url: prefixes that combine with plain text and filter controls
Source ResilienceAdds per-source timeouts, rate-limit/backoff classification, stale-cache fallback, degraded-result notices, retry controls, and manual-search escape hatches
Source Health DiagnosticsShows per-source OK/cache/stale/partial/rate-limit/failure badges, footer health age, and copyable diagnostics limited to source, host, status, timestamps, cache age, and count
Source Privacy ControlsLets users disable individual sources so those sources disappear from menus/tabs and make no network requests until re-enabled
Sensitive Host ProtectionBlocks source menus and network searches on built-in sensitive hosts such as banks, government, identity, admin, localhost, and local-network pages, with per-host override controls
Match Coverage PreviewFetches raw userscript metadata and compares @match / @include / @exclude rules against the current page, including scheme, host, path, wildcard, and exclude precedence
Root Fallback Coverage LabelsWhen GreasyFork/SleazyFork fall back from exact host to root domain, installable results are labeled Exact host, Broad/root match, or Coverage uncertain from raw metadata
Extension Trust BadgesChrome Web Store and Mozilla AMO results show permission counts, host-access warnings, privacy policy signals, data-collection flags, promoted status, and stale-update warnings when metadata exposes them
Smart SortingSort by daily installs, total installs, ratings, fan score, author reputation, last update, or creation date
Curated CatalogsSearches Awesome Userscripts and Tampermonkey's Userscript.Zone handoff for domain-matched recommendations
GitHub IntegrationSearches repos and Gists matching {domain} userscript/tampermonkey/greasemonkey, shows stars and forks
Dense ModeToggle compact view — hides descriptions and tightens padding for fast scanning
Relative TimestampsShows 3d ago, 2mo ago, just now instead of raw ISO dates
Inline SettingsGear icon opens settings within the modal — no external menus to navigate
Accessible ModalUses dialog semantics, live result announcements, accessible control names, focus entry/restoration, and contained Tab navigation
First-Run Network DisclosureOn first use (or when new sources are enabled), shows which external hosts each source will contact and lets users disable sources before any fetch starts
Manager Compatibility ChecksDetects missing GM menu, network, storage, tab, and Trusted Types capabilities at runtime and shows an actionable degraded-mode report instead of failing silently
Cross-Tab Settings SyncSettings changes propagate to other open tabs via GM_addValueChangeListener with polling fallback
Dismissed ScriptsDismiss results you don't want with per-domain persistence and a "Show all" restore button
Queue to TryBookmark scripts to try later across any domain with a persistent queue stored in userscript manager storage
Persistent PreferencesRemembers your last-used source, sort order, dense mode, and cache duration
Search ModeSwitch between Auto (domain), Exact host, Root domain, or Keyword search modes per your needs
Domain-AwareAutomatically detects the current site and strips www./m./mobile. prefixes
Public-Suffix Aware MatchingNormalizes common multi-label and hosted suffixes such as co.uk, com.au, github.io, pages.dev, and netlify.app before root-domain fallback
Shadow DOMFully encapsulated — styles never leak into or out of the host page
TrustedTypes SafeCompatible with strict CSP pages (Google, YouTube, etc.)

Data Sources

SourceAPIWhat's SearchedBadges Shown
GreasyFork/scripts/by-site/{domain}.json with search fallbackScripts tagged for the current domainDaily installs, total installs, ratings, fan score
SleazyForkSame API, different hostAdult-content scripts for the current domainSame as GreasyFork
OpenUserJS/?q={domain} HTML searchOpenUserJS scripts matching the current domainInstalls, ratings, last update
Chrome Web Store/search/{domain} embedded result dataChrome extensions matching the current domainUsers, rating, rating count, last update, permissions, host access, privacy/data flags
Mozilla AMO/api/v5/addons/search/Firefox extensions matching the current domainUsers, rating, rating count, last update, permissions, host access, privacy/data flags, promoted status
CatalogsAwesome Userscripts README + Tampermonkey scripts.phpCurated userscripts and Userscript.Zone handoff for the current domainCatalog source, category
GitHub Gistsgist.github.com/search HTML searchGists matching {domain} userscriptFiles, stars, forks, last active
GitHubapi.github.com/search/repositoriesRepos matching {domain} userscriptStars, forks, language

Note: GitHub's unauthenticated API is rate-limited to ~10 requests/minute. Results are cached per your cache duration setting. If you hit the limit, wait a minute and try again.

Settings

Access via the ⚙ gear icon in the modal header:

SettingOptionsDefault
Dense ModeOn / OffOff
Default SortDaily installs, Total installs, Ratings, Fan score, Author reputation, Last update, CreatedDaily installs
Cache Duration1, 5, 10, 30 minutes5 minutes
SourcesPer-source On / Off togglesAll sources on
Sensitive Host ProtectionOn / Off plus extra blocked host patterns and per-host overrideOn
Export / ImportDownload settings as JSON or import from a file

Theme

Dark OLED-only interface using the Catppuccin Mocha palette with glassmorphism effects. Each source has its own accent color:

SourceAccent
GreasyForkGreen / Teal
SleazyForkPurple / Mauve
OpenUserJSBlue
Chrome Web StoreYellow
Mozilla AMOOrange
CatalogsCyan
GitHub GistsFlamingo
GitHubOrange / Peach

Color-Coded Fan Scores

ScoreColorMeaning
8.0+GreenHighly rated
6.0–7.9YellowAverage
Below 6.0RedLow rated

Compatibility

Userscript ManagerStatus
TampermonkeySupported; runtime checks validate menu, network, storage, tab-open, and Trusted Types behavior
ViolentmonkeySupported; runtime checks validate the same GM API surface
Greasemonkey / partial managersDegraded; if required GM_registerMenuCommand or GM_xmlhttpRequest is missing, Script Finder shows a compatibility report instead of running source fetches

Works on all websites (*://*/*). Runs at document-idle with zero overhead until activated — the UI is built lazily on first menu click.

If non-critical APIs such as storage, tab opening, menu unregistering, or Trusted Types policy creation are unavailable, the modal shows a degraded-mode notice and diagnostics include the exact missing capability.

Related Tools

UserScript Finder is context-aware — it detects which site you're on and finds scripts made specifically for that domain. No separate window needed.

If you want a standalone search engine to browse scripts by keyword across all repositories (with ratings, installs, and cross-source deduplication), use the companion web app instead:

ScriptHunt — A single-file HTML web app (also hosted on GitHub Pages) that searches Greasy Fork, Sleazy Fork, GitHub, and OpenUserJS in parallel with a full results grid. No Tampermonkey required. Also useful for browsing when you're not in a browser with Tampermonkey installed.

ToolUse When
UserScript Finder (this repo)You're on a website and want scripts for that specific site, without leaving the page
ScriptHuntYou want to search any keyword, compare installs/ratings, or browse without Tampermonkey

FAQ

Q: Why don't I see an icon or button on the page? A: By design. UserScript Finder is menu-only — click your userscript manager icon in the browser toolbar to access it.

Q: GitHub results seem unrelated? A: GitHub search finds any repository mentioning the domain alongside userscript-related keywords. Results are sorted by stars to surface the most relevant ones first.

Q: I'm getting "GitHub rate limit" errors. A: The unauthenticated GitHub API allows ~10 searches per minute. Wait a moment and try again. Results are cached so repeat searches for the same domain won't hit the API.

Q: Can I change the dark theme? A: The dark OLED theme is baked in — no light mode. This is intentional.

License

MIT — permissive open-source license.

Verification

npm install
npm test

Runs 19 tests covering adapter contracts, install safety, match coverage, host normalization, accessibility markup, diagnostics markup, source privacy, sensitive host protection, network disclosure, manager compatibility, root fallback coverage, source runtime, source previews, modal layout at desktop/mobile widths, settings polling cleanup, load concurrency, storage limits, related-site discovery, and @connect allowlist consistency.

Contributing

Issues and PRs welcome. Open an issue for bugs or feature requests.

Adding a Source Adapter

Each source is a class with searchScriptsByHost(host, settings) returning an array of normalized script objects. To add a new source:

  1. Create the adapter class — implement searchScriptsByHost(), getDirectSearchUrl(), and a cache via SourceRuntime
  2. Register in SOURCE_META — add label, tab name, menu kind, footer URL, and unit type
  3. Add SOURCE_CONNECT entry — list all domains the adapter contacts
  4. Add @connect header — one @connect line per domain
  5. Wire into ScriptFinder.services — instantiate in the constructor
  6. Add InstallSafety allowlist — if the source serves installable .user.js files
  7. Add a test fixture — sample response in tests/fixtures/ with an adapter contract test
  8. Add accent colors — source-specific accent in THEME and CSS

The @connect allowlist audit (npm test) will catch missing @connect entries, orphan domains, and undocumented sources.

About

Discover userscripts for any website — searches GreasyFork, SleazyFork, and GitHub from one place.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages