anthropics / anthropics/claude-code
[FEATURE] Encrypted, account-bound backup and restore of Claude Desktop configuration (extensions, settings, secrets)
- Lenguaje dominante
- Python
- Estrellas
- 145k
- Forks
- 23.1k
- Métricas de merge de PR
- Métricas de PR pendientes
Descripción
### Preflight Checklist
- [x] I have searched [existing requests](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20label%3Aenhancement) and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
### Problem Statement
Moving Claude Desktop to a new machine, or surviving a Windows reinstall on the same machine, is painful today, and it is not an edge case. Every user hits it eventually: a new laptop, a dead drive, a corporate reimage, a clean OS install to fix something unrelated. I just did it, and rebuilding took an afternoon of log reading for what should have been a sign-in.
What has to be reconstructed by hand after a reinstall:
- Which desktop extensions were installed, and their versions
- Each extension's user configuration (allowed directories, modes, output paths)
- Each extension's secrets (API keys), which live in the OS credential store and do not survive a profile reinstall
- The runtimes the extensions depend on (uv, a specific Python, Node), with no signal from the app about which one is missing until the extension fails at launch
- Claude Code configuration (settings, per-project memory, skills, plugins), which can be relocated with CLAUDE_CONFIG_DIR but nothing tells a new install where it went
None of this state is large. All of it is mechanical. The app already knows every item on that list at the moment it is running; it just does not write it anywhere durable.
### Proposed Solution
An account-bound backup of desktop configuration, encrypted client-side, restored on sign-in. Concretely:
1. On a schedule or on change, serialize the extension list, extension user config, extension secrets, runtime requirements, and Claude Code config location into one manifest.
2. Encrypt it client-side with a key the user holds (passphrase or passkey), so Anthropic stores ciphertext only.
3. Store the ciphertext with the account.
4. On sign-in to a fresh install, offer to restore. Restore reinstalls the extensions, writes the user config back, pushes secrets back into the OS credential store, and tells the user exactly which runtimes are missing, with the install command, instead of a generic "failed to start."
This is the same shape as browser profile sync, password manager sync, and IDE settings sync. Modern applications have solved this problem; the desktop app should not be the one place in a user's toolchain that has to be rebuilt from memory.
### Alternative Solutions
Workaround today: copy the `Claude Extensions` and `Claude Extensions Settings` folders and `extensions-installations.json` from the old profile into the new one (works), reinstall runtimes by reading `mcp-server-*.log` for `spawn ... ENOENT` (works, eventually), re-enter every API key by hand. That is a fine recovery procedure for an engineer with an afternoon. It is not a product.
A local alternative is a user-maintained manifest plus a passphrase-encrypted secrets file on a synced drive and a bootstrap script, which is what I would build next if this is not on the roadmap. It should not have to be.
### Priority
High - Significant impact on productivity
### Feature Category
Configuration and settings
### Use Case Example
Today, on a Windows 11 25H2 machine: reinstalled Windows on a new NVMe, installed Claude Desktop 1.49585.0 (MSIX), signed in. Result: zero extensions, no indication that three had been installed before, no indication which runtimes they needed. Recovery sequence: inventory the old profile on the previous drive, copy 27,952 extension files across by hand, discover Windows-MCP fails with `spawn uv ENOENT`, install uv, discover the app's compatibility gate wants a real Python on PATH, install Python, discover uv's managed interpreter was left half-installed because the app killed the first launch mid-download, repair it, re-enter API keys. With this feature: sign in, accept "Restore your configuration?", get told "Windows-MCP needs uv and Python 3.13, install with: winget install astral-sh.uv", done.
### Additional Context
Context: I hit this while working through #92984, where the local workspace VM is also broken on current Windows builds (KB5124008, not uninstallable on a clean 25H2 image), so the desktop extensions are the only local capability left, which made rebuilding them the whole game.
Prior art with the same shape: browser profile sync (Chrome, Firefox), VS Code Settings Sync, 1Password/Bitwarden vault sync. All client-side encrypted, all account-bound, all restore on sign-in.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
No implementation files or tests are named. Start by reviewing the listed Claude Extensions and Claude Extensions Settings folders, extensions-installations.json, CLAUDE_CONFIG_DIR, and the mcp-server-*.log recovery path; define the configuration manifest, encryption and restore boundaries, then confirm that a fresh sign-in can restore settings and identify missing runtimes without exposing secrets.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- nodejs
- Área
- cloud, desktop, security
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100