You told ChatGPT last month that you're vegetarian, planning a trip, and writing a thesis on logistics. Today you ask for a client email and get a pitch for a meat-free Lisbon itinerary. Or the opposite: you start a new Claude chat and it has forgotten the format you explained three times.
Memory in ChatGPT and Claude is not one thing. It's several layers with different scopes, different owners and different off switches. This post lays out the layers (session, chat, project, account), what each vendor documents about what is stored and how it's used, and a routine to keep only the memory that helps. Where a vendor doesn't document internals, I say so and don't guess.
What does "memory" mean at each level?
Four scopes cover almost every product behaviour:
| Scope | Lives for | Who controls it | Typical examples |
|---|---|---|---|
| Session / context window | One model call or one running conversation | You, by what you paste and keep | The messages the model can see right now |
| Chat | One conversation thread | You, by starting a new chat | Earlier turns in the same thread; a chat opened in incognito or temporary mode |
| Project | Everything inside one workspace | You, via project settings | Project instructions, files, project chats, project memory |
| Account | Every chat that is allowed to see it | You, via account settings | Saved memories, chat-history search, custom instructions, a profile |
Context is the part the model reads this turn. Everything else is a store that a product copies into context when it decides it's relevant. If you want the engineering view of that idea, what is context engineering covers it; this post is about the consumer and pro products on top.
One caveat for the whole article. The vendors document behaviour, not the retrieval algorithm. When I say "retrieved", I mean what the help pages describe. Anything about ranking, embeddings or how a memory is chosen is not documented in the pages I read, so I don't claim it.
How does ChatGPT memory work?
I need to be upfront about sourcing. On 2026-10-30 OpenAI's help site returned HTTP 403 to every fetch I tried, including through a mirror. So the ChatGPT claims below come from two places: a search summary of the Memory FAQ on 2026-10-30, and this site's ChatGPT Projects, Memory and Custom Instructions guide, which read OpenAI's help articles directly on 2026-10-08. OpenAI changes this area often, and it says features vary by plan, region and platform. Check Settings, Personalization, Memory in your own account.
What those sources say:
- Two mechanisms. Saved memories are details you ask ChatGPT to keep (or that it saves). Reference chat history draws relevant details from past conversations. OpenAI's FAQ says information derived from chat history can change as ChatGPT updates what is most useful to remember, unlike an explicit saved memory.
- They're stored separately from chats. Deleting the original chat does not automatically delete a separate saved memory.
- Switches. Per the search summary of the FAQ, turning off "Reference saved memories" also turns off "Reference chat history", while turning off chat history leaves saved memories in place. Information remembered from past chats is scheduled for deletion within 30 days after you turn chat-history reference off.
- Project level. A project can use Default memory or Project-only memory. With project-only, your earlier saved memories aren't referenced in project chats, chats can use other conversations in the same project, and nothing crosses the boundary in either direction. Shared projects use project-only automatically.
- Chat level. Temporary chats don't create or update memories (2026-10-08 read). One source I found disagrees with older wording on whether a personalized temporary chat can still read existing memories, which suggests the documentation changed. Treat that as unsettled and test it on your own account.
- Custom instructions are separate from memory: text you write, applied to every chat, and overridden by project instructions inside a project (2026-10-08 read).
Not documented in anything I could read: how many memories are kept, the exact retrieval method, or how conflicts between a saved memory and chat history are resolved.
How does Claude memory work on claude.ai?
Anthropic's help article "Use Claude's chat search and memory to build on previous context" was fetched on 2026-10-30. It shows "Updated this week" and no calendar date, so I'm dating it by my read. It describes two separate features.
Chat search (Pro, Max, Team, Enterprise; not Free). Claude searches your past chats using retrieval-augmented generation, and searches show up as tool calls. It's scoped: either non-project chats, or one project's chats, never across the boundary. Incognito chats are never searched. Toggle: "Search and reference chats" in settings.
Memory (on by default for Free, Pro and Max; Team and Enterprise owners enable it, then each member opts in). Anthropic says memory is saved as individual topics during chats, not as summaries after a conversation ends. Claude can save on its own, or you can tell it to remember something. You can read, edit and delete entries under Settings, Your Claude, Manage, listed as Topics. Other documented behaviour:
- Project memory. Each project has its own memory. Inside a project Claude uses project memory plus account memory from non-project chats, but not other projects' memory. New memories go to the project. Turn off "Use account memory" on the project page to isolate it. Deleting the project deletes its memory.
- Per-chat off switch. From the "+" menu before the first message. It locks once the chat starts, and the chat still stays searchable by other chats. This is different from incognito.
- Incognito. Ghost icon. Not saved to memory or chat history and never searched. On Team and Enterprise, incognito chats still appear in exports, follow retention policies and are kept at least 30 days for safety, per the article.
- Pause vs reset. Pause keeps what exists but stops reading and writing. Reset permanently deletes all memory, including project memory.
- Sensitive topics. Health, race, religion, politics, gender identity and similar are not saved by default; you can opt in, going forward only. Government ID numbers, criminal history, financial account numbers and immigration status are never saved, even on request.
- Deleting a chat does not delete memories generated from it. You remove those individually. Memory is included in data exports.
- Import and export. Anthropic lists importing memories from other assistants and exporting Claude memory, and labels this experimental.
- Legacy experience. A small number of Team and Enterprise organizations still use an older design where a memory summary regenerates every 24 hours. If your admin hasn't moved you, your screens will differ.
For the workspace side, the Claude Projects guide covers files and instructions.
What about Claude Code and the API?
These are different animals, and the docs are unusually concrete (both read 2026-10-30).
Claude Code. Each session starts with a fresh context window. Two things carry over. CLAUDE.md files are instructions you write, loaded every session from your working directory and parent directories, with subdirectory files loading on demand. Auto memory is notes Claude writes itself, stored as plain markdown under ~/.claude/projects/<project>/memory/. The docs say it is on by default in local sessions, is machine-local, is shared by worktrees of the same git repo, and loads the first 200 lines or 25KB each session. It records four types of note (user, feedback, project, reference) and skips what it can derive from the code. You audit it with /memory, and you can turn it off there or with the CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 environment variable. The docs also say these files are context, not enforced configuration, and recommend aiming for under 200 lines per CLAUDE.md. For writing one, see how to write a CLAUDE.md.
API memory tool. The Messages API doesn't remember anything on its own. The memory tool, type memory_20250818, is client-side: Claude requests view, create, str_replace, insert, delete or rename on paths under /memories, and your code executes them against storage you control. Anthropic's docs say memory lives entirely in your application, tell you to block path traversal, and suggest capping file size and expiring stale files. If you're designing this layer yourself, AI agent memory architectures covers the trade-offs.
What does Gemini do?
Briefly, and with less certainty. Google's support page for saved info (fetched 2026-10-30) says you manage it under Settings & help, Personal context, with a toggle next to "Info you asked Gemini to Save"; you can add, edit and delete items; responses may show "Your saved info" under Sources; it's not available to under-18s or in Gemini Live; and past-chat reference was rolling out gradually. A Google blog result in my search said "past chats" was being renamed "memory" and that you can import memories and chat history from other AI apps. I only saw that through a search summary, so check the current wording. I did not verify retention periods or temporary-chat behaviour.
How do the products differ?
All entries dated by my read: Claude and Gemini 2026-10-30, ChatGPT as described above.
| ChatGPT | claude.ai | Claude Code | Claude API | |
|---|---|---|---|---|
| Account-level store | Saved memories, reference chat history | Memory topics, chat search | ~/.claude/CLAUDE.md (you write it) | None built in |
| Project-level | Project-only memory option | Project memory, "Use account memory" toggle | Per-repo auto memory plus project CLAUDE.md | Your own /memories directory |
| Chat-level off switch | Temporary chat | Memory off before first message; incognito | Start a new session | Not sending history |
| View what's stored | Memory settings and summary; project memories not listed (2026-10-08) | Settings, Your Claude, Manage | /memory, plain files | Your own files |
| Deleting a chat deletes its memory? | No | No | Not applicable | Not applicable |
| Who writes entries | Model, or you | Model, or you | You (CLAUDE.md), model (auto memory) | Model, via your code |
What should you keep, and what should you leave out?
Memory fails in two ways: it forgets what you need, or it remembers what you'd rather it didn't. Neither vendor documents a quality guarantee, so assume it can be wrong.
Keep in memory: stable preferences (format, tone, units), your role, durable project facts that rarely change. Keep out: passwords, account numbers, medical or legal details, other people's personal data, and anything volatile like this week's priorities. The privacy guide on what not to paste into ChatGPT goes deeper. Also see Claude's own rule above: it won't save financial account numbers or government IDs even on request, but don't use that as your only control.
Rules that work across products:
- Put hard requirements in instructions, not memory. Custom instructions, project instructions or
CLAUDE.mdare text you can read. Memory is the model's decision. - One project per sensitive job, with project-only memory (ChatGPT) or "Use account memory" off (Claude).
- Use incognito or temporary chat for one-offs, such as a sensitive question you don't want attached to your profile.
- Delete the memory, then the chat. Order matters because deleting the chat first leaves the memory behind and harder to trace.
- Review monthly. Open the list and read it as a stranger would. Remove stale, wrong or too-personal entries.
- Start a fresh chat when the thread drifts. A long thread is also memory, and old turns compete with new ones for attention.
A memory hygiene prompt you can paste
This is an untested template; I haven't run it against a live model. It asks the assistant to audit what it knows, which is only as accurate as the assistant's access, so treat the answer as a lead and confirm in the settings page.
Memory audit. Based only on what you can actually see in this account or
project (saved memories, memory topics, custom or project instructions,
referenced past chats), list everything you know about me.
For each item output a table row:
| Item | Where it likely came from | Category | Keep / Fix / Delete |
Categories: stable preference, role/work fact, project fact (volatile),
personal/sensitive, uncertain.
Rules:
- If you cannot see a memory store in this chat, say so. Do not guess.
- Mark anything that looks outdated, contradictory or sensitive.
- Do not delete or change anything. Only recommend.
- End with the 3 entries most likely to cause a wrong answer.
Then act on it in settings, not in chat. The checklist below is the manual version:
[ ] Open memory settings. Read every entry.
[ ] Delete anything sensitive, stale or wrong.
[ ] Confirm hard rules live in instructions, not memory.
[ ] Sensitive jobs: isolated project, or incognito/temporary chat.
[ ] Check the project-level memory toggle on each active project.
[ ] Deleted a chat? Also delete memories created from it.
[ ] Claude Code: run /memory and read the auto memory folder.
[ ] API builders: set a size cap and expiry on /memories files.
What I could not verify
- OpenAI's help articles returned 403 on 2026-10-30, so the ChatGPT section leans on this site's 2026-10-08 read and a search summary.
- Whether a personalized ChatGPT temporary chat reads existing memories today.
- Gemini retention, auto-delete and temporary-chat behaviour.
- How any vendor picks which memory to surface. None of the pages I read document it.



