ZhenHuangLab/dsh-sync

Policy-driven Git sync for DSH settings and profile configuration, with secret-aware projections, conflict review, and per-line apply controls.

dsh-sync is Git sync for DeepSeek Harness settings and profile configuration — syncing exactly what you choose instead of copying the whole DSH home into Git. You select the settings namespaces, profiles, patches and user preset IDs to sync; credentials, sessions, storage, dependencies and system presets stay outside the payload, and secret fields plus configured local-only paths are removed before anything is stored in Git (local values are preserved when remote settings are applied). Before applying, you review incoming vs outgoing changes with per-line toggles (disable an added line to skip it, disable a removed line to keep the local line), and executable-affecting changes (profile patches, home patches, plugin manifests, presets) require explicit confirmation. Conflicts are resolved by cherry-picking local vs remote lines or keep/take a whole file without editing Git internals; interrupted writes are repaired via backups and a repair action. Git auth uses your existing Git environment — no credentials stored in the plugin configuration.

Workflow & Automation ★ 1 updated 2026-08-16
View on GitHub ↗

Install

dsh plugin --profile web add dsh-sync

npm dsh-sync 0.1.3 verified 2026-09-02 (repository field → github.com/ZhenHuangLab/dsh-sync; README EN primary). Install per README: dsh plugin --profile web add dsh-sync, restart dsh web, then open Settings → Git Sync. To also use /sync from a headless profile: dsh plugin --profile headless add dsh-sync. Requirements: DeepSeek Harness, Node.js 22+, and a Git remote you can read and write.

Compatibility

DSH web + headless profiles; Node.js 22+; git remote; secret-aware (credentials and machine-local values excluded from sync).

Details

Recent updates

Selective settings/profile/patch/preset sync; secret stripping + local-only paths; per-line review toggles; executable-change confirmation; conflict cherry-pick; write repair with backups.

FAQ

What exactly gets synced?
Only the settings namespaces, profiles, patches and user preset IDs you select; credentials, sessions, storage, dependencies and system presets never enter the payload.
How are secrets handled?
Known secret fields and your configured local-only paths are removed before settings are stored in Git, and local values are preserved when remote settings are applied.
Can I review before applying?
Yes — every changed line can be toggled (skip an added line or keep a removed one), and executable-affecting changes require explicit confirmation.

Alternatives

Walvez/dsh-codex-sync

More plugins in Workflow & Automation

Browse more in Workflow & Automation

Guides for Workflow & Automation plugins