Free · Open source · Windows 10/11

Missing from the sidebar is not missing from the disk.

Claude Session Manager reads your Claude Code .jsonl transcripts straight off the drive instead of trusting any app's list of them — so you can find the sessions your sidebar lost, relink the ones that open blank, and back the whole history up before you need it.

v0.1.0 · ~80 MB · no account · no telemetry · MIT

Claude Session Manager showing 18 Claude Code sessions with project, model, size, last activity and an integrity state for each
What it does

Three things, and it shows you all of them before it writes anything

01 — See everything

Every Claude Code session on the machine, read from the .jsonl transcripts

It walks ~/.claude/projects and reads each transcript directly. Nothing is taken on faith from an index, which is why sessions your sidebar has lost still turn up here.

  • Graded as it reads — whole, empty, truncated, damaged or unreadable, with the line where parsing failed.
  • Sub-agent transcripts counted against their parent session.
  • Show file on every row, so you can open the actual .jsonl yourself.
The session list, sorted by last activity, with integrity badges in the State column
02 — Two accounts

Restore Claude Code sessions the other account is missing

Hit a usage limit, switch accounts, and your history appears to vanish. It did not — Claude Desktop keeps a separate list per account. Compare puts them side by side.

  • Per-row Sync to add a session to the account that is missing it.
  • Union only — nothing is ever removed from either side.
  • Filter to just the differences when the list gets long.
Compare view showing 21 sessions across two accounts, 10 not synced, with a Sync button on each differing row
03 — Relink

The session that shows a title and opens blank

The record kept its title but lost the pointer to the transcript. Scan & Repair searches every transcript for that title and offers the match — one row per record, nothing hidden behind the Fix button.

  • The dialog is the preview. Each row names the file it would link.
  • No confident match, no button. A wrong link would look fixed, which is worse.
  • 181 of 191 deliberately broken records recovered exactly on the reference machine — none linked to the wrong conversation.
Scan and Repair dialog listing three records that can be relinked, each with a match badge and a Fix button
Triage

Claude Code session history missing? Start here

Two of these it cannot fix, and it says so rather than wasting your evening.

Claude Code sessions disappeared after switching accounts

Separate index per account. The transcripts never moved and were never account-specific.

Recoverable

A session shows a title but opens blank

The record kept its title and lost its pointer. Scan & Repair finds the file by that title.

Recoverable

Session history missing after an update or reinstall

Same shape: the index went, the transcripts stayed. Check the folder before doing anything else.

Usually recoverable

CLI or VS Code sessions not showing in the sidebar

Often no index record was ever written. They show up here, and can be checked and exported.

Visible and exportable

Claude Code deleted old transcripts on a timer

Retention removes old transcripts (cleanupPeriodDays). Once the file is gone it is gone. Raise the setting and export today.

Cannot help

/resume says "No conversations found"

That is the CLI reading its own index, which this app does not write to. It can still confirm the files survived.

Not fixed here
Reference

Where Claude Code stores session history on Windows

Worth knowing whether you use this app or not. A session is two separate files, and almost every "my history is gone" report is the second one failing while the first sits untouched.

The conversation
%USERPROFILE%\.claude\projects\<encoded-path>\<session-id>.jsonl — the transcript itself, one JSON object per line. This is the file that matters.
The sidebar's list of it
%APPDATA%\Claude\claude-code-sessions\<account>\<org>\local_<uuid>.json — title, project path, and a cliSessionId pointing at the transcript.
Installed from the Store
Windows redirects that second path under %LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\
The folder name
Every non-alphanumeric character in the working directory becomes a dash, so C:\work\acme-api becomes C--work-acme-api. Past 200 characters it is truncated and hashed.
Orphaned transcripts
A .jsonl that no account lists — common for sessions started in the CLI or the VS Code extension. They are invisible in the Code tab and perfectly readable on disk.
Retention
cleanupPeriodDays in your Claude Code settings decides how long transcripts survive. This is the one that causes real, unrecoverable loss.

Claude Code session recovery is mostly this one distinction. To recover a Claude Code session you thought was gone, you rarely need to recover a file at all — you need to find the transcript that was never lost and point a record back at it. That is what this app does, and it is why it deliberately does not rebuild Claude's own index or write to the CLI's resume list. It reads the transcripts, repairs the desktop records that lost their pointer, and exports a Claude Code session backup you keep yourself.

Safety

Nothing is written without a preview you cannot skip

You are pointing a v0.1.0 binary at the only copy of something you care about. Here is the mechanism, not an adjective.

Preview

Plan, then execute

The preview issues a single-use token. Execution without it is refused, so a dry run cannot be skipped and a stale plan cannot be replayed.

