Provide an export/handover path before dropping support for a machine

Status Open
Maintainer reply None cached
Activity 0 comments · opened Sep 4, 2026

Preflight Checklist

  • [x] I have searched existing requests and this feature hasn't been requested yet
  • [x] This is a single feature request (not multiple features)

Problem Statement

Summary

When Claude Code stops running on a machine, the user loses the only tool that knows where their work and memory live — on that machine, at that moment, with no warning and no export path. The data isn't locked in, but the index to it is.

Request: a first-class "compile everything and hand it over" command, and ideally a warning before support is withdrawn.

What happened

I run Claude Code across two Macs. The older one (macOS below the current floor as of a recent release) stopped being able to run Claude Code from one day to the next. That machine held:

  • ~2 months of accumulated project memory in ~/.claude/projects/*/memory/
  • several projects that existed only there
  • a CLAUDE.md-driven working setup built up over many sessions

None of it was deleted. All of it was still on disk. But the agent that had been the working index to all of it was gone, and I had to ask Claude on my other machine — which had never seen that filesystem — where its own memory directory lived and what shape it was in.

Why "your data isn't locked in" isn't the answer

It's true that memory is plain markdown and projects are just files. That's good design and I'm glad of it. But it misses the failure mode:

The agent is the index. After a couple of months, what's valuable isn't only the files — it's knowing which of them matter, which are stale, what was decided and why, and which folder is the current head. Claude Code accumulates exactly that, and it evaporates from the user's reach at the moment support drops, while the bytes sit there untouched.

Put another way: the loss isn't storage, it's retrieval. And it lands precisely when you can no longer ask the thing that knows.

What I'd like

1. An export command. Something like:

claude export --out ~/handover

Collecting, at minimum:

  • every ~/.claude/projects/*/memory/ folder, keyed by project so nothing gets mixed
  • discovered CLAUDE.md files
  • a manifest of project paths worked in, with last-session dates
  • deliberately not session transcripts or auth state unless explicitly asked for

2. A deprecation warning with a deadline. "This machine will stop being supported after version X — run claude export before then." A single line at session start for a few releases beforehand would have made this a non-event.

3. Failing both, documentation. The memory path is not obvious, and the natural instinct — grab all of ~/.claude — sweeps up session transcripts and auth state that shouldn't travel or land in a repo.

Additional wrinkle worth knowing about

My first recovery attempt went via Google Drive, which stores unopened files as placeholders. The copy produced intact directory trees with the contents silently missing — one folder was 717 MB containing three files. Anyone hitting this problem is likely to reach for a cloud sync as the fix, and it fails quietly in a way that looks like success. An export command producing one self-contained archive would sidestep that entirely.

Workaround, for anyone finding this

I ended up writing the tool myself. It runs on any Mac with a shell, needs no Claude Code, and does three things:

  • --memory — copies ~/.claude/projects/*/memory/ plus discovered CLAUDE.md files into one folder, keyed by project, and takes nothing else from ~/.claude
  • --archive — tarballs each project with build artifacts and secrets excluded
  • --push — secret-scans each project, then git init + gh repo create --private + push

It's ~200 lines of bash. That it needed writing at all is the point of this issue.

Environment

  • Affected machine: older Intel MacBook, macOS below the current supported floor
  • Working machine: macOS 15.6
  • Claude Code via the desktop app

Proposed Solution

1. claude export

claude export --out ~/handover

Produces one self-contained folder (or tarball) containing:

  • every ~/.claude/projects/*/memory/ directory, keyed by project so nothing gets mixed
  • discovered CLAUDE.md files, with their originating paths preserved in the filename
  • a manifest: project paths worked in, first and last session dates, session counts
  • not session transcripts and not auth state, unless explicitly requested with a flag

That last exclusion matters. The obvious user instinct is to copy all of ~/.claude, which sweeps up transcripts and credentials — exactly the things that shouldn't travel between machines or land in a repo.

2. A deprecation warning with a deadline

When a machine is approaching the supported floor, one line at session start for a few releases beforehand:

This machine will stop being supported after vX.Y. Run `claude export` before then.

This alone would have made my case a non-event. The problem isn't that support ended, it's that it ended without notice and without a route out.

3. claude export should work on an unsupported machine

Ideally the export path keeps working — as a minimal, dependency-free mode — even once the full agent won't run. If it stops working at the same moment as everything else, it isn't a failsafe.

Why this is worth building rather than documenting

The memory format is stable and the paths are knowable, so this is a small feature. But the user who needs it is by definition the user who can no longer ask Claude how to do it, on the machine where the answer lives. A documented path helps someone who already knows to look. A command helps someone who has just been locked out.

Alternative Solutions

_No response_

Priority

Critical - Blocking my work

Feature Category

CLI commands and flags

Use Case Example

_No response_

Additional Context

_No response_

View original on GitHub ↗