Your AI chats, saved as files you actually use.
Every conversation TotalRecalls saves becomes two files on your drive: a Markdown file you can read in any text editor, and a JSON file with the full structure. Your chats stop being a thing you can only see in a provider's app and become documents in your own Library.
2026-09-28-1505-python-list-comprehensions.md+.json2026-09-28-1440-react-hook-debug.md+.json2026-09-28-0905-sql-query-help.md+.json2026-09-27-1120-project-roadmap-draft.md+.jsonTwo files you can open, search, and keep
One for reading, one for structure. Both plain text, both on your drive.
.mdYour conversation as plain text, with roles and timestamps. Opens in anything.
.jsonThe same conversation with full metadata, for scripts, imports, or archives.
The Library is just a folder, set up the way files should be
No proprietary format, no lock-in. Here's what makes it easy to live with.
Markdown you can read
Every conversation saves as a .md file. Open it in Notepad, VS Code, Obsidian, or any text editor. No special software, no login wall.
JSON for structure
Each conversation also saves as .json, with the full structure: roles, timestamps, and metadata. If you build tools on top of your chats, this is the version for you.
One folder per provider
Your files organize themselves. One folder per provider under C:\TotalRecalls\Library\. No tags to manage, no database to maintain.
Dates in the filename
Files are named with the conversation date and time, so sorting by name puts your history in chronological order. No metadata search required to find that conversation from last Tuesday.
Search like a local file
Your chats live on your drive as plain text. Windows Search, Everything, or grep all work on them the way they work on your other documents.
UTF-8 throughout
Accents, CJK characters, emoji, and code symbols stay intact from provider to file. What you typed is what you saved.
What a saved chat looks like
A .md file reads like the conversation you had, with the date and provider in the name and each message clearly labeled. The .json next to it carries the same content with roles and timestamps as structured data.
# Python list comprehensions — help with .md/.json
Saved: 2026-09-28 15:05
Provider: ChatGPT
## You
How do I filter a list of dicts where
the 'status' field is 'active'?
## ChatGPT
Use a comprehension with the condition
inside the brackets:
active = [u for u in users
if u["status"] == "active"]
This keeps only the entries whose
status matches, in the original order.Questions about the Library
Your files are yours. That's the whole point.
Where do my files go?
C:\TotalRecalls\Library\, with a subfolder for each provider. You can change the location in Settings if you want your files elsewhere.
What's the difference between .md and .json?
The .md file is for reading. The .json file is for structure. You can use one, both, or neither depending on your workflow.
Can I delete files TotalRecalls saves?
Yes. They're regular files on your drive. Delete, move, rename, or back them up however you manage the rest of your documents.
Does TotalRecalls upload my files anywhere?
No. Your Library is local. The app itself doesn't require an account, and your files don't leave your PC unless you send them somewhere.
Can I open .md files on my phone?
Yes. Transfer them to your phone through any file manager or cloud folder and open them in any text or Markdown reader.
Save your first batch of chats and see the Library fill up.
Download TotalRecalls, sign in to one of the free-tier providers, and pick a conversation. A few seconds later, the files are in C:\TotalRecalls\Library\.
