Memory
Threads are separate, but some facts should outlive them. Memory is the small, readable store of those facts.
Threads are separate on purpose — a fresh thread should not drag four unrelated jobs behind it. But some facts genuinely should outlive a thread: who you are, how you like work done, a decision that cost an afternoon to reach. That is what memory is for.
Two tiers#
| Tier | Scope | Use it for |
|---|---|---|
| Project | One project folder | Decisions, constraints and external state this project cannot rediscover by reading itself. |
| User | You, everywhere | Who you are, durable preferences, how you like to work. |
When the two conflict, the project's memory wins. W1 can also borrow — read another project's memory page, read-only — when a fact from one project is relevant somewhere else. Borrowed facts rank below both of your own tiers.
What belongs in it#
Good memories are durable, specific, and not already written down somewhere W1 can read:
- Who you are and what you prefer — "explain in South African English", "never run the full suite locally, it melts this laptop".
- Corrections that should change future behaviour — including the reason. A rule without its reason gets misapplied the moment the situation shifts slightly.
- External state the project cannot discover on its own — that the staging database is the one on port 5433, that a vendor's sandbox is down until the 20th.
- References — the dashboard, the ticket, the document that matters.
What does not belong in it#
The single biggest source of stale, misleading memory is writing down what the project already records. W1 avoids it deliberately, and so should you when you ask it to remember something:
- file layout, function names, how the code is structured — it can read that, and the note will be wrong by Thursday
- what a past change did — that is the git history
- anything already in a README or a project instructions file
- anything that only matters to the conversation you are in right now
How it works in practice#
Memory is written with its own tools, never with ordinary file writes, and it is stored as plain Markdown pages you can open yourself:
~/.w1/userdata/memory/ user memory, all projects
~/.w1/userdata/workspaces/<folder>-<id>/memory/ this project's memoryEach memory is one page about one fact, with a short title and a one-line description. An index page lists them. Pages link to each other, so a correction can point at the decision it came from.
You can ask W1 to remember something outright — "remember that I want plain text emails, never HTML" — and you can ask it what it currently remembers, or to correct or delete a page that has gone stale. A memory that turns out to be wrong should be deleted, not argued with.
Memory is local.
It lives on your machine, in files you can read, edit and delete with a text editor. It is not uploaded, and it is not shared between accounts.
Coming from another tool#
If you already keep Codex memory files, W1 can import them into either tier rather than making you retype them — ask it to, in a thread in that project. Existing pages are merged rather than blindly duplicated.