How it works
There’s no trick. That’s not modesty, it’s the whole design, and knowing it should make you trust the tool more, not less.
The conversation was on your disk the whole time
Every assistant that can resume a chat has to store the chat. Yours are already on your disk (for Claude Code, as JSONL in ~/.claude/projects/; see Assistants for each tool). Every exchange you’ve had, what you asked, what it said, and how you reacted, is already there.
Nobody reads it. The industry treats it as exhaust. Claude Code deletes it after 30 days.
stratless reads it.
Read, cluster, count, load
-
Read. It walks each session into moments: one thing you typed, paired with what the assistant was doing when you typed it. Whatever the code can settle for itself (which project you were in, whether you interrupted, which tools ran) is written down as fact, never guessed. The pile is cached, so each session is read once.
-
Cluster. This is the part that makes it yours, and almost all of it is free. A small open-weights model, running on your machine, turns each moment into a fingerprint — a set of numbers where similar behaviour lands in a similar place. The recurring kinds of thing you do then fall out as groups, found by arithmetic rather than by a model’s opinion. It takes about ninety seconds and reaches nothing. Derived, not pre-matched: there is no shipped list of categories to sort you into, because a list we wrote would be our model of a generic person, not a reading of you. A group has to appear across several different conversations to exist at all, so a one-off is never mistaken for a pattern.
Then one short call to the assistant you already have looks at each group and says what it is. That is the only judgment in the whole pipeline, and the only thing that costs anything. It matters that it comes last: a model asked to invent categories can be steered by how you word the question, and will find whatever you imply it should look for. A model that can only name what the maths already grouped cannot.
-
Count. Every count is then plain arithmetic: how many times, over what span, rising or fading, in bursts or steady. The division of labor is strict — the model names, the code counts. So no number in your profile is one a model made up, and each claim carries the exact evidence behind it.
-
Write and load. The profile is written from what the counts support, and only that. It comes out as a brief in three parts — what to offer you before you ask, what to catch for you, and how to talk to you — so your assistant reads what to do first, not a description of you. A pattern that fits none of the three is left out rather than filed somewhere it doesn’t belong. Then it lands in
~/.claude/HUMAN.md, pointed at by a one-line import in your assistant’s config, so your next session starts already knowing you. If the writer ever states a number that is not in the evidence, or returns anything that does not read like a profile, the build is refused and your old profile stays loaded.
A confident guess about you is the one failure that would make the whole tool worthless, so where a reaction carries no honest signal, it records nothing.
It reads all of your history, not a recent slice
stratless builds its pile from your whole archive, so nothing you did is dropped for being old. The pile is deduped and cached, and the finding runs on your own machine, so a long history costs you time rather than money. The first full build reads all of you and is quoted to you honestly before it runs; every update after that pays only for what is new. A long history makes a richer profile without making each run slower, which is why init shows you the estimate and asks once, and why the after-session refresh is nearly free.
Nothing you have to take on trust
This tool reads your entire conversation history, so the only honest design is one you can check. It runs on your machine and your data never leaves it: no account, no API key, no server, no telemetry. Reading your history and finding the patterns in it happen locally and for free; naming them borrows the claude you already pay for. Three things touch the network in total — that call, a one-time model download at init you are asked about first, and the opt-in version check — and only the first sends anything at all. See Privacy for the complete list. And the whole thing is open source under MIT, so you do not have to believe any of this: you can read exactly what it does. “trust me” is the one thing we are not allowed to say.