Latch

Playing

Consent and the safeword

Who else may see or do anything on your box β€” your AI Handler, a pack's Handler, your pack-mates β€” how much of it a day, the ceiling over all of them, the safeword that stops everything, and what can never be granted.

On this page

Tip

New to the Pup ID or packs? Start with Pup ID and packs, explained β€” what they are, and why you might want them.

Latch is yours. Nobody but you can do anything on it until you say so, one tick at a time, on one page: /consent (Settings β†’ System β†’ who else may act, or the πŸ›‘ bar on the dashboard once somebody holds a grant).

Everything here is about other voices: your local AI Handler, a pack's Handler, your pack-mates. Your own game β€” locking, the wheel, training, reflections β€” never asks this page for anything.

Note

Somebody appears here once they could act: your AI Handler once you set it up, and a pack's Handler and pack-mates once the den lets you in. Until then /consent says Nobody else β€” and that is exactly true: nothing but you can act on this box.

Who is acting

Every line in your log says who did it. The ones that are you:

Actor What it is
user you, on the web
api, shortcut you, through the bearer token (a Shortcut, a script)
bot you, relayed by the chat bot β€” it may say a mantra for you (and, switched on, step out for hygiene), never turn a key

The ones that are not you:

Actor What it is
ai your local AI Handler
pack:… somebody in a pack you joined, named by their key
system the app's own bookkeeping β€” a timed freeze running out, an overdue task failing, a badge

Only your own voices count toward your streak and the heatmap. A day on which only your Handler or your AI acted is an empty day on the calendar β€” they cannot keep a streak alive for you. They never earn you XP either. Their time on your clock still counts toward the lifetime totals, because it was really on your clock.

Principals and the menu

You grant things to a principal: your AI Handler, a pack's Handler, or a pack's members as a group. Each gets its own section on /consent, and each section lists only what that kind of principal can be given:

