Privacy

stratless is a program that runs on your computer. It is not a service. There is no server, no account, no sign-up, and no API key. We do not receive your code, your conversations, or your profile, because there is nowhere for it to go.

What it reads

Your coding assistant’s conversation history, which is already on your disk: ~/.claude/projects for Claude Code, ~/.codex/sessions for Codex. It reads whichever of those are actually there, locally. It does not send it anywhere.

What it writes

Four things, all on your machine, and all removable with stratless stop.

  • Your profiles, at ~/.stratless/HUMAN.<assistant>.md (one per assistant), plus its own copy of your transcripts at ~/.stratless/archive so an assistant’s cleanup cannot take your history with it.
  • A pointer or a copy in each assistant’s instructions file, inside a marked block, so the profile loads at the start of a session. Claude Code gets a one-line import in ~/.claude/CLAUDE.md; Codex gets the text copied into ~/.codex/AGENTS.md, because it has no import syntax. Anything you wrote in those files yourself is never touched.
  • An after-session hook, so the profile keeps itself current: a Stop hook in ~/.claude/settings.json, a SessionEnd hook in ~/.codex/hooks.json. Codex will ask you to approve its hook before it will run; that approval is yours to give inside Codex, and stratless never writes it for you.
  • One setting on Claude Code only: cleanupPeriodDays, which stops it deleting your transcripts after 30 days. Codex has no such timer, so nothing is changed there.

Network calls, the tiered truth

Three things ever touch the network. That is the complete list.

1. Your own assistant. Most of the work happens on your machine with no model at all: reading your history, finding the patterns in it, and every count in your profile are plain arithmetic. One step needs judgment, so stratless borrows the assistant you already have installed and shells out to it (claude -p, or codex exec) on your own subscription. That request goes to your assistant’s provider exactly as it does when you use it normally.

2. A one-time engine download, at init, with your consent. The pattern-finding runs on a small local engine that lives on your machine: a ~3MB runtime (from registry.npmjs.org) and a ~34MB open-weights model (from huggingface.co), both pinned to exact checksums in the tool’s published code. The model is bge-small-en-v1.5, MIT-licensed, 384 dimensions, int8 ONNX; if the bytes on disk do not match the pinned checksum, stratless refuses to build rather than fingerprint you with something we did not ship. They have to arrive once. init itemizes them before it happens and asks; nothing downloads in the background, the npm package itself carries zero dependencies, and the after-session refresh never fetches anything. After they land, that step is permanently offline — no network, no provider, no bill, however many times you rebuild.

3. The version check. stratless status --check asks the npm registry whether a newer version exists, when you run it, on screen. And the after-session refresh, which init turns on, is itself your consent to background activity: while it is on, a cached once-daily version check rides along during a refresh, so you hear about fixes. Run stratless stop and the machine goes fully quiet, with nothing ambient at all.

Notice the direction. Two of those three are things coming in — software arriving, once, like any install. The only thing that ever goes out is the borrowed call to your own assistant, on your own plan, to the provider you were already talking to. Your conversations, the patterns derived from them, and your profile go nowhere. We hold no key, run no proxy, and the version check carries no payload: it reads the registry’s public “latest” and nothing more.

stratless mcp does not add a fourth. Serving your profile to another tool on your machine opens no connection at all: the tool starts stratless as a program on your own computer and reads the answer back over a pipe between two local processes, the same way any editor plugin works. There is no port, no address, nothing listening, and nothing running until a tool starts it. A tool that lives in a browser or on someone else’s servers cannot reach it, which is a limit and a guarantee at the same time.

Your profile stays yours

HUMAN.md is a plain text file on your machine. It is yours: read it, edit it, load it into another assistant, or delete it. It is never uploaded, never pooled, never shared. stratless stop unloads it in one command.

What we collect

Nothing. No telemetry, no analytics, no crash reports, no usage counters, no phone-home of any kind.

That is not a promise we’re asking you to take on trust. The source is public. Read it and confirm the only calls it makes are the three above: your own assistant, the one-time model download, and the version check. No payload, no telemetry, nowhere for your data to go.