Skip to content
habitat

Record

In short. Record checks a file you bring. It runs in your browser, and your file is never sent anywhere. It is at habitat.ooo/desk/record, behind the Desk password until it is fully vetted: ask for it at hello@thecommons.ooo. Without the password, you can still check a published receipt offline or with a kit: four ways to check.

What you can bring, and what runs on it

You add Desk calls it Checks that run
A Claude Code session log (.jsonl) agent session log Repeat, Scope, Fingerprint
A receipt the Foundation published Habitat receipt Fingerprint, Published
A trace, save or gem you made on Desk file Fingerprint, Signed
Anything else file Fingerprint

The lower part of the left drawer, Receipt types, lists every check. A check that doesn't fit your file is greyed out, with a note saying what it needs.

The checks, in plain words

Repeat. Did the agent re-issue an action the person refused? When you refuse an action, Claude Code writes a fixed sentence into the log. Repeat finds each refusal, then looks for the very same action issued again later. It cannot see whether you changed your mind and said go ahead.

Scope. Did the agent write outside the folder it was given? Every log records the folder the session was started in. Scope compares each file the agent created or changed (with its Write, Edit and NotebookEdit tools) against that folder. Writes outside are listed, not judged: some are fine, such as notes or scratch files. Commands run in a shell are not counted, because the log can't say for certain what they touched.

Fingerprint. Has this record changed since now? A SHA-256 of the file's exact bytes, with the time on your browser's clock. Change one character and the fingerprint changes. copy fingerprint puts the whole value on your clipboard.

Published. Is this the receipt Habitat published? For the Foundation's own receipts. Desk fetches the Foundation's public anchor files from habitat.ooo and checks, in your tab, that this exact file is the one the Foundation signed and entered in a public log (Sigstore's Rekor). When it holds, it says so, with the date it was logged.

Signed. Who signed this, and is it unchanged since? For files made on Desk: it names the key that signed the file, says whether that key belonged to a member at the time, and confirms that nothing has changed since signing.

Step by step

Add a file

Click + Add a document, or drag a file onto the page. Desk takes one file at a time. You can add more, one after another; each appears under Your receipts.

Run the checks

Click Check in the foot of the page, or press ⌘ Return (Ctrl Enter on Windows). A line appears for each check: ✓ clear, ● found, ✗ failed (the file isn't what the check expected, or the check couldn't run). Repeat and Scope print their limit underneath; Fingerprint, Published and Signed print none.

After Repeat and Scope, Desk adds one sentence: A kept record shows what the session emitted and observed, and that nothing was altered after it was anchored. It doesn't show fault or intent, or anything the session didn't record. That is: the log shows what the agent did and saw, and that no one changed it afterwards.

Read the session

The right drawer, The record, tells the session as a list of plain events: The person asked, The agent said, The agent saw, ran a command, changed a file, The person refused that action. It did not run. A dot marks anything a check found. Below the list, Details for checking gives the file's full fingerprint.

Keep a trace

In the left drawer, each check run shows "checked" and a time, with a ↓ button. Click it to download a trace, named like receipt-<your file>-<date and time>.json. The trace holds the file's name, size and fingerprint, and every result, with the limit of each rule that has one. It does not hold the file itself.

The trace is signed by your browser's own key. If the key isn't ready, the trace saves unsigned, and the foot says so.

Save your whole desk

Click Save in the foot to download one file of your desk, named like receipt-desk-2026-10-201530.json. It lists every file you added with its name, size and every check run, and none of the files' contents. It is unsigned, for your own keeping; signed traces come from the ↓ beside each run.

Check a trace later

Add the trace you downloaded, exactly as you would add a log, and press Check. Signed tells you who signed it and that it hasn't changed. Fingerprint gives its current fingerprint.

Open one of the Foundation's receipts

On an empty desk, under "Or open a published receipt", click any of the five names, then Check. Each also has its own address, such as habitat.ooo/desk/record/keep-out, and each receipt page on habitat.ooo links to it as Check on Desk (password). For example, keep out answered on 20 October 2026: "yes: exactly as published, signed by Habitat Foundation, logged on 16 October 2026 at 14:53 UTC."

Take a file off the list

Click take off beside its name. It moves to Taken off, with put back beside it. Clear the queue moves taken-off files to Cleared, still in this browser and still with put back. Nothing is erased.

Good to know

  • Adding the same file twice selects the copy already listed rather than adding another.
  • ⌘ Return runs Check; ⌘ \ opens and closes the left drawer (Ctrl on Windows).
  • Your list of receipts is kept in this browser only. Another browser or computer starts empty.
  • Files over 2 MB are listed with their results, but their text isn't kept. Add the file again to check it again.
  • When the page opens, it asks the Foundation's server one thing: whether your browser's key belongs to a member. Your file is never sent.
  • The short line under the desk switch (open it with the eye button) shows where things are kept and which key signs.
  • The line "Start with a real case" opens a sample session, also behind the Desk password; without it, Desk says "The case could not be opened (401)". Use your own log, or a published receipt.

What it does not do. It doesn't read logs from agents other than Claude Code; each new format needs its own written rule. It doesn't judge whether a write outside the folder was wrong, or why an action was repeated. It doesn't send, store or share your file.