Skip to content
tratless
DocsGitHub

Privacy Policy

Effective August 1, 2026

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 stratless reads

Your coding assistants' own conversation history, which is already on your disk. Claude Code keeps it in ~/.claude/projects and Codex keeps it in ~/.codex/sessions; stratless reads whichever of those are actually present, and keeps its own archive copy in ~/.stratless/archive. That copy exists because Claude Code deletes its transcripts after 30 days. Codex has no such timer, so nothing there is being rescued from anything. It reads those transcripts locally. It does not send them anywhere.

What it writes, and where

Everything stratless produces is a plain text file on your machine, all of it under ~/.stratless: the moments and scores it derives, and your profile, the canonical HUMAN.md. Your profile lives in stratless's own directory, not inside any assistant's, so uninstalling a tool never takes it with you. All of it is yours to read, edit, or delete. stratless stop unloads the profile in one command.

Outside that directory it touches only what it must, and only for assistants you actually have. In a clearly marked block it does not write over: a one-line pointer in your CLAUDE.md, and, because Codex expands no import syntax, the profile text itself in your ~/.codex/AGENTS.md (or AGENTS.override.md when you keep one, since Codex reads that instead). It also adds the after-session refresh: a Stop hook in ~/.claude/settings.json, a SessionEnd hook in ~/.codex/hooks.json, and on Claude Code only, the cleanupPeriodDays setting that stops the 30-day deletion. Codex asks you to approve its hook before it will run; that approval is yours to give inside Codex, and stratless never writes it for you. An assistant you do not have is never written to at all.

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 here 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 coding assistant you already have installed and shells out to it (claude -p, or codex exec), on your own subscription or key. That request goes to your assistant's provider exactly as it does when you use it normally.

A borrowed call is deliberately given nothing: no instruction files, no memory, no session to resume, so it cannot read the profile it is helping to write. How that is enforced differs by assistant, and the difference is worth stating rather than averaging. The Claude Code borrow runs with no tools at all, so it has no way to touch your disk. The Codex borrow has no equivalent switch; instead it runs in a read-only sandbox, in an empty directory, with a scratch configuration, which your operating system enforces rather than a flag we pass. That is stronger in one respect, since it does not depend on a setting being honored, and weaker in another: it is containment rather than an absence of hands, so a borrowed Codex call could in principle read a file where a borrowed Claude call could not. Neither can write anything, and neither is given your profile.

2. A one-time engine download, at init, with your consent. The pattern-finding runs on a small local engine: 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. 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.

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. We hold no key and run no proxy; the version check carries no payload. And when stratless cannot read your history honestly, it refuses and writes nothing: silence beats a wrong profile.

What we collect

Nothing. No telemetry, no analytics, no crash reports, no usage counters, no phone-home of any kind. This 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 ones above: your own claude reading your history, and the version check. No payload, no telemetry, nowhere for your data to go.

This website

stratless.com is a static site on Cloudflare Pages. It sets no cookies and runs no analytics. Cloudflare processes standard request logs (IP address, user agent) as part of serving it, which is the same for any website.

Contact

sun@stratless.com

tratless
DocsGitHubPrivacyTermssun@stratless.com

stratless v0.10.0 · © 2026 · runs on your machine. Nothing leaves.