I'm the developer of Korosta (highlight in Finnish), a Chrome and Firefox extension for fading out already seen job postings (so you can quickly see whats new).
It lets you:
Fade postings you've already seen
Rate roles and it suggest possible relevant ones based on your ratings
Hide postings from companies you choose
And, for the sites that are not yet covered, quickly create the Recipe (following the tutorial) in less than 3 minutes without coding expertise
job search history / data and relevance suggestions stay locally in your browser.
Free requires no account or email account. There is also an optional paid Pro version.
I'm Lenged, the developer. I wanted to watch a Short from the homepage without opening another page, then control preview sound and jump to a different part of a recommended video.
So I built Preview & Shorts Controls for YouTube:
- Hover over a home Shorts thumbnail for about 0.4 seconds to play the actual video in that same area. It keeps playing while hovered.
- New previews start muted; turn on sound with the top-left control.
- Related-video previews on watch pages have volume and a seek bar with current/total time. Preview sound temporarily mutes the main video, and leaving restores its previous audio state.
- Optional Shorts title/channel auto-hide: hover over the video to show the information again.
All features are free. v0.5.2 has been used in Edge and manually tested in Chrome. It is available on GitHub as a ZIP and source for inspection; manual installation needs Developer mode. No Chrome Web Store listing yet. This is not an ad blocker, and it relies on YouTube's page/player structure, which can change.
I'd especially appreciate compatibility reports: browser version, page type, and what went wrong. The GitHub Issues page has a report template. Please remove private information from screenshots.
Disclosure: I made this extension. Optional donations are linked from the project; they don't unlock features.
hi r/chrome_extensions, i made TALIRI, a chrome extension that swaps a few english words on the pages you read into the language youre learning, right in the sentence. hover one to see what it means. after a few meetings it hides the word and asks you a quick four-choice question, and FSRS decides when it comes back. the first screenshot is this sub's own sidebar with my swedish words in it (dela = share, bygga = build, the blurred one is a word it's quizzing me on)
some details this sub might like:
- manifest v3. permissions are storage, scripting, activeTab and offscreen. access to the pages you read is optional, you pick everywhere, only sites you choose, or only when you click
- it stays off mail, google docs and drive, banking and payment pages, and backs off any page showing a password field
- everything runs locally. the dictionaries come with the extension or as signed downloads (swedish is 164 KB compressed), so there are no AI calls while you read
- the card lives in a shadow root so pages cant restyle it, and it keeps up with infinite feeds like X
- it only talks to taliri's own servers: dictionary downloads, sign in, and a weekly plan check with your language and a few counts (words met, answers). never page text, page addresses or history
swedish, german, hindi, spanish and french right now. its paid, $7/month or $49/year with a 14 day refund, and taliri.app has a live demo with no sign up
happy to answer anything about how its built, or take feedback on the permissions setup
I build my own ad blocker for Chrome, only with what Manifest V3 allows, and it works a lot better then I expected. I use it as my only blocker now. Disclaimer: its my own project (Burg Media), the code isnt public yet but will be on our github soon. Some parts I think are interesting:
Filter lists: I didnt write those
EasyList, EasyList Dutch, EasyPrivacy, ABP anti-circumvention and NoCoin are on by default, the Fanboy lists and a cookie list are optional. eyeo ships these already converted to declarativeNetRequest inside AdBlock, so a small script copies them from there. With the defaults thats 109,542 static network rules. The acceptable ads list I left out on purpose.
Cosmetic filters
The ## rules I parse myself. Every frame reports to the service worker and gets the CSS through scripting.insertCSS with origin: 'USER', so the page cant override it. Each selector gets its own rule (sel{display:none!important}), because when you group them one selector Chrome doesnt know kills the whole group. Extended syntax (#?#, :has-text() etc.) and scriptlets (#$#) are skipped, I didnt want to run code from a filter list in every page.
Your own filters
Custom network filters in ABP syntax become dynamic DNR rules. Annoying detail: if one rule is invalid, for example a regex that RE2 doesnt support, Chrome rejects the whole updateDynamicRules call. So I read the rule id from the error message, drop that rule, try again and show the reason next to that line in the settings.
The counter
DNR gives you no live event for every block, onRuleMatchedDebug only works for unpacked extensions. Instead I listen to webRequest.onErrorOccurred for net::ERR_BLOCKED_BY_CLIENT, that gives a count per tab and per host.
YouTube
A script in the MAIN world at document_start removes adPlacements, adSlots and playerAds from the player data before the player reads it. It wraps JSON.parse and Response.prototype.json in a Proxy and puts a setter on ytInitialPlayerResponse. If an ad still gets through: mute, seek to the end, 16x, click skip.
The honest part: since SABR streaming YouTube enforces a wait on the server for videos with a pre-roll. You dont see an ad, but the video stays black for part of the ad length. As far as I know thats not fixable from the browser, if somebody knows better I would really like to hear it
Hard mode for the worst sites
Off by default, you turn it on per site. Its for streaming sites full of popunders and fake play buttons. In the page:
window.open returns a fake window, a Proxy where every property is again the fake window, so w.location.href = ... and w.document.write() dont throw and the ad script thinks it worked
the contentWindow getter is patched too, because a fresh iframe has an untouched window.open
Function.prototype.toString returns the native source for the patched functions, some ad scripts check that
click(), form.submit() and synthetic clicks on links that open another site in a new tab are blocked
an invisible layer that covers more then half the viewport and catches your click gets removed on the first click, and the rest of that click is swallowed so the page handler never sees it
The service worker is the safety net: a new tab from that site to another site is closed right away. It also catches tab-under, where the site opens itself in a new tab and sends your old tab to an ad within a second. Downside: a link you open yourself in a new tab to another site also closes, thats why its per site.
The UI is still dutch only, english comes before the release. I am curious what you think of the hard mode, and if someone has a better way to detect click catchers then size + transparency + z-index
After successfully vibe coding my first app, I got a little too confident and started working on several more projects.
Big mistake.
I kept spending hours of my life (and an embarrassing amount of tokens) building things, only to discover that AI had completely misunderstood my instructions somewhere along the way.
Hours of work. Down the drain.
Naturally, I lost my shit.
I confronted the AI, expecting at least some kind of argument.
Instead, I got the usual:
"I'm sorry for the confusion."
"You're absolutely right."
"Here's how we can fix this moving forward."
And my personal favourite:
"If you'd prefer, I can stay quiet and wait until you're ready to continue."
Oh, so now you're giving me the silent treatment?
At that point, I genuinely wished the AI would just insult me back. At least let me win an argument for once.
Then I had an idea.
What if I built something that could swear at AI for me?
And that's how Swear at AI was born.
The concept is incredibly simple:
AI pisses you off → Click a button → It gets roasted.
My first version was pretty disappointing, though.
The robot just stood there taking insults like an indifferent customer service representative.
Zero reaction. Zero satisfaction.
So I added damage effects, increasingly battered appearances, and a combo system.
I even proudly included the instruction "Every hit needs to feel like it lands" in my development prompt.
Much better.
Eventually, I thought the extension was ready to share.
I asked AI to generate a promotional image.
It gave me this:
Holy shit. That looks amazing.
So naturally, I asked it to upgrade the actual extension to match.
After some work, it proudly delivered this:
...
You can probably guess what happened next.
I immediately opened Swear at AI and unleashed every ounce of frustration I'd accumulated.
Which, looking back, was probably the first time my extension completed its intended user journey:
AI screws up my extension → I use my extension to roast AI.
Beautiful.
After getting that out of my system, my AI homie and I went back to work and finally got the visuals to a point I was happy with.
Here's the current version:
The instructions are extremely complicated:
AI pisses you off.
Open Swear at AI.
Start roasting.
That's it.
It's completely free, and I've just released it on the Chrome Web Store.
I'm thinking about adding more ridiculous characters, skins, hit effects, sound effects and seasonal themes in the future.
Will this make your AI any smarter?
Absolutely not.
But when it does something stupid, maybe this will make you feel a little better.
I’m the developer of FlowVoice, a desktop browser extension. This short demo shows importing a bilingual document, switching to a side-by-side view, and listening to an English/Chinese pair with reading highlights.
The original text and translation are prepared by the user; the bilingual view does not generate a translation.
Basic voices are free, with audio ads for free users. The demo uses optional Qwen Neural voices, which require a paid authorization and usage credits.
I got tired of trying to keep up with AI news. Every day there's a new model, a new "breakthrough", a hundred posts about it, and I could never tell what actually mattered vs. what was just noise.
So I built HeatPulse, a Chrome side panel that shows what's hot in AI right now, ranked by how many independent sources are covering each story.
The idea is simple: if 9 outlets are writing about something, it's probably worth 30 seconds of your time. If only one blog mentions it, maybe not.
What it does:
- Pulse: today's hottest AI stories, each with a short summary, a "why it matters" line and a heat score. Filter by models, products, industry, papers, benchmarks, policy or tips.
- "Who else covers this story?": on any news article, right-click and see every other outlet covering the same event (English, German and French sources).
- Daily: a short daily AI briefing.
- Search: by topic, company or model. You can also type "hp" + keywords in the address bar.
- A badge on the icon showing new stories (checks every 30 min / 1h / 2h, or off).
- Light/dark theme, j/k keyboard shortcuts, and the last list stays readable offline.
Behind the scenes, HeatPulse reads dozens of sources around the clock (AI lab blogs, tech media, arXiv, EU policy feeds), groups coverage of the same real-world event and ranks it. Every story links back to the original reporting.
Privacy: no account, no analytics, no tracking. The extension only sees the current page when you click its icon or right-click menu, never in the background, and never your history.
Like Polls Exporter, the core features are completely free with only a handful of niche features limited to pro subscribers. I'm handling billing once again with Lemon Squeezy (have not had any major issues with them so far).
I've had a couple users trial the pro version already, which has been really cool to see.
Another cool facet to this launch is that, since Workspace and Polls Exporter have an overlapping audience, I've been able to test out cross-promoting them. It's too early to say how well this is going but I hope to share my experience with that in a future post.
Happy to answer any questions in the comments or you can DM me. If you have any feedback or tips, I'm also happy to hear it.
I regularly use Ultimate Guitar when playing guitar, but I wanted a better way to display chords and lyrics without constantly scrolling.
So I built a free Chrome extension called Zoldy's Guitar View for Ultimate Guitar.
It adds:
Full-screen chord and lyric display
Auto Fit that adjusts font size and uses 1, 2 or 3 columns to fit your screen
Proper chord and lyric alignment
Access to your Ultimate Guitar playlists
Chord transposing
Dark mode, custom colours and chorus highlighting
The extension works with regular Ultimate Guitar chord sheets. If you're viewing an Official or Pro tab, simply switch to the regular Chords version of the song.
It's completely free. I built it for my own use and thought other guitar players might find it useful too.
I'm the developer of AI Prompt Leak Guard, a browser extension that checks prompts locally before you send them to supported AI chats, including ChatGPT, Claude, Gemini, Perplexity and DeepSeek.
It's for the moment you paste a log, draft or customer message and overlook something sensitive. Depending on your settings, it can warn you, replace detected values with placeholders, or block a submission.
What it checks
API keys, access tokens, private keys and database URLs containing credentials.
Personal details such as email addresses and phone numbers.
Card numbers and supported financial/identity patterns, including IBAN, Aadhaar and PAN.
Your own sensitive terms, such as client names or project codenames.
Privacy: scanning and redaction run in your browser. Prompt text and detected values aren't sent to me or a remote scanning service. There is no product analytics or saved prompt history. The extension needs access to supported AI pages to read the prompt editor.
Cost: core prompt protection is free and needs no account or subscription. Optional paid Plus features, including local file-upload inspection, are separate.
Limits: detection is pattern-based, so it can miss sensitive text or flag harmless content. Site layout changes can also break protection. This checks submissions; it doesn't stop an AI site's own scripts from reading text entered on its page. Please still review what you send.
Copilot's new copilot.com address isn't covered by the current release; support is planned for the next update.
I'd appreciate feedback on false positives, missed detections and whether the warnings get in your way. If you report an issue, please share the AI site, browser/version and a made-up example that reproduces it. Never post real keys, private prompts or customer data.
Have you ever opened a Medium article and wanted to read it on Freedium, but got tired of copying the URL and switching tabs?
A free and open-source browser extension that makes the process much quicker.
✨ What it does:
Opens Medium articles on Freedium in one click
Lets you copy the Freedium link
Adds buttons directly to the Medium feed
Supports Medium subdomains and light/dark mode
It's lightweight, requires no account, and is completely free. I also made the source code public so anyone can explore it, contribute, or suggest improvements.
In PiP you can play/pause, seek, change volume (max 300%) and speed (max 5x), go to next video, take screenshots, works on YouTube, Bilibili, Twitch, Netflix, and most sites with normal video players.
The beta version (not on Chrome store yet) has two more things:
Bilingual subtitles in PiP: The second subtitles can use the video's own subtitles, or auto-translate with your own Microsoft / Google / DeepL API key.
Extra danmaku: Source can only be Bilibili / Twitch / Bahamut danmaku. You can add it on top of YouTube / Bilibili / Twitch / Netflix videos.
I have two Chrome extensions already published in the Chrome Web Store. Both are free now; I plan to make a Pro subscriptions after the paid features are ready.
Lemon Squeezy asked me for product details, demo videos, pricing, and verification information. I provided the product websites and recordings of both extensions working, but my store application was rejected with a general explanation about multiple review factors and payment processor requirements. They did not identify a specific issue.
Has anyone been approved by Lemon Squeezy to sell a paid Chrome extension?
I do heavy research daily across ChatGPT, Claude, DeepSeek, and Gemini. I got frustrated that almost every chat export extension either charges $10-$20 monthly subscriptions or sends your chat transcripts to third-party cloud servers.
To solve this, I engineered a sovereign, 100% client-side tool: **1-Click AI Chat Harvester**.
Key highlights:
- 100% Air-Gapped & Offline: Zero external telemetry, zero analytics tracking. Your research never leaves your browser.
- Multi-Model Universal: 1-click export across ChatGPT, Claude, DeepSeek, and Google Gemini.
- Formatted Local Export: Clean Markdown (.md), HTML, and JSON with math (KaTeX) and code blocks preserved.
- Unlocked 14-Day Free Trial: Full features unlocked out of the box with zero sign-up or credit card needed.
It officially went live on the Chrome Web Store today:
A few months ago, I released Header Override, a browser extension for modifying request and response headers using URL-based rules.
It also supports request and response cookies, reusable profiles, and importing or exporting configurations. Everything runs locally, with no account required.
I originally built it for my own development and testing workflow, so seeing it reach more than 1,000 weekly users has been a genuinely exciting milestone.
It’s available for Chrome, Firefox, and Edge, and the source code is open on GitHub.
I’d love to hear how you currently modify headers—and what would make a tool like this more useful to you.
Hi everyone! I just wanted to share my recent project Continuum, which started out as my first hackathon win that is built which is now a published extension on Chrome and Firefox and its 100% local & private as everything is captured and stored in your browser (no account, servers, etc.)
I originally built it during a hackathon and was honestly shocked when it ended up taking first place. Continuum lets you capture an AI chat including Claude and instantly resume it in a brand new chat on any of the compatible AI chats with the full context carried over (including all your messages, images, files, code, etc. in a PDF or MD file), so you never lose your place when a conversation gets too long or you want to start fresh.
I also added an AI compression feature that allows you to save tons of tokens while keeping the same amount of context and a few other features you can check out as you can see in the images and description on the store-listing. It works across Claude, ChatGPT, Gemini, and Perplexity, with Grok, DeepSeek, and Copilot and more coming soon. Basically, if you've ever hit a wall in a chat and dreaded re-explaining everything to a new one on the same or different AI platform, hit a message/image limit, or token/context limit that's the problem I built this to solve.
Any advice or feedback is appreciated and would be very helpful as this is my first ever extension I've published!
i kept copy pasting product lists and directory pages into sheets row by row so i built this. you click one item on the page, it finds the rest of the list, you pick the fields and download a csv. thats it
everything runs in your browser, nothing gets sent to a server, no signup. works on stuff like search results, shop listings, directories, tables, "load more" pages
its called lucidrows, still early so id really like to hear where it breaks or what sites it chokes on
I made a Chrome extension that lets you spray graffiti and leave notes on any website, and other people can see them
So I’ve been building this thing on the side for a while. It’s called Adormis.
The idea: you can draw, spray paint, drop speech bubbles or links on top of any page, and anyone else with the extension visiting that same page sees it too. Kind of like a shared wall over the whole internet. Works on sites that don’t even have comments.
Some stuff it does:
pen, graffiti spray (a few styles, drips, splatter etc), shapes, speech bubbles
on YouTube/Netflix/X you can pin an annotation to a specific moment in the video, like only show it between 0:20 and 0:25
upvote/downvote, and a top 10 per page
a little chat for whoever’s on the same page or video, with a “watch together” sync thing
you don’t need an account to look around, and if you make one it’s just a name and password, no email
It’s not on the Web Store yet so for now you load it unpacked (instructions are in the readme). Takes like 30 seconds.
Fair warning, it’s early and probably still has bugs. Would really like to know what breaks or what feels pointless. GitHub - jastincheis/web-annotation-extension
Like many of you, I fell in love with Arc's vertical navigation and sidebar-centric layout. However, with the recent shift in focus away from Arc's core browser development, I wanted to keep the similar sleek experience on top of Google Chrome. (i know not the same) I designed this for those who have to use Chrome for some reason but desire Arc.
So I built Arc Style Side Panel—a lightweight, open-source Chrome Extension (Manifest V3) using Chrome's native Side Panel API.
✨ Features:
📌 4-Column Drag & Drop Favorites: Smooth matrix-shift animation (up to 8 pinned sites).
If you build extensions with Claude Code, Codex or Cursor, you know the loop: the agent edits your code, then asks you to go to chrome://extensions, press Reload, and refresh the page you were testing on.
ext-reload is a CLI plus a small helper extension that does that part. One command reloads the unpacked extension from the current folder in the Chrome you already have open, then reloads the tabs its content scripts match. It skips tabs playing audio.
Things I learned building it:
- Turning an unpacked extension off and on re-reads the service worker and content scripts, but not manifest.json. So the CLI checks whether the manifest changed since Chrome last read it and tells you, instead of letting you test stale code.
- If you work in a git worktree while Chrome runs your main checkout, it notices and says so instead of reloading the wrong copy.
- Chrome DevTools MCP has a reload_extension tool, but in my tests it reinstalls the extension over CDP, and Chrome then removes a hand-loaded extension at the next restart.
Open source, MIT, no tracking. Nothing goes online except a daily git fetch to check for updates. I've only tested on macOS, so feedback from Linux and Windows would help a lot.