A minimal macOS menu bar app that shows a live camera preview — like Hand Mirror, but yours.
Click the camera icon in the menu bar. See your face. Close the popover. Done.
- Live preview — AVFoundation-powered camera feed in a dark popover
- Mirror mode — horizontally flipped by default (like a real mirror); toggle it off anytime
- Camera switching — if you have multiple cameras (built-in, external, Continuity Camera), pick from the dropdown
- Smart session management — capture starts when you open the popover, stops when you close it (no wasted CPU/battery)
- Graceful errors — clear messages if camera access is denied, camera is in use by another app, or camera disconnects
- No Dock icon — pure menu bar utility (
LSUIElement = true)
- macOS 13 Ventura or later
- Apple Silicon or Intel Mac with a camera
No Xcode required. Just swiftc (ships with Xcode Command Line Tools).
chmod +x build.sh
./build.sh
open Retrovisor.appThe script:
- Assembles the
.appbundle from scratch - Compiles
Sources/main.swiftwithswiftc - Signs the bundle ad-hoc (works locally; no Apple Developer account needed)
To install permanently:
cp -r Retrovisor.app /Applications/
open /Applications/Retrovisor.appTo start at login: System Settings → General → Login Items → + → select Retrovisor.app.
On first launch, macOS will ask for camera access. Grant it. If you deny it, open System Settings → Privacy & Security → Camera and enable Retrovisor there.
Retrovisor/
├── Sources/
│ └── main.swift # entire app — ~200 lines
├── build.sh # compiles + packages the .app
├── .gitignore
└── README.md
No Xcode project. No Swift Package Manager. No dependencies. Just Swift + AppKit + AVFoundation.
Retrovisor is a sibling to InputSwitch — same minimal menu bar app philosophy, same build approach.
