Start here
What Latch is
A self-hosted, single-player lock and denial game with a Handler, a wheel of fortune, photo-verified training, and a quantified play log โ in the register of pup headspace.
Latch is a solo lock game. You lock, the clock runs, and the game โ through its Handler, its wheel and its training โ shapes what happens to that clock and to your head while it does. Everything you do is written to a log that becomes your timeline, your stats, your streaks and your stamped photos. Quantified life, but a game.
It borrows its shape from chastity-keyholding apps like chaster.app and its soul from pup play: the good boy, the kennel, the Handler, training, headspace. The copy in the app is written in that register โ firm and affirming. If that is not your register, the words are yours to change (Customise); the mechanics work either way.
The loop
- Cage up. Choose a sentence (or roll dice for one, or hide it from yourself) and lock.
- Live locked. The Handler asks for a daily reflection and periodic check-ins. Training gets assigned โ some of it wants a verification photo. The wheel adds time, removes time, freezes the clock or hands you a task.
- Log everything. Photos, notes, voice memos, mantras, headspace sessions. Every one of them is an event with a timestamp โ and a when field, if it happened earlier.
- Time served. Unlock clean for the XP, or use the emergency key early. Either way the session is a record: a recap card, stamped photos, a row in your stats.
- Look back. Streaks, heatmap, rates per week, headspace over time. Then cage up again.
The parts
| Part | What it does | Page |
|---|---|---|
| The clock | Server-authoritative timer derived from the event log. Add, remove, freeze, undo, hidden mode, dice. | Playing |
| The Handler ๐พ | Daily reflection (typed or spoken), check-in surveys, mantras, affirmations, headspace sessions, a missed-reflection audit. | Handler |
| Wheel of Fortune ๐ก | Weighted segments: time added, time removed, a freeze, a random task, or nothing. Cooldown between spins. | Wheel |
| Training ๐ | A task library with rewards, penalties, deadlines and photo verification. Overdue training fails on its own. | Training |
| Photo check-in ๐ธ | One tap from the dashboard: the picture is the entry. | Playing |
| Gallery, stamps, recap cards | Photos overlaid with the stats as they were at the shutter; a session recap you can share. EXIF stripped. | Photos |
| Progress | XP, levels, ranks, streaks, 26-week heatmap, per-week rates. | Progress |
| Export | JSON, CSV, a zip with your media. Yours, restorable, never automatic. | Export |
| API | Bearer-token JSON for Shortcuts and bots. Off until you turn it on. | API |
What makes it different
- The timer cannot lie.
end = started + sentence + adjustments + frozen time, computed from an append-only log every time it is read. Undo voids an event; it never deletes one. A lock you log after the fact is marked logged later forever. The record stays honest about when you told it. - Reflection is enforced. You have to write. You have to talk. Skipping it is an event the Handler notices. That is the immersion mechanism, not a nag.
- It is entirely yours. One binary, one SQLite file, one media folder, on your hardware. No account, no server of ours, no telemetry, no CDN. The API is off until you set a token.
- Modules are plugins. The Handler, the wheel and training are packages dropped into a directory. So is anything you write. See How modules work.
- Free and open source. See Free and open source.
What Latch is not
- Not a keyholder service. Nobody else holds your key. There is no other person in the loop unless you build one (see Packs, a proposal).
- Not a device controller. It never talks to a lock. Your physical key is yours.
- Not social. It posts nothing anywhere. Sharing is a file you exported and chose to send.
- Not multi-user. One principal per instance. Every event records who did it
(
user,system, a module,api,ai) so roles can come later without rewriting the log.
Who it is for
A pup who wants structure and a record. A curious person who wants a lock game they can trust with their own words. A self-hoster who wants one more thing that runs on the box in the closet and never phones home. If you are one of those, start here.
This page also ships inside the app, at /guide โ so your own instance always serves the guide for the version you are running, with the internet unplugged. Get Latch ยท Something wrong here? Tell me.