DSH Toolbox

Three ways to continue DSH work on another device

They are not competitors so much as different answers to different questions. This page says which question each one answers, and where each one breaks — including ours.

One-line answer

If you want one machine’s sessions on another machine, you need a sync engine (Sync Hub or dsh-session-sync). If you want to drive one running machine from your phone, you need remote access (dsh-remote-mobile). Pick by question, not by star count.

Side by side

DSH Sync Hubdsh-session-syncdsh-remote-mobile
The question it answersHow do two machines hold the same session state?How do I mirror sessions through git?How do I use my running DSH from my phone?
MechanismA hub you run yourself, plus an agent; data moves in hashed chunksPrivate git repo as the transportSecure proxy in front of one live instance
Session dataOpaque bytes, moved and hashed onlyOpaque bytes, appended to a repoNever moves; one copy stays on the host machine
Workspace indexSemantic merge of workspace.json + projcacheSame file, git three-way mergeNot involved
Incremental transferOnly missing chunks (measured: 10 KB append → 28,928 bytes)Git delta on binary files, near full size in practiceNot applicable
Conflict handlingBoth versions kept on the hub, local file untouchedBoth kept as fork files, never force-pushedNot applicable
Cross-build (web / desktop / TUI)Yes — reads a data root, not a clientYes, if each build writes to the same pathOnly the single running instance
PhoneRead-only consoleNoYes — designed for it
Needs on your sideA machine to run the hub (or a hosted one later)A private git repo + credentialsAn always-on machine + a tunnel (e.g. Tailscale)
Works offlineYes, syncs when connectedYesNo
Team / multi-userPlannedPer-repo accessSingle operator
Main failure modeHub must be reachable; conflicts need a humanIndex conflicts are manual and can hide sessionsHost sleeps → nothing works

When each one is the right answer

Use DSH Sync Hub when

You work on two or more machines and want the same list, with titles, in both — and you would rather run one small service than reconcile git conflicts in a JSON file that decides whether sessions appear.

Use dsh-session-sync when

You already treat a private git repo as your source of truth, you want every device to work offline, and you are comfortable resolving a merge by hand when it happens.

Use dsh-remote-mobile when

Your problem is “continue on my phone right now”, not “keep two machines in sync”. One always-on machine plus a tunnel beats any sync engine for that question.

Where ours is weaker

Pick in three questions

Do you need to drive a session that is already running, from another device?dsh-remote-mobile
Do you need automatic sync between machines that are sometimes offline?dsh-session-sync (git)
Do you need the session list to be identical, with titles, and you can run one small service?DSH Sync Hub

Sources

FAQ

Can I combine them?

Yes, with one rule: do not let two mechanisms write the same session folder. Phone-only remote access plus machine-to-machine sync is a sane combination.

Why not just use git?

Git is fine for text and poor for a 22 MB binary that changes every turn, and the workspace index is a single JSON file whose merge conflicts decide whether sessions appear. That is the specific weak point this tool exists for.

Is the comparison biased?

It is written by the author of Sync Hub, so read the “where ours is weaker” section first. The measurements are reproducible with the tools on this site.