A native macOS floating webcam overlay — like a rear-view mirror for your screen.
Shows your camera feed as a small, always-on-top floating window. Perfect for video calls, streaming, or keeping an eye on your space while working.
- Floating overlay — stays on top of all windows, click-through when you need it
- Virtual zoom & pan — adjust framing without losing resolution
- Aspect ratios — 16:9, 4:3, 3:2, 1:1, or freeform
- Multiple presets — snap to corners, edges, or full strips
- Per-display profiles — save layout settings per monitor (⌥⌘1)
- Snapshot — capture the current frame to Pictures/ and clipboard (⌥⌘Space)
- Video effects — sepia, noir, instant, bloom, crystallize, and more
- Motion detection — red border alert when movement is detected
- Face tracking — auto-pan to keep your face centered
- Recording — circular buffer captures the last N seconds; save clips or start/stop manual recordings
- Bezel overlay — simulated rear-view mirror frame
- Grid overlay — rule-of-thirds composition guide
- Push-to-reveal — temporarily show/interact with the window
- Auto-hide on fullscreen — hides when any app goes fullscreen
- Launch at login — starts automatically when you log in
- Menu bar app — no Dock icon, runs quietly in the background
brew install --cask connectjeff/rearview/rearviewmirrorInstalls to /Applications/RearViewMirror.app. Launch from Spotlight or:
open /Applications/RearViewMirror.app- Download the latest release from releases
- Move
RearViewMirror.appto your Applications folder - Open it (right-click → Open on first launch to bypass Gatekeeper)
- Grant camera access when prompted
git clone https://github.com/connectjeff/rearview.git
cd rearview
make build # builds Release app bundle
make run # builds and launches
make release # creates a .zip for distributionRequires macOS 14+ and Xcode Command Line Tools (xcode-select --install).
Click the mirror icon in the menu bar to open settings. Right-click for the menu.
| Keys | Action |
|---|---|
| ⌥⌘H | Show / Hide window |
| ⌥⌘T | Toggle click-through |
| ⌥⌘B | Toggle bezel overlay |
| ⌥⌘R | Start / Stop recording |
| ⌥⌘S | Save clip (export ring buffer) |
| ⌥⌘M | Cycle position presets |
| ⌥⌘, | Settings |
| ⌥⌘P | Push-to-reveal (toggle) |
| ⌥⌘Space | Take snapshot |
| ⌥⌘G | Toggle grid overlay |
| ⌥⌘1 | Save current layout as display profile |
| ⌥⌘Q | Quit |
All settings are available in the settings popover (left-click the menu bar icon):
- Camera — select device, toggle mirror
- View — zoom, pan left/right, pan up/down
- Window — opacity, click-through
- Position — aspect ratio, anchor presets
- Motion — toggle motion detection, adjust sensitivity
- Face Tracking — toggle auto-pan to follow face
- Recording — buffer duration, start/stop, save clip
- Display — bezel overlay, push-to-reveal
- Video Effects — choose effect (sepia, noir, instant, etc.), toggle grid overlay
- System — launch at login, auto-hide on fullscreen
Move the window to a different monitor and press ⌥⌘1 to save the current layout (position, size, zoom, pan, opacity, mirror, aspect) for that display. The profile loads automatically when the window moves back to that screen.
AVCaptureSession
├── AVCaptureVideoPreviewLayer (basic mode — zero overhead)
└── AVCaptureVideoDataOutput (advanced mode)
└── VideoPipeline
├── MotionDetector — vImage luminance differencing
├── FaceTracker — VNDetectFaceRectanglesRequest
├── ClipRecorder — circular CVPixelBuffer ring + AVAssetWriter
└── CIFilter chain — video effects (sepia, noir, bloom, etc.)
└── MetalRenderView — MTKView + CIContext rendering
FullscreenMonitor — periodic CGWindowListCopyWindowInfo scan
App switches between basic and advanced mode automatically. When no advanced features are enabled, the hardware-accelerated preview layer is used for zero-overhead display.
MIT — Copyright (c) 2026 Jeff Alderson