Unless you export your preferences, a new AI tool starts from zero. And even when you do, it rarely behaves like the old one. Maybe it mixes up the context for different projects, or remembers an old preference that you no longer use. You can tackle this by modifying what the new chatbot remembers, asking it to forget old preferences, and reminding it of what context fits in with what project.
Or you could create your own memory system. One that’s portable, transparent, and only contains what you want your AI tools to know. One in which you can have individual memory files for each project, a separate archive of completed projects, and a single source of truth about you. That is exactly what I built.
What my external memory system looks like
A bunch of Markdown files, pretty much
I deliberately kept things simple when making this external memory system: no custom MCP servers or complex knowledge graphs involved. I did this both out of necessity and preference. My free ChatGPT and Claude plans do limit what I can do, but I still managed to build a system that is easy to update and audit.
My external memory system is basically a collection of Markdown files. I used Markdown because it is a plain text format with simple formatting that can be read by any text editor. Additionally, LLMs work well with Markdown files, and they are easily understood by us humans too. The files in my memory system and their roles are:
- about_me.md: Basic information about me, including what I do, format preferences, and any other standing rules I want the LLM to follow.
- projects.md: Detailed overview of my current projects. I regularly audit this to remove anything I’ve completed and what I plan to do next.
- archive.md: Projects that I’ve completed, in case the LLM can benefit from more context when working on a newer one.
If this seems like too much work to do manually, simply ask Claude or ChatGPT to do it. You can download the Markdown files your AI tool created, and modify them according to your needs. This is what I did, but I audited each line to make sure it was exactly how I wanted it.
Your external memory system could look a lot different from mine, depending on what you do. If you work on multiple projects that each require oodles of context, individual Markdown files for each project are a better choice. Additionally, if you’re on the paid plans of Claude and ChatGPT that can edit the memory files for you, I suggest creating a changelog.md file that tracks any changes made to your memory files in case the LLM has editing privileges.
Setting up Claude and ChatGPT to use the external memory system
Easier than I’d expected
Once I had the Markdown files in place, the only thing left was to get ChatGPT and Claude to use them. Since Claude’s free version supports reading from Google Drive, I placed the files in my Google Drive folder in File Explorer, and enabled the Google Drive connector in Claude by going to Settings > Connectors > Google Drive. ChatGPT’s free version won’t read your Google Drive files, so I just copy-paste the about_me.md file and the required project file whenever I start a chat.
I used Google Drive for desktop because Claude’s free plan can read live versions of my files from Google Drive, but can’t do the same for locally stored files.
I also added custom instructions to Claude and ChatGPT. To add these instructions to Claude, click on Settings > Account, and write them in the Instructions for Claude textbox. The goal is to get Claude to read the about_me.md file from Google Drive whenever I begin a new chat. You can ask it to read the relevant project files as well. Here’s what my custom instructions for Claude look like:
For ChatGPT, go to Settings > Personalization > Custom instructions, and type in instructions that ask ChatGPT to refer to about_me.md and your other memory files as the source of truth. Keep in mind that you will still need to paste them each time you use ChatGPT (on the free plan). My custom instructions for ChatGPT are:
Additionally, once you’re done with a session, prompt your chatbot to list any meaningful changes to add to your memory files, and what is redundant. Then, you can pick and choose what you want to add/remove, and make the changes to your Markdown memory files.
Why I built an external memory system
It may not be the best choice for you
It’s become relatively easier to move your preferences and projects from one AI tool to another, but it still doesn’t match the ease of using a centralized external memory system that any AI tool can use. So, the biggest reason was portability: I no longer had to go through the trouble of exporting and importing memory when testing new AI tools. But, there are other advantages too.
An external collection of Markdown files is more customizable than the in-built memory systems of Claude and ChatGPT. Sure, you can ask the chatbot to save certain memories, or manually delete stuff that you don’t want it to remember. However, the upkeep and management of memory across multiple tools takes longer than using a centralized system that is readable by you. Editing a Markdown file takes seconds using something like Notepad, or any other plain text editor. This transparency of knowing exactly what your LLM sees and works with is an added advantage.
This memory system also offers more granular control over the specifics you want your AI tool to access. I can manually decide the context I want Claude or ChatGPT to have. While both tools have a Projects feature that can separate context, you still need to keep it synced between the tools when using them for different aspects of a single project.
However, creating a memory system and maintaining it, does require some work. If you rely on just one LLM, and use it for everyday work, an external memory system like mine may be overkill.
