DSH Sync Hub
Free · runs on your own machine · needs Node.js 20 or newer · no third-party packages
Sync sessions and the workspace index across machines and DSH builds — web, desktop, terminal. Session files are moved as opaque bytes, never parsed.
Three steps
1Start the hub
One Node process. Data lands in a directory you choose.
node src/hub/server.mjs2Pair each device
A one-time 8-character code, valid for 10 minutes.
node src/agent/cli.mjs pair --hub http://host:7788 --code ABCD23453Sync
First run is full; later runs send only the changed chunks.
node src/agent/cli.mjs sync --hub http://host:7788 --home ~/.dshAt a glance: what syncs, what does not
What syncs
sessions/<workspace>/<session>/session*.jsonl.zstdstorages/workspace.jsonstorages/session_projcache.json
Two-way.
What never leaves your machine
.credentials.yaml*.pem*.keyid_rsa*storages/schedule.jsonstorages/dsh_automation.jsonlogs/cache/profiles/skills/
Never read, hashed, or uploaded.
.credentials.yaml, *.pem, *.key, *.p12, id_rsa*, .env, profiles/**/cred* — these paths are skipped during scanning.
Conflicts keep both copies
When two machines write forward from the same version, the later one is stored as a conflict copy and the local file is left untouched. No silent overwrite, ever.
Platform reality
| Platform | Capability |
|---|---|
| Windows / macOS / Linux | Full sync host. |
| Android (Termux) | Works, but you install Node yourself and the OS may kill it in the background. |
| iOS / HarmonyOS | Browser console only — no Node runtime, so it cannot host a session. |
Get it
Source and the bilingual user guide live in the repository. Clone it, read the guide, run the three commands.
git clone https://github.com/FindSomeSkills/Skills.git dsh-skills
cd dsh-skills/dsh-tools/dsh-sync-hub
node src/hub/server.mjsUser guide
User guide (English)
Install, pair, sync, handle conflicts, fix common failures. Step by step.
User guide (Chinese)
The same guide, in Chinese.
Source
FAQ
Does it parse my sessions?
No. It hashes, chunks and moves bytes. Parsing would couple it to an internal format that changes between releases.
What if both machines edited the same session?
Both copies are kept. The hub stores the late arrival as a conflict copy; your local file stays exactly as you wrote it.
Is delta transfer real?
Yes. Sessions are append-only, so a normal turn uploads only the changed tail chunk. A measured 10 KB append cost 28,928 bytes instead of 160,000.
Does it need my DSH version to match?
Keep both sides on the same 0.2.x line. The tool refuses cross-format merging rather than guessing.