dsh-git-sync
Git Config Sync Center for DeepSeek Harness — real-time config sync to GitHub with conflict self-healing, multi AI-tool adapters (OpenCode / Cline / Roo Code / Kilo Code / Continue / goose / Agent Zero), daily scheduler and a one-glance sidebar panel
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Yiyang0659/dsh-git-sync说明文档
阅读完整 README ↗⚙️ Configuration
All settings live in ~/.dsh/git-sync/config.json (repo-shared across machines):
| Key | Default | Description |
|---|---|---|
localScanSeconds | 10 | Header badge polling interval (5–300s) |
remoteFetchMinutes | 5 | How often the server fetches remote refs (1–60min) |
realtime.enabled | true | Watch the repo and auto-sync on changes |
realtime.debounceSeconds | 30 | Settle window after the last change (10–600s) |
autoSyncEnabled | false | Enable the daily scheduled sync |
dailyTime | "23:00" | Daily sync time (local) |
pullFirst | true | Pull (rebase) before pushing |
catchUpOnStartup | true | Catch up after boot if the last run is >20h old |
adapters..enabled | false | Enable bridging for a tool |
adapters..path | "" | Custom tool path (supports ~) |
Machine-local ~/.dsh/git-sync/state.json keeps the last-run stamp and the recent-sync log (never committed).
How bridging works
Machine A Machine B
┌──────────────────────┐ git push/pull ┌──────────────────────┐
│ ~/.dsh (git repo) │ ◄───────────────► │ GitHub private repo │
│ ├── settings.yaml │ └──────────▲───────────┘
│ ├── skills/ │ │
│ ├── bridges/ │ copy-out (before push) │
│ │ └── opencode/ ◄────────── ~/.config/opencode │
│ │ └── continue/ ◄──────┐ │
│ └── git-sync/ │ copy-in (after pull, only-changed files)
│ ├── config.json ───┼──► repo-shared │
│ └── state.json ────┼──► machine-local │
└──────────────────────┘ │
└── ~/.continue