Skip to content

Repository files navigation

Looper

Download CI License: MIT Swift macOS

Minimal native macOS video player — gapless loop, instant open, QuickTime-style scrub.

Double-click or Open With from Finder. No Dock icon. Multiple videos at once. Plays locally with AppKit + AVFoundation only.

↓ Download Looper.dmg · All releases

Features

  • Gapless loopingAVQueuePlayer + AVPlayerLooper
  • Instant open — parallel size + playable probe; native resolution window
  • Accessory utilityLSUIElement, no Dock tile; stays warm between opens
  • Multi-window — cascade placement + per-file frame memory
  • QuickTime-style scrub — transparent overlay that auto-hides; scroll to seek without pausing
  • Drop onto a window — replaces the current clip; extra files open in new windows
  • Apple Silicon native — arm64 only · zero external dependencies · HDR/EDR only when the file is HDR
  • Formatsmp4, mov, m4v via AVFoundation. mkv is registered for Open With but often cannot play (no FFmpeg)

Install

  1. Download Looper.dmg
  2. Open the DMG and drag Looper.app to /Applications
  3. First launch — right-click → Open if Gatekeeper prompts (ad-hoc signed build)

Requires macOS 14+ on Apple Silicon.

Keyboard shortcuts

Focus the video window first.

Key Action
Space Pause / resume
M Mute / unmute
1 Toggle 50% ↔ 100% speed (rate flashes on screen)
L Rotate counter-clockwise 90° (display only)
Return Close this window
[ / ] Slower / faster (0.25× steps; rate flashes on screen)
0 Reset speed to 100%
/ Rewind / forward 1s
Shift + ← / → Rewind / forward 5s

Scroll on the video: up/right = forward · down/left = rewind.

Drop a video onto a playing window to replace it. Extra files in the same drop open in new windows.

Development

xcodebuild -project Looper.xcodeproj -scheme Looper -configuration Release \
  -derivedDataPath build/DerivedData -arch arm64 build
./scripts/install-to-applications.sh

Release DMG (shared .razorcore branding + locked DMG layout):

./scripts/build-mac.sh
# or from Apps/:  uv run --project .razorcore razorbuild Looper

Output: build/Release/Looper.dmg (no loose .app in the repo).

See BUILD_AND_RELEASE.md.

Set as default player

  1. Right-click a video → Get Info
  2. Open With → Looper → Change All…

Docs

License

MIT — see LICENSE. Copyright © 2026 RazorBackRoar

If you need me, give me a holler.