Backup

Copied before replaced

Anything about to be overwritten is copied to the app's own backup folder first, with a note of where it came from.

Atomic

Temp, flush, rename

A crash mid-write leaves the original intact rather than a half-written file.

Verified

Checked before it lands

An imported file is matched against its checksum and parsed for integrity before it replaces anything. A damaged source is refused.

Audited

A log you can read

Every change is appended to a plain-text JSONL log. You do not need this app to audit this app.

Exception

One control removes

It is called Remove, it unlinks a session from one account's list, and it never touches the transcript. Volunteered here rather than buried.

Unconvinced? Run Export first. Scanning and exporting only read — you get a zip of your history without a byte written to Claude's files.

Download

Claude Session Manager v0.1.0

The button opens the releases page, not a direct download.

Build status · 8 September 2026

The Windows installer is not attached to the release yet — the publish job failed and left only a stray .blockmap behind. Until it lands you can build from source. This notice comes down the hour the binary is up.

Requires
Windows 10 or 11, 64-bit. No admin rights, no account.
Size
About 80 MB — it is an Electron app, and Electron ships a browser runtime in every build.
Code signing
None. SmartScreen will say it protected your PC — click More info, then Run anyway.
macOS and Linux
Implemented and unit-tested, never built or launched. Windows is the only real build today.
Updates
The mechanism exists but has never run against a real release. Assume you update by hand.
Licence
MIT. Read the source — start with src/core/safety.js, which every write goes through.
FAQ

Questions people actually ask

Where does Claude Code store my session history?

Every conversation is a .jsonl transcript under ~/.claude/projects, in a folder named after the working directory with every non-alphanumeric character replaced by a dash. Claude Desktop keeps a separate list of those sessions as local_<uuid>.json files under claude-code-sessions. Two different sets of files, and nothing reconciles them.

Are my Claude Code sessions actually deleted, or just missing from the list?

Usually just missing from the list. The sidebar is built from index records while the conversations live in separate transcript files, so when a record is lost the session vanishes from the sidebar with the transcript untouched on disk. Open ~/.claude/projects and look at the file sizes to check — you do not need this app to find that out.

Why do my sessions vanish when I switch Claude accounts?

Claude Desktop keeps a separate index per account, under claude-code-sessions/<account>/<organization>/. Signing into a second account gives you a second, empty list. Your transcripts never moved and were never account-specific; only the list of them is.

Why does a session show a title but open blank?

The index record holds the title and a pointer called cliSessionId naming the transcript file. When that pointer is missing the sidebar still draws the row from its cached title, but there is nothing to load. Scan & Repair searches the transcripts by title to find the file again.

Does this tool send my conversations anywhere?

No. There is no account, no sign-in and no telemetry. The only network request the app makes is a version check against GitHub, which can be switched off. Everything else happens on your disk.

Will it delete anything?

Every write shows a preview first that cannot be skipped, anything replaced is backed up before the write, and every change is appended to a plain-text audit log. Copying between accounts only adds. The one control that removes anything is called Remove, it unlinks a session from one account's list, and it never touches the transcript.

It is version 0.1.0. Why should I point it at my only copy of anything?

Reasonable question. Start with Export: scanning and exporting only read, so you get a zip of your history without a byte written to Claude's files. If you never press anything else, you have still gained a backup.

Does it work on macOS or Linux?

Not yet. The code paths for both are implemented and unit-tested — the app knows where Claude keeps its files on each platform — but no build has ever been produced or launched on either. Only the Windows build is real today.

How do I back up my Claude Code session history?

Export writes every session you select into a single zip, carrying the original bytes of each transcript plus a checksum for each one. Import reads it back on another machine. Export only reads, so it is the safe thing to do first — and doing it before Claude Code's retention period removes anything is the only defence against the case nothing can fix.

What are orphaned Claude Code transcripts?

A .jsonl transcript on disk that no account lists in its index. Sessions started from the CLI or the VS Code extension often never get a record written, so they never appear in the Claude Desktop Code tab. This app reads every transcript regardless of who listed it, so orphans show up, can be checked for damage, and can be exported.

Can it rebuild the Claude Code session index?

No, and that is deliberate. It repairs desktop history records that lost their pointer to a transcript, which is a different and much narrower thing. It does not write to Claude Code's own resume index, so it will not change what /resume or claude --continue offer you.

How do I move my Claude Code history to a new computer?

Export on the old machine, copy the zip across, Import on the new one. Import shows you exactly what it would write before it writes it, refuses anything whose checksum does not match, and never overwrites an existing transcript without backing the old one up first.