@claude-sync/cli 0.1.12 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +136 -0
- package/dist/bin/claude-sync.js +4 -2
- package/dist/bin/claude-sync.js.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/package.json +10 -8
package/README.md
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://claude-sync.com">
|
|
3
|
+
<img src="https://claude-sync.com/opengraph-image" alt="Claude Sync" width="600" />
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<h1 align="center">Claude Sync CLI</h1>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<strong>🔄 Never lose your Claude Code sessions again.</strong><br>
|
|
11
|
+
Seamlessly sync your AI conversations across all your machines.
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<a href="https://claude-sync.com">🌐 Website</a> •
|
|
16
|
+
<a href="https://claude-sync.com/docs">📚 Docs</a> •
|
|
17
|
+
<a href="https://claude-sync.com/dashboard">📊 Dashboard</a>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
<p align="center">
|
|
21
|
+
<img src="https://img.shields.io/endpoint?url=https://api.claude-sync.com/api/stats/shields/developers&style=flat-square&color=6366f1" alt="Developers" />
|
|
22
|
+
<img src="https://img.shields.io/endpoint?url=https://api.claude-sync.com/api/stats/shields/devices&style=flat-square&color=22c55e" alt="Devices" />
|
|
23
|
+
<img src="https://img.shields.io/npm/v/@claude-sync/cli?style=flat-square&color=f97316" alt="npm version" />
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 😤 The Problem
|
|
29
|
+
|
|
30
|
+
You're deep in a Claude Code session on your laptop. Hours of context, perfect understanding of your codebase, brilliant solutions flowing. Then you need to switch to your desktop.
|
|
31
|
+
|
|
32
|
+
**Gone.** All that context. All that history. Start over.
|
|
33
|
+
|
|
34
|
+
## ✨ The Solution
|
|
35
|
+
|
|
36
|
+
**Claude Sync** keeps your Claude Code sessions synchronized across all your devices. Push from your laptop, pull from your desktop. Your AI remembers everything.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# On your laptop
|
|
40
|
+
claude-sync sync
|
|
41
|
+
|
|
42
|
+
# On your desktop
|
|
43
|
+
claude-sync sync
|
|
44
|
+
# → "Continue from another machine?" ✓
|
|
45
|
+
# → Select your laptop
|
|
46
|
+
# → All your sessions, right there 🎉
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 📦 Installation
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm install -g @claude-sync/cli
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 🚀 Quick Start
|
|
56
|
+
|
|
57
|
+
### 1️⃣ Create an account
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
claude-sync login
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Opens your browser to sign in with GitHub, Google, or email.
|
|
64
|
+
|
|
65
|
+
### 2️⃣ Register your device
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
claude-sync device add
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Give your machine a name (e.g., "MacBook Pro", "Home Desktop").
|
|
72
|
+
|
|
73
|
+
### 3️⃣ Sync your sessions
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
cd /path/to/your/project
|
|
77
|
+
claude-sync sync
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
That's it! Your Claude Code sessions are now backed up and available everywhere. 🎊
|
|
81
|
+
|
|
82
|
+
## 📋 Commands
|
|
83
|
+
|
|
84
|
+
| Command | Description |
|
|
85
|
+
|---------|-------------|
|
|
86
|
+
| `claude-sync login` | 🔐 Sign in to your account |
|
|
87
|
+
| `claude-sync logout` | 👋 Sign out |
|
|
88
|
+
| `claude-sync device add` | 💻 Register this machine |
|
|
89
|
+
| `claude-sync device list` | 📱 List your devices |
|
|
90
|
+
| `claude-sync sync` | 🔄 Sync current project |
|
|
91
|
+
| `claude-sync status` | 📊 Check sync status |
|
|
92
|
+
| `claude-sync whoami` | 👤 Show current user |
|
|
93
|
+
|
|
94
|
+
## ⚙️ How It Works
|
|
95
|
+
|
|
96
|
+
1. **📤 Push** — Upload your local Claude Code sessions to the cloud
|
|
97
|
+
2. **📥 Pull** — Download sessions from your other devices
|
|
98
|
+
3. **🔀 Merge** — Smart conflict resolution keeps everything in sync
|
|
99
|
+
|
|
100
|
+
Your sessions are encrypted and stored securely. Only you can access them. 🔒
|
|
101
|
+
|
|
102
|
+
## 🌟 Features
|
|
103
|
+
|
|
104
|
+
- **🖥️ Cross-Platform** — Works on macOS, Linux, and Windows
|
|
105
|
+
- **🔐 Secure** — End-to-end encryption for your sessions
|
|
106
|
+
- **⚡ Fast** — Only syncs what's changed
|
|
107
|
+
- **🎯 Simple** — One command to sync everything
|
|
108
|
+
|
|
109
|
+
## 📋 Requirements
|
|
110
|
+
|
|
111
|
+
- Node.js 18+
|
|
112
|
+
- Claude Code installed
|
|
113
|
+
- A Claude Sync account (free tier available)
|
|
114
|
+
|
|
115
|
+
## 🔗 Links
|
|
116
|
+
|
|
117
|
+
| | |
|
|
118
|
+
|---|---|
|
|
119
|
+
| 🌐 Website | [claude-sync.com](https://claude-sync.com) |
|
|
120
|
+
| 📊 Dashboard | [claude-sync.com/dashboard](https://claude-sync.com/dashboard) |
|
|
121
|
+
| 📚 Documentation | [claude-sync.com/docs](https://claude-sync.com/docs) |
|
|
122
|
+
| 💡 Feature Requests | [claude-sync.com/requests](https://claude-sync.com/requests) |
|
|
123
|
+
|
|
124
|
+
## 💬 Support
|
|
125
|
+
|
|
126
|
+
Having issues? We're here to help!
|
|
127
|
+
|
|
128
|
+
- 📧 Email: [support@claude-sync.com](mailto:support@claude-sync.com)
|
|
129
|
+
- 💡 Feature Requests: [claude-sync.com/requests](https://claude-sync.com/requests)
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
<p align="center">
|
|
134
|
+
Made with ❤️ for developers who live in the terminal.<br>
|
|
135
|
+
<a href="https://claude-sync.com"><strong>claude-sync.com</strong></a>
|
|
136
|
+
</p>
|
package/dist/bin/claude-sync.js
CHANGED
|
@@ -5462,9 +5462,10 @@ async function crossMachinePull(client, deviceId, projectPath, fromDeviceId, pro
|
|
|
5462
5462
|
dlSpinner.stop();
|
|
5463
5463
|
}
|
|
5464
5464
|
try {
|
|
5465
|
+
const completeManifest = await walkDirectory(targetDir);
|
|
5465
5466
|
await client.post("/api/sync/pull/complete", {
|
|
5466
5467
|
syncEventId: prepareResponse.syncEventId,
|
|
5467
|
-
manifest:
|
|
5468
|
+
manifest: completeManifest
|
|
5468
5469
|
});
|
|
5469
5470
|
} catch {
|
|
5470
5471
|
}
|
|
@@ -5584,9 +5585,10 @@ async function pullPhase(client, deviceId, projectPath, projectDir, projectId, o
|
|
|
5584
5585
|
dlSpinner.stop();
|
|
5585
5586
|
}
|
|
5586
5587
|
try {
|
|
5588
|
+
const completeManifest = await walkDirectory(projectDir);
|
|
5587
5589
|
await client.post("/api/sync/pull/complete", {
|
|
5588
5590
|
syncEventId: prepareResponse.syncEventId,
|
|
5589
|
-
manifest:
|
|
5591
|
+
manifest: completeManifest
|
|
5590
5592
|
});
|
|
5591
5593
|
} catch {
|
|
5592
5594
|
}
|