claude-session-sync

claude-session-sync

Syncs Claude Code sessions between machines with end-to-end encryption using a recovery phrase.

Category
Visit Server

README

Claude Session Sync

Sync your Claude Code sessions between machines with end-to-end encryption.

An MCP server that encrypts and syncs your ~/.claude/ data (history, todos, plans, and full project conversation context) across machines using a simple 6-word recovery phrase.

Why?

If you use Claude Code on multiple machines, you've felt the pain: your conversation history, todos, plans, and project context are stuck on whichever machine you used last. Claude Session Sync fixes that.

Security Model

Your data never leaves your machine unencrypted:

  • 6-word BIP39 recovery phrase generates two separate keys
  • Auth key — sent to server for identity verification (never the phrase itself)
  • Encryption key — used locally for AES encryption, never transmitted
  • Server stores only encrypted blobs — even the server operator can't read your data
  • Gzip compression before encryption for efficient transfer

Quick Start

Install

npm install -g claude-session-sync

Add to Claude Code

claude mcp add claude-session-sync -- claude-session-sync

Or add manually to your MCP config:

{
  "mcpServers": {
    "claude-session-sync": {
      "command": "npx",
      "args": ["-y", "claude-session-sync"]
    }
  }
}

First Machine Setup

In Claude Code, say:

Set up session sync

Claude will run sync_setup which generates a 6-word recovery phrase:

+-------------------------------------------------------------+
|  RECOVERY PHRASE - SAVE THIS SECURELY!                      |
+-------------------------------------------------------------+
|                                                             |
|  apple banana cherry delta echo foxtrot                     |
|                                                             |
|  Write this down and store safely.                          |
|  You need this to sync on other machines.                   |
+-------------------------------------------------------------+

Then push your data:

Push my session data to sync

Second Machine Setup

Install the MCP server the same way, then in Claude Code:

Set up session sync with phrase "apple banana cherry delta echo foxtrot"

Then pull:

Pull my session from my other machine

Available Tools

Tool Description
sync_setup Initialize with a recovery phrase (new or existing)
sync_push Encrypt and upload session data
sync_pull Download and decrypt from another machine
sync_status Show sync status across all machines
sync_list_machines List registered machines
sync_list_projects List local projects with sizes

Syncing Project Context

By default, only history, todos, and plans are synced (lightweight). To include full project conversation context:

Push my session data including the StarWhisper and Lunoo projects

This syncs the complete conversation context for those projects, so you can continue exactly where you left off on another machine.

Self-Hosting the Backend

The sync backend runs on Cloudflare Workers with KV + R2 storage. To self-host:

cd backend
npm install
# Edit wrangler.toml with your KV namespace ID and R2 bucket
wrangler deploy

Then point the client to your instance:

Set up session sync with server url "https://your-worker.workers.dev"

Storage Tiers

Tier Storage Machines
Free 100 MB 10
Pro 5 GB 10

What Gets Synced

Data Priority Strategy
history.jsonl High Incremental (new entries only)
todos/ High Full sync per session
plans/ Medium Full sync
projects/*.jsonl Medium Per-project selective
settings.json Low Full sync

Never synced: .credentials.json, API keys, machine-specific data

How It Works

Machine A                    Server                    Machine B
---------                    ------                    ---------
~/.claude/ data
    |
    v
Compress (gzip)
    |
    v
Encrypt (NaCl secretbox)
    |
    v
Upload encrypted blob ------> R2 Storage
                                  |
                        Download encrypted blob <------+
                                  |
                                  v
                          Decrypt (NaCl secretbox)
                                  |
                                  v
                          Decompress (gzip)
                                  |
                                  v
                          Merge into ~/.claude/

Merge Strategies

When pulling, you can choose how conflicts are handled:

  • merge (default) — Combines data, remote wins on conflicts
  • overwrite — Replaces local with remote
  • ask — Reports conflicts without making changes

Requirements

  • Node.js 18+
  • Claude Code installed (~/.claude/ directory exists)

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured