A sleek, zero-install browser tool that turns your webcam into a professional preview station
Ever needed to quickly check your webcam before a meeting? Want to test multiple cameras without installing bloatware? Need to zoom in on specific details? This lightweight, privacy-focused tool does it allโright in your browser.
๐ Instant Start - Opens and auto-starts your camera in under a second
๐ฅ Multiple Cameras - Seamlessly switch between all your connected webcams
๐ Pro Zoom - Select any area with your mouse to zoom up to 5x
๐ป Ghost Mode - Controls fade away when you're not moving the mouse
๐ธ One-Click Captures - Screenshot with a single button press
โก Lightning Fast - No installation, no loading, just pure performance
๐ 100% Private - Everything runs locallyโyour video never leaves your browser
- ๐ผ Pre-meeting camera checks
- ๐ฌ Content creators testing setups
- ๐ง Webcam hardware testing
- ๐จ Frame composition and lighting tests
- ๐ท Quick screenshot captures
- ๐ฌ Detailed inspection with zoom
๐ Open Live Demo - Start using it right now!
- Download โ Save
index.htmlto your computer - Open โ Double-click the file
- Allow โ Grant camera permission (one-time only)
- Done! โ Your camera starts automatically
That's it. No npm install. No pip install. No package managers. Just pure HTML5 magic.
| What You Do | What Happens |
|---|---|
| ๐ฑ๏ธ Move Mouse | Controls appear like magic |
| ๐ฏ Click & Drag | Select an area โ Instant zoom |
| ๐ Single Click | Reset zoom back to normal |
| ๐ฅ Click Camera | Switch to that camera |
| ๐ฅ๏ธ Fullscreen | Immersive fullscreen mode |
| ๐ธ Screenshot | Download current frame |
| โน๏ธ Stop | Turn off the camera |
๐ก Invisible Interface: Controls auto-hide after 3 secondsโmove your mouse to bring them back
๐ก Precise Zoom: The smaller your selection box, the bigger the zoom
๐ก Quick Reset: Just click once anywhere on the video
๐ก Smooth Switching: Camera switching is instantโno interruption
The moment you open the tool, boomโyour camera is live. No clicking through menus, no configuration screens. Just instant preview.
Want to check if your hair is perfect? Or inspect that sticky note in the background?
- Click and drag a box around any area
- Release your mouse
- BOOMโinstant zoom up to 5x magnification
- Click once anywhere to zoom back out
Minimum selection: 50ร50 pixels (prevents accidental tiny zooms)
The interface knows when to get out of your way:
- Move mouse โ Controls smoothly fade in
- Stop moving โ After 3 seconds, everything fades out
- Perfect for โ Clean screenshots and unobstructed viewing
Got multiple webcams? External camera? The tool finds them all:
- Hover to see your camera list
- Click any camera to switch instantly
- Active camera is highlighted
- Device names shown clearly
Hover the bottom-right to see:
- Camera Name โ Which device is active
- Resolution โ Exact pixel dimensions (e.g., 1920 ร 1080)
- Aspect Ratio โ For composition nerds (e.g., 1.78:1)
One click saves the current frame as a PNG:
- Full resolution capture
- Timestamped filename
- Downloads instantly
- Zero quality loss
| Browser | Minimum Version | Status |
|---|---|---|
| ๐ข Chrome | 88+ | Fully Supported |
| ๐ข Edge | 88+ | Fully Supported |
| ๐ ๏ธ Technical Stack |
Built with the modern web platform:
- WebRTC API โ Native camera access
- Vanilla JavaScript (ES6+) โ Zero dependencies
- CSS3 โ Glassmorphism effects with backdrop filters
- HTML5 Canvas โ Screenshot rendering
- Media Streams API โ Multi-camera management
File Size: ~8KB (yes, kilobytes!)
Load Time: < 100ms
Dependencies: None. Nada. Zero.
index.html # The whole app
README.md # This file
Yep, it's literally one file. That's the point.
Just open index.html in your favorite editor:
<!-- Change zoom limits -->
const scale = Math.min(scaleX, scaleY, 5); // Change 5 to whatever
<!-- Adjust auto-hide timer -->
mouseTimer = setTimeout(() => {...}, 3000); // Change 3000 (3 sec)
<!-- Modify resolution request -->
width: { ideal: 1920 }, // Request different resolution
height: { ideal: 1080 }- Edit the HTML file
- Refresh your browser
- That's it
// Clean async/await camera enumeration
const devices = await navigator.mediaDevices.enumerateDevices();
// Smooth transform animations
transform: scale(${scale}) translate(${offsetX}%, ${offsetY}%);
// Instant screenshot with canvas
ctx.drawImage(elements.video, 0, 0);
canvas.toBlob(blob => download(blob));- Pre-meeting camera checks
- Test new webcam installations
- Verify video quality before calls
- Frame your shot perfectly
- Check lighting and composition
- Test multiple camera angles
- Verify webcam is working
- Compare multiple cameras
- Check actual resolution
- Zoom for detail work
- Capture reference photos
- Test camera positions
Q: Does this work offline?
A: Yes! After the first load, it works without internet.
Q: Can I use this on mobile?
A: Yes! Works on mobile browsers with camera support.
Q: Where are screenshots saved?
A: Your browser's default download folder with timestamp.
Q: Is my video recorded?
A: Nope. Nothing is recorded unless you click screenshot.
Q: Why is it so fast?
A: No frameworks, no bundlers, no bloatโjust pure browser APIs.
Q: Can I embed this in another page?
A: Absolutely! Just iframe it or copy the code.
Because in 2026, you shouldn't need to:
- Install a 500MB app to test your webcam
- Sign up for an account to preview your camera
- Upload your video to a server to take a screenshot
- Navigate through 10 menus to switch cameras
This tool does one thing, does it well, and respects your privacy.
Free to use, modify, and distribute. No strings attached.
Found a bug? Want a feature? The HTML is right thereโfork it, fix it, share it!
Made with ๐ for anyone who just wants to check their webcam without the hassle
No tracking โข No servers โข No nonsense
โญ Star this repo if it saved you from installing yet another app