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.

Measure, consult, gate, install

The product is one command: stratless tune — the sitting. It measures your record, asks your own assistant to propose skills from that evidence, disposes of every claim by code, and installs on one typed yes. Everything below is what feeds it.

  1. 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.

  2. 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. It is bge-small-en-v1.5, BAAI’s 384-dimension embedding model, MIT-licensed, shipped as int8 ONNX weights of about 34MB and pinned to an exact checksum in the published code. We picked it over all-MiniLM-L6-v2, which is smaller and was measurably weaker on the behaviours that are hardest to tell apart. 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 over what exists in your evidence, and the main cost of a build — the wording of a row, once earned, is voiced one time and kept. 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.

  3. Count. Every count is then plain arithmetic: how many times, over what span, rising or fading, in bursts or steady. One verdict is read from both sides: a row is stamped met when your asking for a thing faded while the assistant kept doing it and you kept accepting it, so a fading ask is never misread as fading interest. The division of labor is strict — the model names, the code counts. So no number in your evidence is one a model made up, and each claim carries the exact evidence behind it.

  4. The failure patches. Each refresh also measures where the assistant measurably failed you: a patch enters the evidence, and it deletes itself the moment the failure stops. A failure only exists as something you visibly did — interrupting with your own standard, or an explanation bouncing straight back as another “i don’t understand” — and every patch records a failure of the assistant, never a state of you. Two failure modes run today. Moving before your plan was down prints as a when-clause on the row that holds your standard, with a slip count in its receipt. Explaining denser than you absorb prints as two lines in the decode key: your comprehension signature (how grounding must arrive for you, with the honest counts behind it), and — for the zones you never enter at all — a line telling your assistant that your silence there is chosen outsourcing, not ignorance: do the work, skip the teaching. Every patch carries its own retirement test from birth, measured two-sidedly: the failure rate fell and the doing held, so a fade is never mistaken for a fix.

  5. Write the evidence. The file is written from what the counts support, and only that. It lands as that pair’s own evidence — ~/.stratless/HUMAN.<assistant>.md, one per tool, each built only from that tool’s history — internal: the sitting reads it, nothing loads it. The model supplies wording while code supplies every count, date, and quantitative receipt; if model-authored wording contains a numeral, or the result does not read like evidence, the build is refused and the previous evidence stands.

  6. The sitting turns evidence into skills — this is the product. One sitting per pair: stratless tune measures that record five ways — rituals (what you do repeatedly, read from your raw commands), lessons (what went wrong and cost you), rules (what you keep having to ask for), wins (what you approved fast), arrivals (what vocabulary newly arrived) — then asks that pair’s own assistant to propose skills from the evidence, and disposes of every claim by code: no citation, no skill; no verbatim quote, no quote; a numeral in prose, dead — every count you see is stamped from the receipts. You see the whole report, rejections included, and one typed yes installs the pack through that tool’s own skill door. See Commands.

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 — and a sitting whose proposals all die at the gate installs nothing and says so.

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. One exception is said out loud at the door: a profile built on a young history starts small — a map can only be as wide as the evidence under it — so while the history is young, stratless rebuilds the map a few times as it grows into it. Cents each, announced in status, covered by that same consent, and self-stopping: each rebuild doubles the distance to the next, so a mature map is never touched. (stratless update --rebuild is the same rebuild on demand, quoted and consented.) A long history makes richer evidence 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 assistant you already pay for (claude -p, or codex exec). 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.