A few weeks ago I was on a call sharing my screen, walking a teammate through a prompt I'd been iterating on in ChatGPT. Mid-sentence I scrolled up — and there, three messages back, was a chunk of a customer's data I'd pasted in earlier to debug something. Real email, real account info, sitting right there on a shared screen.
Nobody said anything. Maybe nobody noticed. But I noticed, and I spent the rest of the call only half-present, trying to remember everything else still in that thread.
If you live in ChatGPT all day, you already know the problem. The thread is your scratchpad. You paste logs, keys, customer rows, half-finished internal docs — things you'd never put in a doc you planned to share. And then someone says "can you share your screen real quick" and suddenly your scratchpad is a presentation.
Why the usual advice doesn't work
The standard answers are all some version of "be careful":
- Open a clean tab before sharing.
- Scroll to the top.
- Use a separate "demo" account.
These fail for the same reason all manual checklists fail under pressure: the moment you actually need them is the moment you're distracted, talking, and not thinking about hygiene. You remember after. The fix has to happen before the screen goes live, and it has to require zero discipline in the moment.
What I wanted instead
I wanted something that just sat there and blurred sensitive parts of a page automatically, so that even if I forgot, the leak couldn't happen. A few requirements:
- Local only. Whatever it does, it never sends page content anywhere. A privacy tool that phones home is a contradiction.
- Before, not after. It blurs while the page renders, not after I've already exposed it.
- Per-element, not whole-screen. A full black box is useless for a demo. I still need to show the working parts.
The interesting technical bit
The naive approach is to listen for some "I'm sharing now" signal and react. That's too late — there's a visible frame where the data is exposed before the blur kicks in. You're racing the screen capture.
The approach that actually works is to apply the blur as a CSS layer that's already present on matched elements, and only reveal on explicit interaction (hover-to-peek, or a toggle). Roughly:
.privacy-blur {
filter: blur(8px);
transition: filter 0.12s ease;
user-select: none;
}
.privacy-blur:hover {
filter: blur(0);
}
The hard part isn't the blur — it's deciding what to blur on an arbitrary page you don't control. You can't hardcode selectors for every site. So you end up with a mix of:
- Heuristic matchers (things that look like emails, keys, long tokens, currency near billing-ish labels).
- A
MutationObserverto catch content injected after load — critical for chat apps like ChatGPT, where messages stream in dynamically and a one-time pass on load misses everything. - User-defined rules per domain for the stuff heuristics can't catch.
The MutationObserver part was the one I underestimated. In a normal page you blur once on load and you're done. In a streaming chat UI, content arrives continuously, so the observer has to re-run matching on every batch of new nodes — while staying cheap enough not to lag the page. Debouncing the observer callback and only scanning added nodes (not re-scanning the whole DOM) was what made it usable.
I packaged it up
I ended up turning it into a small Chrome extension so I'd stop relying on my own memory. It's local-only, blurs matched content before it's visible, and lets you peek per-element. If the same problem bites you, it's Screen Privacy Blur on the Chrome Web Store.
But honestly, the extension is secondary to the point I actually want to land:
The takeaway
Treat your ChatGPT thread like a shared screen by default, not like a private notebook. The moment you paste anything real into it, assume it could end up in front of someone. Build the habit — or build the guardrail — before the "can you share your screen" moment, because that moment never comes with enough warning.
How do you handle this? Separate accounts, a scrub-before-share ritual, something else? Genuinely curious what's worked for people who demo in ChatGPT a lot.
Top comments (0)