Each clip is stored as a folder:
Clips/
βββ 2026-01-15T14-30-00/
βββ video_2026-01-15T14-30-00.mov # Video file
βββ notes_2026-01-15T14-30-00.txt # Annotations
βββ clip_info.json # Metadata
Location: ~/Documents/Clips/
Annotations are plain text with optional timestamps and tags:
# Clip Name
[00:05] Opening stance #basics
[00:12.5] First combination #jab #cross
[1:01:25] Footwork drill
Notes:
- Good form on technique
- Need to work on speed
You can modify constants in Core/Constants/Constants.swift:
enum AppConstants {
enum Camera {
static let continuityDiscoveryIntervalSeconds: TimeInterval = 10.0
static let sessionRestartDelaySeconds: TimeInterval = 2.0
}
enum Recording {
static let timerIntervalSeconds: TimeInterval = 0.1
}
}To use your iPhone as a camera:
- Same Apple ID - Both Mac and iPhone signed into same Apple ID
- WiFi + Bluetooth - Both devices have WiFi and Bluetooth enabled
- Nearby - Keep iPhone within wireless range of Mac
- Unlocked - iPhone should be unlocked
- Auto-Discovery - App checks for Continuity Camera every 10 seconds
The app will show "π Continuity Camera appeared!" when your iPhone is detected.
- Space - Play/Pause
- β - Step backward 1 frame (paused) / Skip back 5s (playing)
- β - Step forward 1 frame (paused) / Skip forward 5s (playing)
Generally speaking, add new interface features into their own subfolder of Features/, with separate folders for models, views, controllers, utilities, etc.