I use claude.ai a lot, and the sidebar is one long list of chats. There are no folders, so I could not group chats by project. I built a small Chrome extension, Chat Folders for Claude, to add that. This post covers what it does and the parts that were harder than expected.
Not affiliated with Anthropic. This is an independent project, not endorsed by or connected to Anthropic.
The Markdown export looked simple: read the messages, convert to Markdown, save a file. But the chat page only keeps a few message rows in the DOM at a time (roughly 3 to 7). If you read the page as it is, you get the part you are looking at and nothing else.
Each row has a data-index, so the export works like this:
data-index.
If fewer messages were read than the chat has, the file says so ((n of N messages captured)) instead of pretending it is complete. The site markup can change without notice, so the extension looks for structure rather than class names. If it cannot find what it needs, the feature hides itself instead of producing a broken file.
storage and host access to https://claude.ai/*. chrome.storage.local on your device. For each filed chat it stores the ID, the title as shown in the sidebar, and the time you added it.
The repository has no build step and no dependencies, and there are unit tests for the storage logic, search, Markdown conversion and the scrolling collector (against a fake virtualised list).
Note: the screenshot above was made on a stand-in page with invented chats, not on a real account.
It is early (version 0.2.2). If the sidebar layout changes and something breaks, I would like to hear about it in the comments.