Download ChatKeeper
By downloading ChatKeeper, you are agreeing to our Terms of Service and EULA. It's a quick read and (we believe) a reasonable policy, but it's important that we start on the same page.
You can try ChatKeeper for free without providing your name, email, credit card, or anything else. If you don't purchase a license, there will be some limitations as described here.
ChatKeeper is a standalone executable. That means you don't need to install it - just download and run (although you might want to put it somewhere in your path).
ChatKeeper 1.2.1
April 13, 2025: A quick update less than a week after 1.2.0 to clean up a couple of loose ends I inadvertently left:
- Last week I accidentally let some debug output sneak into 1.2.0. This is stuff that was printed to the screen when the program ran, but that was only there to help me while I was writing the software. It didn't affect results, but it's gone now and out of your way.
- One user reported an error he encountered while ChatKeeper was writing its index pages. I could not reproduce the error but with a little back-and-forth I made a change and confirmed the fix with that user. I don't know how likely the error was to impact anyone else, but it should be fixed now regardless.
Building on the New Features of 1.2.0: Lots of little updates in this one, plus a couple of bigger things. Open AI continues to evolve their export format as they add new features, like the new GPT4o image generator, which this release supports. Here are the details:
Exporting Generated Images
ChatKeeper will now export your generated images, whether they were created by DALL-E or the amazing new GPT4o image generator. Just like with conversations, you can rename or move them, and ChatKeeper will find them and re-link them to your conversations (rather than re-export them) on subsequent runs.
You have some flexibility on where the images end up, via a new -i
or --images
option:
--images none
doesn't export images at all. This is the default behavior.--images samedir
exports each image into the same directory as the conversation that generated it.--images fixed:PATH
exports all images into a fixed directory relative to your output directory. For example, if you runchatkeeper keep mychats.zip mydir --images fixed:pics
, then all images will be exported tomydir/pics
. If your path contains spaces, be sure to quote this argument, like so:--images "fixed:PATH WITH SPACES"
--images subdir:PATH
exports each image into a fixed subdirectory relative to the directory containing the conversation that generated it. That's a mouthful, so here's an example: If you specify--images subdir:pics
and your export includes conversations that are saved in2025/04/2025-04-06/Image Example 1.md
and2024/12/2024-12-25/Image Example 2.md
, then the images for each conversation will be exported to2025/04/2025-04-06/pics
and2024/12/2024-12-25/pics
, respectively. If your path contains spaces, be sure to quote this argument, like so:--images "SUBDIR:PATH WITH SPACES"
If your markdown reader supports it, the result is that your images are displayed inline with your conversations regardless of where they were exported, just as you would want them.
Handling Unzipped Exports (thanks, Safari!)
Some browsers (ahem), will "helpfully" unzip the ChatGPT export file automatically after downloading it by default. This can be confusing for people who are already stepping out of their comfort zone to use a command line application. Earlier versions of ChatKeeper couldn't handle this and generated a REALLY unhelpful error message.
ChatKeeper now handles these unzipped exports just like a .zip file. Users can simply specify on the command line, in place of the zip file, the path to the unzipped export directory or the conversations.json file it contains.
Smaller Stuff
- Support for Tasks. These are subtly different from "normal" conversations. For example, ChatGPT can take multiple conversations "turns" in a row.
- Added "Turn Count" to yaml front matter. ChatKeeper will note the the number of conversation "turns" as metadata that you can use as you wish.
- Improved detection and handling of corrupted or truncated download files. These have become much more likely now that export files have grown so large. There's not much ChatKeeper can do with these, but now it at least provides a helpful error message if it encounters one.
- Improved rendering of search results and citations. ChatGPT provides both in several different ways, and ChatKeeper now handles the new ones I've seen, like in Deep Research results.
- Improved error reports when ChatKeeper runs into a real issue. In order to avoid excessive back and forth during support, the generated reports will include more information, such as os/architecture, some very limited parts of the environment (charset, locale, etc.), and the command line options provided at launch. The full error report is plain text, more informative than before, and can be viewed or redacted if you like before sending my way.
- Better handling of yaml "front matter". ChatKeeper will no longer "step on" any front matter you add after an export. Earlier versions removed new front matter when updating an existing document.
- Lots of minor bug fixes and other enhancements.
Download ChatKeeper 1.2.1 for Windows (x86/64) (37,793,792 bytes) ⬅
SHA1
SHA256
Install ChatKeeper 1.2.1 for Mac via Homebrew
brew install martian-software-inc/chatkeeper/chatkeeper
Download ChatKeeper 1.2.1 for Mac (arm64) - executable (33,827,880 bytes) ⬅
SHA1
SHA256
Download ChatKeeper 1.2.1 for Mac (x86/64) - executable (34,523,992 bytes) ⬅
SHA1
SHA256
Download ChatKeeper 1.2.1 for Linux (x86/64) (10,100,864 bytes) ⬅
SHA1
SHA256
After downloading...
- Check out the Quick Start guide to get up and running.
- Review our privacy policy if you have any questions or concerns about that sort of thing.
- If you like what you see, consider purchasing a license if you haven't already!
- Check back for product updates, or...
- Sign up for updates and articles from Martian Software. You can unsubscribe at any time.