DeepSeek Harness 插件

dsh-agent-sync

扫描本机 20+ 种 AI agent 的 MCP 服务器与 Skills(Codex、Claude Code、cc-switch、Hermes、opencode、Gemini、Grok、Kimi、CodeBuddy、Trae、OpenClaw、Qoder、WorkBuddy、Zcode、Cursor、Windsurf、Cline、Roo Code、Qwen Code 等),一键同步、管理并添加进 DSH(全局或按工作区)。

跳到安装方式

来源信息

GitHub 仓库
kuaiyukuaikuai/dsh-agent-sync
最近更新
2026年8月19日
分类
工具与能力
GitHub stars
0

安装

默认先复制一段 Prompt,让 Agent 读页面和仓库;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读页面和仓库。

请先不要安装。阅读这个 DeepSeek Harness 插件,说明它解决什么问题、会访问哪些文件、网络或密钥,以及如何安装和卸载。

插件页面:https://deepseekplugins.org/zh/plugins/kuaiyukuaikuai/dsh-agent-sync
GitHub:https://github.com/kuaiyukuaikuai/dsh-agent-sync
插件名:dsh-agent-sync
作者:kuaiyukuaikuai
安装命令:dsh plugin --profile web add github:kuaiyukuaikuai/dsh-agent-sync

确认前不要执行安装命令。

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器3 个文件
README.md来源说明 · 只读预览

<div align="center">

🦾 dsh-agent-sync

One-click sync of MCP servers & Skills from 20+ AI agents into DeepSeek Harness

English | [简体中文](./README.zh-CN.md)

