Step away, stay on camera.
Loop a short clip of yourself through a virtual camera so you look present on any video call while you grab a coffee, rest your eyes, or answer the door — your audio keeps passing straight through.
A free and open-source native macOS alternative to CamLoop.
LiveLoop lives in your menu bar and registers a virtual camera that Zoom, Google Meet, Microsoft Teams, Slack, FaceTime, OBS — anything with a camera picker — can select. Record a few seconds of yourself, pick LiveLoop as your camera, and one shortcut swaps your live feed for a seamless loop and back.
- 🎥 Virtual camera — appears as “LiveLoop” in every app’s camera menu.
- 🔊 Audio always passes through — LiveLoop only touches video, so you can keep talking or mute as normal. Nothing to configure.
- 🔁 Seamless loop — plays forward-then-backward (ping-pong) with a crossfade, so there is no visible cut.
- ⌨️ Global shortcut — flip live ⇄ loop system-wide without leaving your meeting window.
- 📶 Simulated lag — optional, never-repeating micro-freezes so the loop reads like a flaky connection rather than a frozen app.
- 🪞 Live preview — see exactly what viewers see, with a self-view of your real camera in the corner while the loop plays.
- 🗂️ Unlimited clips — record, import, export, rename (inline), pin, ↑↓ to browse, ⌫ to delete. No length caps.
- 🔒 Private — clips never leave your Mac. No account, no network, no telemetry.
Everything's included and free — including the things others put behind a subscription:
| Feature | CamLoop Free | CamLoop Pro | LiveLoop |
|---|---|---|---|
| Virtual camera + audio passthrough | ✅ | ✅ | ✅ |
| Saved clips | 1 | Unlimited | Unlimited |
| Clip length | 10 s | Unlimited | Unlimited |
| Global hotkeys | — | ✅ | ✅ |
| Simulated lag | — | ✅ | ✅ |
| Seamless ping-pong + crossfade | ✅ | ✅ | ✅ |
| Import / export clips | — | ✅ | ✅ |
| Pin clips | — | ✅ | ✅ |
| Custom camera name | — | ✅ | ✅ |
| Price | Free | $4.99/mo · $49 | Free & open source |
- Download
LiveLoop.dmgfrom Releases. - Open it and drag LiveLoop to your Applications folder.
- Launch LiveLoop → click Set up LiveLoop → Install Camera, and allow it when macOS asks (Touch ID). (If it doesn't prompt, enable LiveLoop in System Settings ▸ General ▸ Login Items & Extensions ▸ Camera Extensions.)
- In Zoom, Meet, Teams, FaceTime or OBS, choose LiveLoop as your camera.
- Click the preview to start, Record a short clip, then Switch to Loop
(or press
⌥⌘L) and step away.
Notarized by Apple, so it installs like any other trusted Mac app. Your microphone is never touched — LiveLoop only provides a camera, so your audio always passes straight through.
Tip
Using Chrome or Brave? Fully quit it (⌘Q) and reopen it once after installing,
or LiveLoop won't show up in the camera picker (browsers cache the list at launch).
LiveLoop is two pieces that talk over Core Media I/O:
flowchart LR
subgraph App["LiveLoop.app · menu bar"]
CAM[Webcam capture] --> ROUTER{Frame router<br/>live / loop}
CLIP[Clip library] --> LOOP[Loop engine<br/>ping-pong · crossfade · lag]
LOOP --> ROUTER
ROUTER --> PUB[Sink publisher]
end
subgraph Ext["LiveLoopExtension · camera system extension"]
SINK[Sink stream] --> RELAY[relay] --> SRC[Source stream]
end
PUB -->|CMSampleBuffers| SINK
SRC -->|virtual camera| ZOOM[Zoom · Meet · Teams · FaceTime · OBS]
- The app captures your webcam, records/loops clips, and decides — per frame — whether to send the live feed or the loop. It pushes finished 1080p frames into the extension’s sink stream.
- The extension is a deliberately thin, always-stable relay: whatever arrives on the sink it forwards to the source stream that meeting apps read. When the app isn’t running it shows a friendly placeholder card.
- The loop plays forward then backward so its ends meet, and a short crossfade smooths the live ⇄ loop switch. Simulated lag is a seeded, deterministic scheduler that occasionally holds a frame — irregular to the eye, reproducible in tests.
- Audio is never involved: LiveLoop provides a camera only, so your real microphone reaches the meeting untouched.
Design notes live in docs/DESIGN.md.
Requirements: macOS 14+, Xcode 16+, XcodeGen
- create-dmg (
brew install xcodegen create-dmg).
Note
A paid Apple Developer Program membership is required to build a working build, because a camera system extension needs the System Extension capability, which free/personal Apple teams cannot provision. (Downloading the notarized DMG from Releases needs nothing — that's only for building yourself.)
git clone https://github.com/adrbn/liveloop.git
cd liveloop
xcodegen generate # project.yml is the source of truth
# Run the tests (no signing needed)
xcodebuild -scheme LiveLoop -configuration Debug test -only-testing:LiveLoopTestsNotarized release (installs on any Mac, SIP on) — set your team in
project.yml / ExportOptions.plist, store notarization credentials once
(xcrun notarytool store-credentials "LiveLoop" --apple-id you@example.com --team-id XXXXXXXXXX),
then:
./scripts/release.sh # archive → Developer ID export → notarize → staple → DMGImportant
The camera extension must be signed and notarized to load on modern macOS (14+), so the notarized path above is the only reliable way to produce a working build — unsigned or dev-signed local builds of a camera system extension don't load reliably on recent releases, even with SIP disabled.
The app icon is generated from code: python3 scripts/make_icon.py <out-dir>.
LiveLoop/ Menu-bar app
App/ Entry point + AppState coordinator
Camera/ AVCaptureSession + live/loop frame router
Loop/ Ping-pong, lag scheduler, clip frame store, loop engine
Recording/ AVAssetWriter clip recorder
Library/ Clip model + library (CRUD, import/export, pin)
VirtualCamera/ System-extension lifecycle + CMIO sink publisher
Hotkeys/ Global hotkey (Carbon)
Settings/ UI/ Shared/ Preferences, SwiftUI views, image pipeline
LiveLoopExtension/ CMIO camera system extension (source + sink relay)
Tests/LiveLoopTests/ Loop-engine + library unit tests
scripts/ release.sh · make_dmg.sh · make_icon.py · build.sh
- Notarized Developer ID release — signed & notarized DMG that installs on any Mac with SIP on. ✅ Shipped in v1.0.0.
- AI frame morphing — optical-flow / learned interpolation (RIFE/FILM in Core ML) for a perfectly seamless single-direction loop. Today’s ping-pong + crossfade already reads as seamless for the low-motion clips this is built for.
- Per-clip loop settings (speed, lag profile).
- Auto-frame alignment to your current pose before looping.
- In-app auto-updates (Sparkle).
Because looking present while you refill your coffee shouldn’t cost $49, and because a virtual camera you run yourself should be something you can read the source of.
MIT © 2026 adrbn. Not affiliated with CamLoop.