NOW AVAILABLE · macOS · Free download

Your Mac won't
unlock until you
do the push‑ups.

RepLock locks your screen at intervals and uses your camera to count reps. The discipline you've been faking, finally enforced.

Download for Mac → See how it works
🔒 100% local — camera data never leaves your Mac
🍎 macOS 12+ · on an Intel Mac?

Three steps.
Zero mercy.

01

Timer expires. Screen locks.

RepLock sits in your menu bar, counting down. When it hits zero, your screen takes over — fullscreen, always on top, across every connected display.

02

Get in frame. Start repping.

Your camera activates. The AI pose model finds your body and counts each rep in real time. Push-ups, squats — whatever you've configured.

03

Last rep. Screen unlocks.

When the last rep registers, the screen releases. Your streak ticks up. The next set is already on the timer.

Built for people who
need to be forced, not nudged.

AI-powered rep counting

Local MediaPipe pose detection tracks your body in real time. Adaptive thresholds learn your range of motion. No internet needed — everything runs on your Mac.

Streak system

Your day streak is front and center everywhere. It's the number you'll fear losing most. 12 days in, you won't dare skip — that's the point.

True screen lockout

Full-screen, always-on-top, can't-be-dismissed overlay. This isn't a notification you swipe away. RepLock means it. Your screen is hostage until the reps are done.

Exercise rotation

Configure a queue of exercises with individual rep counts. Push-ups, then squats, then push-ups again. It rotates automatically. Drag to reorder anytime.

100% local and private

Camera-local by design. Your camera feed is processed entirely on-device via WebAssembly — frames never leave your Mac. No account required, no analytics. Optional online features, if we ever add them, will always be opt-in.

Pause for today
Skip a busy day without burning your streak
🚀
Launch at login
Starts silently when you boot up
😴
3 snoozes per day
Use them wisely — stats track every one

What happens when you
can't skip.

30min
configurable set intervals
10
reps per set · fully customizable
0%
chance of skipping

The honest
answers.

What if I genuinely need my screen RIGHT NOW?

Three escapes, each with a different cost:

Snooze buys 10 minutes and preserves your streak. You get up to 5 per day (configurable 0–5, default 3).

Skip this set closes the lockout immediately but burns your streak — the button is even labeled "Skip set — ends X-day streak" so the cost is in your face.

Pause for today (from the menu bar) suspends all remaining sets until midnight without burning the streak — best when you know you're done for the day.

If you've turned on Hard Mode, snooze and skip are disabled. Pause for Today is your only escape until tomorrow.

What if I'm in a long meeting?

The Pause during meetings setting (on by default) detects when your microphone is active — Zoom, FaceTime, Meet, Teams, or anything else capturing audio — and defers the lockout in 2-minute rechecks until your mic is free. Toggle it off in Settings if you don't want it.

If your mic is muted but you still want to suppress sets (e.g., listening to a webinar), hit Pause for today from the menu bar — sets stop firing until midnight without ending your streak.

What if my camera can't see me, or the AI miscounts a rep?

The pose detector uses fixed angle thresholds. Squats briefly calibrate to your top and bottom positions during the first 3 reps; push-ups use a fixed range and don't auto-calibrate.

If your camera is acting up, the lockout has a camera-picker dropdown to switch to a different device — rep progress carries across the switch.

If the camera is truly unusable, your fallbacks are Snooze (keeps streak), Skip (burns streak), or Pause for Today (keeps streak, kills the rest of the day's sets).

Can I just quit the app to escape?

Technically yes — RepLock is a normal Mac app and you can cmd+Q it. But your streak is based on whether you complete a set on a given day, so quitting just abandons the current set. If you don't come back to finish a set before the day ends, the streak ends naturally.

The lockout itself is fullscreen and always-on-top across all connected displays — you can't drag a different window over it or escape to another monitor.

What if I'm injured or want a day off?

"Pause for today" in the menu bar suspends sets until midnight without ending your streak. For longer breaks (vacation, recovery from a real injury), you can quit RepLock — your streak ends naturally on any day with no completed set, and your stats and history stay intact on disk.

Multi-day pause / vacation mode isn't in v1 yet — it's on the roadmap.

What exercises does it support?

Push-ups and squats at launch, both with full pose-detection rep counting. You can configure a rotation queue with custom rep counts per exercise and drag to reorder.

More exercises (jumping jacks, sit-ups, lunges) are on the roadmap — vote for what you want next via feedback.

Does it work offline?

Yes. The timer, pose detection, and rep counting all run on your Mac with zero network dependency. RepLock only talks to the internet for two things: license validation (on launch, when online) and update checks (on launch and every 12 hours). Both fail silently when offline — you won't get locked out, and your current license state is preserved.

How much CPU and battery does it use?

Outside of an active set, RepLock is a small menu-bar timer with a negligible footprint — a 1-second tick and nothing else. The pose-detection model only runs during the actual set (typically 30–60 seconds), and runs entirely on your CPU/GPU via WebAssembly + MediaPipe. No background sync, no analytics threads, no telemetry pings.

Is RepLock in the Mac App Store? How do I install it?

At launch, RepLock will be a direct .dmg download from replock.app — signed and notarized by Apple, so Gatekeeper opens it cleanly with no scary warnings. Direct distribution (rather than App Store) is what makes the screen-lockout features possible; the App Store sandbox would block them.

RepLock auto-updates via GitHub Releases on launch and every 12 hours. Requires macOS 12 Monterey or later, on Apple Silicon or Intel.

Stop negotiating
with yourself.

Free download. See what it feels like to never skip again.

Requires macOS 12+ · on an Intel Mac?