Why this exists

Every AI session
starts cold.

You re-explain who you are. The model drifts back to its default voice within a few turns. The fix exists, but it lives inside one provider's box — and the most valuable layer of personalization shouldn't.

01 · The pain
Session 8

“Remember, I'm senior.”

Eighth conversation this week explaining you don't need the “what is a closure” preamble. You typed it the first seven times. It was on the project doc. It was in the system prompt the IDE injects. The model still opens with definitions, every session.

Turn 3

The voice slips back.

The first response is fine. By turn three the bullets are back. By turn six it's “Great question!” again, then a four-paragraph wind-up before the answer. You asked for terse. It heard you. It forgot.

02 · Why nothing fixes it

Memory features exist. ChatGPT Memory remembers things inside ChatGPT. Claude Projects pins context inside Claude. Cursor Rules ship preferences inside Cursor. Each of them solves the problem one chat box at a time.

The catch is structural: the most valuable layer of personalization — the one that shapes how a model talks to you — is a feature on someone else's roadmap, locked to one model family, and the provider gets to decide what's worth remembering. You don't own it. You don't carry it. You don't delete it.

When you switch tools, you start over. When the provider changes their memory implementation, you accept it. When you want the same voice across Claude for thinking and ChatGPT for drafting and your CLI agent for code, you write the same paragraph three times.

And it's not memory that's the deepest issue. It's personality. The way an AI talks to you is a product decision. OpenAI retunes its RLHF; Anthropic updates its constitutional pass; Gemini ships a tone refresh — and the assistant you got used to is gone. Overnight. Without a vote.

You weren't customizing how the model sounds to you. You were inheriting whatever direction the alignment team picked this quarter, and they get to change their minds next quarter. The most personal thing in software — how it talks to you — belongs to someone else.

03 · The bet

The layer that shapes the model
should be yours.

Local-first. Your reactions, your rules, your file. The synthesis runs on your machine — via WebGPU, Chrome AI, or a local Ollama. Nothing leaves unless you click publish. You can delete it by removing one folder.

Portable. The same profile applies in Claude, ChatGPT, Gemini, Claude Code, your terminal — anywhere a model reads context. The MCP server exposes it; the CLI pipes it; the extension injects it. One source of truth, every surface.

Learned from reactions, not authored. You don't write a 2000-word system prompt. You react — 👍, 👎, the occasional “too long.” Cotext infers the rule and folds it in. Taste is expressed faster than it's articulated; the tool should match that.

04 · It's a file

Your taste, as an artifact.

A Cotext profile is a file. That sounds dull until you compare it to the alternative.

Files version. You can see what changed between v17 and v23 of how you want your AI to sound. Every synthesis pass bumps the version; every signal is in the log. The history of your taste, in writing.

Files diff. When synthesis adds a rule you don't like, you can spot it and undo it. When the model misreads a signal and writes “always use bullets” when you meant once, you see the line, you delete it, you move on.

Files fork. Clone someone else's published profile, keep the rules that work for you, override the rest, publish the result as your own. Personalities can compose like software does, because they're shaped like software does.

None of that exists inside ChatGPT Memory. There is no v17. There is no diff. There is no fork. The artifact you'd want to version doesn't exist, because the provider never let it be a thing. Cotext exists because the artifact is the point — and the artifact has to be yours.

If that combination matters to you, this is what we built. If it doesn't, the alternatives are mature and we wouldn't waste your time pretending otherwise.