Skip to content

LockIn

Your friends are on the call.LockIn lets you stay.

Camera on. Friends in the room. You just need forty quiet minutes. LockIn keeps Discord running, then stops the reflex to open the window for “just one second.”

Launch email and occasional build notes. No weekly funnel.

Real LockIn focus workspace with timer, guarded Discord, weekly rhythm, and streak
The real interface from the current build.

Discord is not the problem. Opening it without thinking is.

I started building LockIn for nights when my friends and I study together on Discord. I wanted to stay in the room without turning one quick reply into forty minutes of yapping.

Most blockers remove Discord. LockIn removes the decision to resist it. The call can stay alive; reaching for the window becomes a choice you have to see.

You clicked Discord. LockIn makes the click visible.

Guard Screen hides Discord without terminating it. Go back to work, take an explicit five-minute exception, or end the session. The exit exists; it just cannot happen unconsciously.

  • Discord is hidden; Guard Screen does not terminate its process
  • Every reach for a guarded app increments its “Blocked today” count
  • The exception lasts five minutes and can be used again

The app grew up.

The timer is now one part of a full native workspace: focus, app rules, history, analytics, and settings live together.

01Focus workspace
LockIn Focus view with countdown, presets, guarded apps, and weekly rhythm
02Local analytics
LockIn local analytics with focus totals, trend chart, and outcomes
03Per-app rules
LockIn guarded-app list with behavior, daily interception count, and active toggle

More than a timer. A workspace for the whole focus cycle.

The new build handles the moment you reach for an app, the break that follows, and the pattern you build over time, all without an account.

01

A different rule for every app

Discord can use Guard Screen while another app uses Hide Only or Quit App. Each row can follow the default or override it.

02

The reflex leaves a mark

“Blocked today” counts how many times you reached for each app. The counter resets when the day changes.

03

Autopilot brings the next block back

If a break ends and you wander off, LockIn waits, takes the screen, counts down, and starts the next block.

04

A HUD that stays out of the way

A floating countdown stays above your windows. Controls appear on hover; the resting state only shows what matters.

05

Local analytics, not tracking

Compare 7 days, 30 days, or all time: focused time, active days, best day, longest blocks, and outcomes.

06

History that includes the walk-aways

Completed, cancelled, and abandoned sessions stay visible. Export the ledger as CSV or JSON.

Small details that hold the block together

The new interface is not a mockup layer. It is wired to the real timer, history, and app rules.

25/5, 50/10, or Custom

Switch presets in the Focus view or set up to 180 focus minutes and 60 break minutes.

Guard Screen · Hide Only · Quit App

All three behaviors can be global or specific to one app. Guard Screen remains the default.

Weekly rhythm and streaks

The sidebar shows your streak; the Focus view summarizes minutes and sessions across the week.

CSV and JSON

The local session ledger exports in open formats from inside the app.

Add Discord. Start a block. Stay with your friends.

  1. 01

    Add the apps that pull you in

    Choose Guard Screen, Hide Only, or Quit App per app. Finder, Dock, System Settings, Terminal, WindowServer, and LockIn are protected.

  2. 02

    Start the block you actually need

    Use 25/5, 50/10, or your own duration. Glance at time from the window, floating HUD, or menu bar.

  3. 03

    Stay in the call, not in the window

    When you enter Discord during focus, LockIn hides it and shows Guard Screen. During the break, guarding stops.

For work that happens beside other people.

Study calls with friends

Stay present in the call without turning it into forty minutes of conversation.

Camera-on coworking

Share the room while protecting the block you said you would finish.

Apps that need to stay alive

For calls, uploads, and background work that should not die when a window is hidden.

People who want local data

Your focus patterns do not need to become a remote profile.

Your focus data stays on your Mac.

No account, cloud sync, remote analytics, or network dependency in the current build.

  • Config, state, daily interception activity, and history live in ~/Library/Application Support/LockIn/.
  • The current build has no login, sync, remote analytics, or network client.
  • The Analytics screen is calculated on your Mac from local session history.
  • You can export that history as CSV or JSON.

The honest blocker questions

What it records, what it cannot stop, and where every escape hatch goes.

What stops me from quitting LockIn?

Nothing. The current build does not install a privileged helper or prevent ⌘Q. Quitting stops guarding immediately, records an active focus block as abandoned, and relaunch starts fresh. Guard Screen is a speed bump, not a cage.

What does “Allow 5 minutes” do?

It opens that app for exactly five minutes. You can use it again; the current build has no allowance cap or penalty. If the app is still frontmost when time expires, LockIn hides it and shows Guard Screen again.

Does it record every reach or exception?

Every interception increments that app’s “Blocked today” counter, which resets when the day changes. Five-minute exceptions do not have their own separate log or long-term ledger yet.

What does Analytics show?

Across 7 days, 30 days, or all time: focused time, completed sessions, average per active day, completion rate, focus trend, weekday pattern, best day, longest block, and completed, cancelled, or abandoned outcomes.

Does LockIn quit guarded apps?

Not in Guard Screen or Hide Only: both behaviors hide the app. Quit App is a separate, explicit third behavior that requests termination.

Do the call, camera, microphone, and screen share keep working?

Guard Screen uses macOS hide, not terminate, so the process stays alive. The full Discord call, camera, microphone, and screen-sharing matrix still needs manual validation before release.

When does LockIn intervene?

Only during the focus phase and only for active apps in your list. Guarding stops during breaks and when the session ends.

Do I need an account or internet?

No. The current build stores and calculates everything on your Mac, has no network client, and works offline.

Want to test the new build?

Join the early-access list. I’ll email when LockIn is ready for a real Discord study-call test.

Designed and built by Orlando AscanioSwift · SwiftUI · AppKit
LockIn, Stay in the call. Stop opening Discord. | Orlando Ascanio