![License](./LICENSE) ![Node](./package.json) ![DSH](./package.json) ![Awesome DSH Plugin](https://awesome-dsh-plugin.com) ![Plugin Market](https://awesome-dsh-plugin.com/p/kuaiyukuaikuai/dsh-agent-sync/) ![PR](https://github.com/kuaiyukuaikuai/dsh-agent-sync/pulls)

Scans other AI agents installed on this machine — Codex, Claude Code, cc-switch, Hermes, opencode, Gemini, Grok, Kimi, CodeBuddy, Trae, OpenClaw, Qoder, WorkBuddy, Zcode, Cursor, Windsurf, Cline, Roo Code, Qwen Code, … — and syncs their MCP servers and Skills into DSH with one click.

</div>

---

✨ Features

CapabilityWhat it does
🔍 Auto-scanReads each agent's real config (~/.codex/config.toml, ~/.claude.json, ~/.cc-switch/cc-switch.db, ~/.codebuddy/mcp.json, ~/.workbuddy/.mcp.json, …) and discovers MCP servers + Skills
⚡ One-click sync MCPWrites servers as @deepseek-ai/dsh-mcp-client instances into every profile's cordis.patch.yml (auto-repairs invalid YAML) → they become mcp__<server>__<tool> tools
🧠 One-click sync SkillsCopies skill bundles into $DSH_HOME/skills, auto-discovered by DSH's skill-filesystem provider
🔀 Enable / DisableToggle any synced MCP server or skill on/off — disabled MCPs are dropped from the profile patch, disabled skills have their SKILL.md renamed to SKILL.md.disabled (hidden from discovery, fully reversible)
🖥️ GUI panelSettings → MCP/Skills同步: per-source tabs (main + "More"), MCP/Skills switch, select-all, and a profile-grouped status view
🛠️ Model toolsagent_sync_scan / agent_sync_do / agent_sync_status / agent_sync_remove / agent_sync_sources
🧩 ExtensibleA generic agent registry (AGENT_DEFS) — adding a new agent is one line

🚀 Quick start

Prerequisites

  • A running DSH (desktop or headless) with Node.js ≥ 22.5
  • The agents you want to sync must be installed on the same machine (nothing is shipped with the plugin)

Install

Option A — as a profile bundle (recommended)

Add dsh-agent-sync to your profile's dsh.profile.bundles and install it:

cd "$DSH_HOME/profiles/<name>"
pnpm add dsh-agent-sync        # or: pnpm add github:kuaiyukuaikuai/dsh-agent-sync

Restart DSH. The bundled [cordis.patch.yml](./cordis.patch.yml) mounts the plugin automatically.

Option B — manual row

Place the package where your profile can resolve it, then append to $DSH_HOME/profiles/<name>/cordis.patch.yml:

- insert:
    - id: dsh-agent-sync
      name: 'dsh-agent-sync'

Restart DSH.

📖 Usage

GUI panel

Settings → MCP/Skills (main page MCP/Skills 管理)

  • Manage (main page) — profile tabs (desktop / web) → MCP / Skills switch; card grid where each card has a toggle switch (enable/disable in one control) and remove; disabled items are greyed with a badge. Skills are grouped by scope: global (~/.dsh/skills) and per-workspace (<workspace>/.dsh/skills) with workspace tabs
  • MCP/Skills同步 → — a button that opens the sync page: per-source tabs (common agents + "More ▾"), select-all, sync buttons (choose global or a workspace as the skill target), custom sources, and add-skill (pick a local skill directory / .md file and a target scope)

> UI implementation — no component library. The panel is vanilla React (React.createElement) styled with DSH's theme tokens (--dsw-alias-*), matching the plugin market look; the toggle switch is a small custom CSS component.

Model tools

agent_sync_scan      # list what can be synced (env values are hidden, keys only)
agent_sync_do        # mcp: ["all"] or names, skills: ["all"] or names
agent_sync_toggle    # enable/disable a synced mcp/skill ({type, name, enabled})
agent_sync_status    # current DSH-side state + sync bookkeeping (incl. disabled items)
agent_sync_remove    # remove a synced mcp/skill
agent_sync_sources   # manage custom sources (list / add / delete)

📦 Supported agents

SourceConfig read
Codex~/.codex/config.toml (mcp_servers) + ~/.codex/skills
Claude Code~/.claude.json, ~/.claude/settings.json + skills + plugins
cc-switch~/.cc-switch/cc-switch.db (mcp_servers / skills tables)
Hermes~/.hermes/config.{yaml,yml,json}
opencode~/.config/opencode/{opencode,config}.json
Gemini~/.gemini/settings.json
Grok~/.grok/config.*
Kimi~/.kimi/config.toml (mcp.*)
CodeBuddy~/.codebuddy/mcp.json
Trae~/.trae-cn/mcp.json
OpenClaw~/.openclaw / ~/.clawdbot config.*
Qoder~/.qoder*/mcp.json
WorkBuddy~/.workbuddy/.mcp.json
Zcode~/.zcode/config.json
Lingma~/.lingma/mcp.json
CodeMoss~/.codemoss/config.json
Copilot~/.copilot/mcp.json
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
Cline~/.cline/mcp_settings.json
Roo Code~/.roo/mcp_settings.json
Qwen Code~/.codeqwen/mcp.json
Customyour own sources (JSON / TOML / skills directory)

All paths are home-relative → works on any machine where those agents are installed (Windows / macOS / Linux). Configs in JSON, YAML-ish, and TOML shapes are parsed.

🔧 How it works

other agents' configs ──► scan ──► sync ──► DSH
  ~/.codex/...                     │
  ~/.claude.json                   ├─ MCP   → profiles/*/cordis.patch.yml (dsh-mcp-client rows)
  ~/.cc-switch/cc-switch.db        │
  ~/.workbuddy/.mcp.json           └─ Skills → $DSH_HOME/skills/<name>/SKILL.md
  ...
  • MCP is written into each profile's cordis.patch.yml (a managed # --- dsh-agent-sync managed --- section, repaired if the file was invalid). The desktop GUI shell composes once at boot, so MCP activates on the next DSH restart; the dsh CLI / headless boot hot-applies profile patches via HMR.
  • Skills are copied into $DSH_HOME/skills and discovered by sessions whose agent preset mounts the skill-filesystem provider.

⚠️ Security notes

  • Syncing MCP copies env values verbatim (DB passwords, API keys, …) into cordis.patch.yml and $DSH_HOME/agent-sync/state.json — same plaintext exposure as the source configs already have.
  • Scan output only lists env key names, never values.
  • Treat state.json / patch files as secrets; consider a token with an expiry and prefer environment-variable references where possible.

❓ FAQ

Why don't I see any MCP/Skills? Nothing is installed on the machine yet, or that agent stores its config elsewhere. The custom source lets you point at any JSON/TOML/skills directory.

Do I need to restart DSH after syncing MCP? Yes — the desktop GUI shell composes its profile once at boot. The dsh CLI/headless path hot-applies profile patches.

Can I remove something? Yes — the GUI's DSH 现状 section has remove buttons, or use agent_sync_remove.

🧑‍💻 Development

pnpm install
pnpm test          # node --test
index.mjs        Host plugin: scanners, sync, HTTP routes (in-process, Node built-ins only)
client.js        Browser panel (lazy-CJS, zero build) — registers Settings → MCP/Skills同步
cordis.patch.yml Bundle patch that mounts the plugin row
plugin-market.json  DSH plugin market submission entry

🛒 DSH Plugin Market

Once PR #1729 is merged, find it in DSH → Settings → Plugin Market, or install directly:

dsh plugin --profile web add github:kuaiyukuaikuai/dsh-agent-sync

📄 License

[MIT](./LICENSE)