dsh-loopx-plugin
loopx-project/loopxLoopX——面向长周期 Agent 的提供商中立、本地优先状态内核与控制平面:在 DeepSeek Harness 执行层之上持久化 Goal、Todo、门禁、证据、配额、恢复与交接状态;插件负责引导安装 CLI 与技能、准入有界的同会话续跑,并为精确绑定的工作循环提供本地 GoalBar。
Git sync for DeepSeek Harness settings and profile configuration.
Sync what should travel. Keep secrets, machine-local values, and executable changes under your control.
Install · Quick start · Features · Safety
Keeping DeepSeek Harness configured across multiple machines should not mean copying your entire DSH home directory into Git.
dsh-sync gives you a safer workflow:
Install the plugin for the Web profile:
dsh plugin --profile web add dsh-sync
Restart dsh web, then open Settings → Git Sync.
To use /sync in a headless profile as well:
dsh plugin --profile headless add dsh-sync
Git authentication uses your existing Git environment. dsh-sync does not store Git credentials in its configuration.
Only the settings namespaces, profiles, patches, and user preset IDs you explicitly select are included. Selected user preset directories are synchronized recursively, including their imported .mjs modules. Exact files can be marked local only so they stay unchanged on one machine and disappear from the sync plan. Credentials, sessions, storage, dependencies, and system presets stay outside the sync payload.
dsh-sync removes known secret fields and your configured local-only paths before settings are stored in Git. Those local values are preserved when remote settings are applied.
Each changed line can be toggled before applying:
Unselected incoming changes remain available for the next review. Items under Local changes (not pushed) can also be opened and restored fully or partially from Git when you do not want to publish a local edit.
Profile patches, home patches, plugin manifests, and user presets can affect code execution. dsh-sync keeps these changes separate from ordinary settings and requires an explicit confirmation before applying them.
When local and remote values both changed, dsh-sync shows the conflict. You can cherry-pick individual lines, or choose Keep local / Take remote for the whole file. Settings conflicts are decided per key. Remote changes are checked again before anything is written.
Live files are backed up before replacement. If an apply is interrupted or verification fails, Repair interrupted write restores the previous files.
The sync repository is kept separate from live DSH files. Fetching remote changes does not overwrite your active configuration, and pushes remain fast-forward only.
The Web plugin adds Settings → Git Sync with Compare, per-line review, conflict decisions, outgoing rollback, Inspect, and Repair controls. The /sync command provides the same core workflow from a session.
| Configuration | Behavior |
|---|---|
| Selected settings namespaces | Applied directly after review |
| Web and headless profile manifests | Applied with restart guidance |
| Profile and home patches | Require executable-change confirmation |
| Explicitly selected user agent preset directories | Synchronized recursively; require executable-change confirmation |
Never synchronized: credentials, sessions, storage, node_modules, generated profile files, .dsh-sync, .env*, system presets, symlinks, or gitlinks.
baseURL remains portable by default. Add it to local-only setting paths if an endpoint should stay on one machine. Add a repo-relative file such as profiles/web/package.json to Files kept local when that machine's plugin list should not be synchronized.
/sync status
/sync check
/sync diff
/sync pull
/sync push
/sync doctor
/sync recover
The standalone command is also available:
dsh-sync status
dsh-sync check
dsh-sync doctor
dsh-sync recover
If a secret has already entered Git history, rotate it before continuing.
dsh-sync is listed in dsh-market and the awesome-dsh-plugin catalog.
Install it directly with:
dsh plugin --profile web add dsh-sync