Come here. Sit. Latch is a lock game you play by yourself β a Handler that asks after you, a wheel that messes with your clock, training that wants proof, and a log that remembers all of it.
Built for pups who are tired of waiting for a handler to show up. You don't need one to be held to something. You need a rule, a voice, and a record you can look back at without flinching.
πΎ No handler? Good.
Most chastity apps assume there is somebody else holding the key β a keyholder to find, to keep interested, to wait on. Latch assumes there isn't, and builds the structure instead. This is self-play with the volume turned up: something that notices, that asks, that keeps score honestly, and that never once needs another person to log in.
Latch never talks to a physical device and never will. The emergency key is one tap, costs you nothing but the clean-unlock XP, and is never hidden, throttled, or shamed. Stopping is the game working.
It asks for a reflection every day you're locked, checks in on a cadence, hands you mantras, and notices when you skip. Firm and affirming. Every word it says is yours to rewrite.
Append-only. The clock is derived from the log, never stored, so nothing in a browser can quietly change the truth. Undo strikes through; it never deletes. Late is marked late, forever.
One container, one SQLite file, one media folder. No account, no cloud, no telemetry, no CDN β this page included. If this website vanished tomorrow your instance would keep working, guide and all.
πΈ Have a sniff around
These are real screenshots of a real instance β running a seeded demo log of about five months of play, so you can see what the charts, the streaks and the badges actually look like once there's something in them. Click any of them to see it properly.
πΎ Why it's built like this
The cage is the least important part. What Latch is really for is the pup headspace β the calm that comes from a clear rule, something that notices, and a day with a shape. The timer gives the day an edge; the Handler gives it a voice; training gives it work; the log gives it a memory.
Reflection is required, not optional. A paragraph a day, or thirty seconds spoken. Missing it is an event with a cost.
Denial without reflection is just waiting. Writing down where your head went is what turns a locked day into training.
Streaks and levels are there because they feel good, and because a heatmap with a hole in it is honest.
Winning is a day where you were locked, did the training, wrote the reflection, and can read it back a month later and recognise yourself. Best boy is a rank you reach by showing up.
Some weeks are a four-hour lock and a mantra. Some are a week with a hidden timer and the Handler at full strictness. Both are the game.
Consent here is with yourself, and it's renewable. You chose the strict setting; you can change it, and the record will show you did.
𦴠Where it's at
Latch is being handed to a small number of people to try. It is used daily by the person who writes it, it has a full manual, and it does not eat your data β but it is early, it is one person's project, and the roadmap below is a direction rather than a schedule.
actor=ai, and every action is an event. Your words never leave
the LAN.π Take me home
Latch runs as one container on anything that has Docker β a spare laptop, a NAS, the box in the closet. It takes about two minutes. There is nothing to sign up for and nothing to pay.
# grab the source, then: docker compose up -d --build # it's now at http://localhost:8770 β that's it.
Your play data lives in a Docker volume
called latch_data, not in the folder, so you can update or reinstall
without losing anything.
The whole app. Run it with Docker, or with the included setup wizard if you'd rather click through it. This is the one most people want.
Download sourceA dependency-free installer with Windows-98 chrome and a pup aesthetic. Checks Docker, writes your config, builds, starts, and opens Latch for you.
Download for macOSAll twenty-five pages, right here β your first lock, every module, the privacy model, rewriting every word the Handler says, and getting your data back out. Read it before you install anything.
Read the guide./setup.sh in the
source is the whole installer. Windows and the ISO are on the way.
/guide from the markdown in docs/, so it is always the
manual for the version you are running and it works with the internet unplugged.
The same pages are here if you want to read them first.
π¬ Come say hi
Latch is one person's project and it is early. A good bug report or a clear suggestion is genuinely the most useful thing you can give it β more than a star, more than a thank you. Come find me on Matrix.
Open room for anyone playing Latch β questions, setup help, feature arguments, showing off a streak.
#latch:matrix.aurionblack.comFor anything you'd rather not say in a room. I'm the person who writes it.
@lockedtrainee:matrix.aurionblack.comAGPL-3.0-or-later, copyright Lockedtrainee. A public mirror is being set up β until it's live, ask me in the room and I'll get you access.
latch.json, the CSVs
and the bundle are your whole journal in plaintext. No bug needs them β if I need
data I'll ask for one specific row. Same for your API token and anything from
.env. A screenshot is fine, after you've looked at what's
in it.