A privacy-first QR code scanner PWA. Decode QR codes from your clipboard, image files, or camera — with blurred results that require explicit user action to reveal.
| Method | How it works | Best for |
|---|---|---|
| 📋 Paste | Paste a screenshot (Ctrl+V) anywhere on the page, or click the paste zone to auto-read your clipboard | Screenshots from Win+Shift+S / Cmd+Shift+4 |
| 🖼️ Upload | Drag & drop an image file, or click to browse | Saved QR images, photos |
| 📸 Camera | Live camera feed with real-time QR detection | Physical QR codes in the real world |
Everything is blurred until you choose to see it. Decoded content is hidden behind a blur with an eye-off icon. Click to reveal, click again to re-blur. No accidental exposure.
Smart content preview. Before you reveal, a subtle pill tells you what kind of content was detected — URL, 2FA code, Wi‑Fi credentials, contact card, email, phone number, JSON, hex, Base64, or plain text. You know what you're about to see without seeing it.
Clipboard auto-expiry. When you copy decoded content, it's automatically cleared from your clipboard after 2 minutes. A live countdown shows exactly how long until it's wiped.
Blurred paste preview. Pasted screenshots appear as a thumbnail with a soft blur and reduced opacity — enough to confirm you pasted the right image, not enough to expose sensitive content.
Paste anywhere. No need to click into a specific field. Press Ctrl+V anywhere on the page and your screenshot is decoded instantly.
Auto-detect on return. Switch back to the app after taking a screenshot, and it automatically reads your clipboard. Screenshot → Alt+Tab → already decoded. No extra clicks.
One-click copy. The copy button is always visible, even while content is blurred. Copy without ever revealing.
OTP secret auto-extraction. When a 2FA setup code (TOTP) is detected, Copy extracts only the secret key — not the full URL. A subtle "Copies SECRET only" hint confirms what's happening. No manual parsing required.
Install to your device as a Progressive Web App. Opens in its own window, appears in your app drawer and Alt+Tab switcher, and works offline.
Pure black background, crisp typography (Inter for UI, JetBrains Mono for decoded content), and minimal chrome. Nothing competes for your attention — just the scan result.
npm install
npm run dev # → http://localhost:5173
npm run build # Production build to dist/PRs welcome — see CONTRIBUTING.md and the roadmap for ideas.
Built with assistance from Cline, an open-source AI coding agent.
