The all-in-one Grok userscript that you could ever need!
Requires a userscript manager like Violentmonkey or Tampermonkey (Chrome / Edge / Firefox / Safari)
Click the button above → your userscript manager will open and ask you to confirm the install.
Replaces the default Grok greeting logo with the SuperGrok logo.
Hides all SuperGrok upgrade prompts and upsell banners across the entire interface — including the sidebar badge, header upgrade button, model menu upsells, "Upgrade plan" menu items, inline banners, and any upgrade dialogs/overlays.
Injects a live counter into the Grok query bar showing your remaining queries and reset time for the current model. Updates automatically and includes a countdown timer when you're rate limited.
Injects a small usage bar very similar to the one in settings/usage under the composer, it shows your weekly usage divided by what its being used by, such as chat/grok build/api, ect.
Automatically dismisses Grok's satisfaction survey popups, "Think Harder/Quick Response", suggestion popups, and more.
Hides Grok's suggested follow-up prompt chips so they don't clutter the end of a response.
Hides specific model options from the model selector dropdown. Individually toggle Heavy, Expert, and Auto from a collapsible sub-panel (its trigger shows a live summary, e.g. Heavy, Auto, or None). CSS-only, zero overhead — only activates when a model menu is open. Hiding Heavy also hides any "Upgrade to Heavy" buttons.
Individually hide the Build, Imagine, Skills and Connectors, and Automations entries from the main sidebar menu. Matched by label text rather than link URL, so they keep working even if Grok changes the underlying routes.
If enabled, automatically enables private chat mode when you open Grok.
Hides the "This chat won't appear in your history and will not be used to train models." banner shown above private/temporary chats. CSS-only, zero overhead.
Stops Grok from automatically scrolling to the bottom as responses stream in, letting you read at your own pace without losing your position.
Automatically hides or blurs conversations with sensitive names from both the sidebar and the "See all" menu. Matching chats are not deleted — they are either hidden or blurred while Privacy Mode is enabled. Turning it off restores them instantly.
Categories detected:
- NSFW / Sexual — explicit terms, porn site names, kink/fetish terms, etc.
- Personal / Medical — STDs, pregnancy, addiction, mental health, self harm, etc.
- Abuse / Assault — domestic abuse, SA, harassment, stalking, etc.
- Drugs — names of drugs, vaping, smoking, etc.
- Legal — lawsuits, attorneys, court, felonies, arrest, legality
- Guns / Self-Defense — firearms, calibers, ammo types, specific brands
- And more!
Uses a single pre-compiled regex for performance — no lag even with hundreds of sidebar items.
Blur Chats (instead of hide) — optionally blur sensitive chats instead of hiding them. Default is hide.
Privacy Custom Words — add your own words/phrases in the settings panel to hide/blur chats matching terms not already covered by the built-in categories.
Panic Hotkey — set a keyboard shortcut (default Ctrl+Shift+H) that instantly toggles Privacy Mode on or off from anywhere, including while typing in the chat composer. Hidden automatically on mobile, since there's no keyboard to trigger it.
Auto-Lock on Idle — optionally turns Privacy Mode on automatically after a period of no mouse, keyboard, scroll, or tab activity (default 5 minutes, configurable). Useful if you step away from an unlocked machine.
PIN Lock — set a 4-digit PIN (in the settings panel) to require it before Privacy Mode can be turned off, whether that's via the panel checkbox or the Panic Hotkey. The settings panel itself always opens freely — the PIN only stops someone else from switching Privacy Mode off once it's on. Changing or resetting an existing PIN also requires entering it first. This is not fullproof, if the script is turned off from the userscript manager it can bypass this, this isnt something that can be changed
Hide Username / Hide Email / Hide Avatar — hide your account name, email, and/or profile picture in the sidebar footer. All three default off and apply automatically whenever Privacy Mode is enabled, but each can be switched on individually if you want that piece of your identity hidden while Privacy Mode is on.
A dedicated floating panel for Grok's /imagine video and image generation — activated by the 💡 button that appears near the main settings menu.
| Option | Description |
|---|---|
| Enabled / Disabled | Master toggle for all Imagine Menu interception |
| Extend Video Length Bypass (PATCHED) | Bypass the extend-video-length limit (1–30 seconds) — injected into each chat POST request before it's sent |
| Auto-Retry on Moderation | Automatically re-submits the prompt when Grok flags or blocks a generation |
| Smart Retry | On each retry, rewrites the prompt using a different obfuscation strategy (leet speak, zero-width character insertion, synonym swaps) to slip past moderation filters |
| Persistent Prompt | Saves your last prompt before every retry — if Grok clears the input box after a block, the prompt is automatically restored |
| Max Retries | How many times Auto-Retry will attempt before giving up |
| Disable Video Loop | Stops generated videos from auto-looping when playback finishes |
| Hide Overlay Controls | Hides the control overlay that appears over generated videos |
| Prompt Library → Open | Folders, tags, search, insert into composer, Imagine “Use” inject, and versioned import/export JSON |
A live status line inside the panel shows intercept on/off, last video-length path (or “maybe ignored”), retry progress, and moderation reason when detected.
Create and manage custom response style instructions that get prepended to your messages. When a style is active, its instructions are injected into every chat POST request, telling Grok how to respond.
- Manage button in the settings panel opens a dialog to add, edit, delete, and activate/deactivate styles
- Styles are stored in
localStorageand persist across sessions - Active style instructions are prepended to the user message field via fetch interception
Intercepts Grok's image and video API responses in the background and builds an in-memory lookup table of media URLs, filenames, prompts, and timestamps. Injects download buttons directly onto generated images and videos, and adds a Mass Download button on the /imagine favorites page.
- Downloads use the original HD URL where available
- Filename templates (
{date},{id},{type},{prompt}) with progress UI for multi-file queues - Media database is automatically trimmed after 2,000 entries to prevent memory growth in long sessions
NOTE: (mostly not needed anymore since Grok finally semi-fixed this but helpful for ones that arent clickable)
Automatically converts URLs, domain names (including subdomains like clips.twitch.tv or sub.site.com), and @mentions in Grok responses into clickable links.
- Links appear blue by default and turn purple after you've visited them — just like a search engine
- Full subdomain support — the entire
subdomain.domain.tldis captured, not just the root
Smart @mention routing — detects the nearest platform keyword (within ~150 characters of the @mention) and routes to the correct profile URL. Multiple platforms in the same message don't interfere with each other.
Supported platforms
| Detected keyword | Links to |
|---|---|
| instagram / insta | instagram.com/user |
| tiktok / tik tok / TT | tiktok.com/@user |
| snapchat / snap | snapchat.com/add/user |
| bluesky / bsky.app | bsky.app/profile/user |
| threads | threads.net/@user |
| twitch | twitch.tv/user |
| kick | kick.com/user |
| youtube | youtube.com/@user |
| facebook / fb.com | facebook.com/user |
linkedin.com/in/user |
|
| github / gh | github.com/user |
| telegram / t.me | t.me/user |
| soundcloud | soundcloud.com/user |
| spotify | open.spotify.com/user/user |
| medium | medium.com/@user |
| substack | user.substack.com |
| patreon | patreon.com/user |
| ko-fi / kofi | ko-fi.com/user |
| vsco | vsco.co/user |
pinterest.com/user |
|
| tumblr | tumblr.com/user |
reddit.com/user/user |
|
| mastodon | mastodon.social/@user |
| discord | discord.com/users/user |
| twitter / x / tweet | x.com/user |
| (no context) | x.com/user (default) |
- Run-at:
document-start— starts intercepting before any content loads - No external dependencies — pure vanilla JS, no jQuery or library downloads
- GM APIs used:
GM_xmlhttpRequest(binary downloads),unsafeWindow(fetch interception) - SPA-aware: Monitors URL changes to re-apply features across Grok's single-page navigation
- Settings are stored in
localStorageunderGrokEnhancer_*keys — local only, never synced - In-memory caches (e.g. media database) are session-only and cleared on page refresh
This script runs entirely in your browser — no data is sent anywhere by the script itself.
- No analytics or telemetry of any kind
- No external requests — all network calls go to grok.com's own API (same as normal usage)
- Custom Styles only modifies outgoing request bodies locally — no external server involved
- The
@grant unsafeWindowpermission is required solely to intercept fetch for Custom Styles, the Media Downloader, and the Weekly Usage Bar
This project incorporates elements from these fantastic scripts:
| Script | Author | Link |
|---|---|---|
| Grok Rate Limit Display | KHROTU, Blankspeaker, CursedAtom | Greasy Fork |
Made with ❤️ by Angel · MIT License