Permission AI Handler a pack's Handler pack-mates
Lock status β€” locked, frozen or free βœ“ βœ“
The clock β€” time left, when it ends βœ“ βœ“
The clock of a hidden lock βœ“ βœ“
Streak and level βœ“ βœ“
Today's duties β€” reflected, checked in, recited βœ“
Photos you pick, item by item βœ“ βœ“
Toys / gear you pick, item by item β€” for your AI Handler, all your owned toys / gear βœ“ βœ“ βœ“
Badges earned with kit βœ“ βœ“
Your papers β€” your other badges, and any collar you wore in that pack (never another pack's collar or countersignature) βœ“ βœ“
Countersign your papers βœ“
Add time (minutes a day) βœ“ βœ“
Freeze the clock β€” timed only (minutes a day) βœ“ βœ“
Assign training β€” no reward, no penalty (per day) βœ“ βœ“
Write a prompt for a later day (per day) βœ“ βœ“
Schedule maintenance β€” your hygiene slots and how long they run, never the emergency window (changes a day) βœ“ βœ“
Say a line on your Handler page (per day) βœ“ βœ“
Send kudos (per day) βœ“
Read your last few reflections β€” in chat only βœ“
Post on its own profile β€” your Handler's profile, each post a draft you approve (per day) βœ“
⚠ Post without asking (per day) βœ“
Post: what you've earned Β· ⚠ what you got wrong Β· photos you pick Β· ⚠⚠ your own words (entries) β€” what a post may be written from βœ“

One of the app's own achievements says a number as well as a name β€” Long Haul is a lock of a week or more and its paper says how long, Good Dog counts verified training β€” so under Your papers each rides only beside the permission that would show that number: Long Haul, A Year Under and Let the Wheel Decide need the clock; Good Dog, Said Out Loud and Still Here today's duties; First Latch the lock status, the streak ones the streak, On the Record the photos. Pack-mates can never be given the clock or the duties, so those six never reach them. The chat room is shown less than any of those permissions β€” today's duties as done or not, the clock as time left β€” so it names one only when it is shown the number itself: First Latch always, Long Haul and A Year Under with Show the clock, the rest never.

A playset's badge answers to the same rule, read from its rule: locked on N days and a count of spins need the clock, a count of training, reflections or check-ins today's duties, a count of locks the lock status; a finished badge needs the permission for every number its rule states β€” locked on 25 of 31 days the clock, and reflected on 20 today's duties as well; joined and granted need Your papers alone β€” so pack-mates get an event's joined badge, and a count of locks only if you gave them the lock status β€” never one that states the clock or your duties (a finished badge states the days you were locked). One that counts anything else (your kit, your health, a refusal) β€” or whose rule can no longer be read β€” is shown to nobody. So is a badge from a part of Latch this one does not know (a module removed since, or one a later version adds): nothing can say what its number is, so nobody else sees it. The pack's own two, Collared and A week in the pack, state no number and need Your papers alone.

Some kit badges say a lock's length too. With a cage in service every lock is a stretch of wearing it, so Well worn and Second skin (all the time you have spent in gear, locks included) and Workhorse or Veteran on the cage (its bouts and their time are your locks) need the clock beside Badges earned with kit β€” pack-mates never get them. Hands free and Well trained (you came while caged) need the lock status. The rest of the kit's badges ride under Badges earned with kit alone.

Nothing is ever ticked for you. A new principal starts with nothing; each permission is its own tick, and each one can be revoked with one tap. Revoke everything is at the bottom.

A grant is a row that is never edited: changing a limit revokes the old grant and writes a new one, so the page's history is exactly what you allowed, and when.

Training they assign

Training somebody else assigns is a one-off: it is not added to your library, it never comes back on the wheel, and it carries no reward and no penalty β€” completing it earns you the usual XP, letting it expire costs you nothing. It may ask for a verification photo, like any training. When they leave (or take the collar off), their open training is withdrawn.

While your timer is hidden, training whose title or description talks about time β€” "10 minutes", "until 9:30", "…left" β€” is refused: you have to be able to read your training, so it cannot be hidden from you, and it must not tell you the time you chose not to know.

A prompt written for you

A prompt somebody writes is for one later day β€” never today β€” and is a reflection, a check-in or a mantra (the questions a day has). On that day it replaces the library's question, but only while their permission to write prompts is still live, they are still the one holding it (a pack's next Handler does not inherit the last one's prompts), and you are not paused. Revoke it, leave the pack or say the safeword, and the prompt is gone from the page at once; resume and it comes back. Nothing about it is deleted either way. While a hidden lock runs, prompts somebody else wrote are not shown at all.

Limits

Every per day permission has a limit you set when you tick it. The day is your day, midnight to midnight in your timezone.

Everything anybody else does happens now: a request that claims another time β€” a command queued hours ago, or dated into yesterday to use yesterday's allowance β€” is refused as expired, and nothing they do is ever stamped before a pause you have already said.

When something is refused, your log gets one line saying who tried what and why β€” at most twenty per voice, and twenty per Handler, pack or AI, a day, so a door somebody keeps knocking on does not flood it. The other side only hears a short code; a hard day and the ceiling both reach them as a plain "refused".

The safeword

πŸ›‘ Pause everyone β€” on /consent, on the dashboard, from your API token (POST /api/v1/pause) and from the chat bot's token β€” suspends every grant at once, reads included: nobody can see your clock, your photos or your streak, and nobody can act. It never asks why, it never needs a fresh page, and saying it twice is the same pause.

What can never be granted

These are not switches that happen to be off. They do not exist, so there is nothing to tick and nobody β€” no Handler, no pack, no AI β€” can ever be given them:

The emergency key always works β€” whatever you granted, whether or not you are paused, whoever else is acting at that moment.

The chat bot

The chat bot is you, relayed β€” a program on your own machine that reads what is due today, reminds you in a chat room, and can say the safeword for you. It gets its own token, made on /consent (The chat bot): shown once, stored only as a fingerprint, revoked with one tap. It is never a principal β€” there is nothing to grant it β€” but it relays into a room, and whoever runs that room's server can read everything it posts, and could send commands as you. So what it reaches is a short list, and six switches on the same page widen it:

Switch Default What it does
Relay your AI Handler's lines on the latest thing your AI said today, while it may still speak (switched on, its line granted, nothing paused) β€” only a line it marked safe to relay when it wrote it (written knowing nothing of your kit, your clock or a hard day, repeating no training title or name β€” its lines), that still names none of your kit and no training title in your box and, while a lock is hidden, says nothing about time
Relay a Handler's lines off the same rule, labelled with the kind its signer declared β€” a person or an AI (a question they wrote for today too; your AI's own question never travels)
Show the clock off time left and when it ends β€” never while a lock is hidden (a hidden lock whose time is up still reads locked)
Recite and log for you off lets it recite today's mantra and log a habit (!recite, !log), always as now β€” never back-dated; anybody who can post in that room as you could do it too
Talk to your AI Handler here off !ask β€” your AI Handler's chat from the room: the same conversation as the AI page, seeing everything you granted it (your reflections, your kit, the clock), its answers posted in the room as it wrote them. Never a hidden lock's time, and never an answer written knowing what you have since paused
Hygiene from the room off !hygiene and !relocked β€” hygiene out and back in, which stop and restart your clock, so anybody who can post in that room as you could do it too. Always as now, never backdated; never your lock's time

It never carries your words, anybody's name, a training title, your kit or anything from your health data β€” a badge earned by your kit, your health or a refusal reaches it only as a badge β€” unless you switch on Talk to your AI Handler here: then your AI's answers carry whatever you granted your AI, because that is the conversation you asked to have there. The model is yours and so is the choice; the room is somebody's server. It can pause but never resume. While a token is live the footer says so: reaches out: bot. The routes themselves are on the API page; setting the bot up, its commands and the room rules it checks on every sync are on its own page.

Why health never leaves

Health readings steer the game on your box (see Health): a short night eases the Handler off. None of it is ever sent anywhere. Anything that leaves your box β€” a pack card, an AI's context, the bot β€” is worked out as if the health module did not exist, so there is nothing health-shaped in it to leak: no "recovery" reason, no forced check-in, no readings. Even a refusal caused by a hard day reaches the other side only as "refused".


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.