編集者注

kuaiyukuaikuai/dsh-agent-sync

DSH plugin: scan other AI agents (Codex, Claude Code, cc-switch, Hermes, opencode, Gemini, Grok, Kimi, CodeBuddy, Trae, OpenClaw, Qoder, WorkBuddy, Cursor, ...) and one-click sync their MCP servers and skills into DSH.

これは DeepSeek Harness(DSH)プラグインです。当サイトは GitHub README、インストール情報、メンテナンス状況、公開セキュリティシグナルをまとめています。

🦾 dsh-agent-sync

一键把 20+ 种 AI agent 的 MCP 服务器与 Skills 同步进 DeepSeek Harness(DSH)

English | 简体中文

License Node DSH Awesome DSH Plugin Plugin Market PR

扫描本机安装的其他 AI agent —— Codex、Claude Code、cc-switch、Hermes、opencode、 Gemini、Grok、Kimi、CodeBuddy、Trae、OpenClaw、Qoder、WorkBuddy、Zcode、Cursor、 Windsurf、Cline、Roo Code、Qwen Code 等 —— 并把它们的 MCP 服务器Skills 一键同步进 DSH。


✨ 功能特性

能力说明
🔍 自动扫描读取各 agent 的真实配置(~/.codex/config.toml~/.claude.json~/.cc-switch/cc-switch.db~/.codebuddy/mcp.json~/.workbuddy/.mcp.json …),发现 MCP 服务器与 Skills
⚡ 一键同步 MCP@deepseek-ai/dsh-mcp-client 实例写入每个 profile 的 cordis.patch.yml(自动修复非法 YAML)→ 变成 mcp__<server>__<tool> 工具
🧠 一键同步 Skills把技能包拷入/链接到 $DSH_HOME/skills全局)或 <workspace>/.dsh/skills按工作区),由 DSH 的 skill-filesystem 提供方自动发现
🗂️ 作用域管理MCP/Skills 管理页:启停开关、移除;技能按全局 + 各工作区 Tab 分组展示
➕ 添加 MCP / Skill手动添加——MCP 用表单(stdio / streamable-http);Skill 从文件夹 / 单个 .md / .zip(或拖放)加入全局或某工作区
⇄ 迁移技能在全局 / 工作区之间移动或复制技能(迁移弹窗,多选)
🏷️ 技能分组建命名分组、绑定技能、按组筛选列表
📄 技能内容查看点击技能 → 详情弹窗展示元数据 和 SKILL.md 正文
🗑️ 删除二次确认移除按钮先武装 3 秒内联确认(超时自动还原)
⚙️ 配置Skill 同步方式(复制 / 软连接 junction)+ MCP 同步目标(全部 / desktop / web profile),⚙️ 设置弹窗修改
🔀 启停开关对任意已同步的 MCP 服务器 / skill 一键停用或启用——停用的 MCP 从 profile patch 移除,停用的 skill 把 SKILL.md 改名为 SKILL.md.disabled(对发现隐藏,随时可逆)
🖥️ GUI 面板设置 → MCP/Skills:居中 MCP/Skills 切换、胶囊 Tab 与按钮、卡片网格、搜索
🛠️ 模型工具agent_sync_scan / agent_sync_do / agent_sync_status / agent_sync_config / agent_sync_add_skill / agent_sync_toggle / agent_sync_remove / agent_sync_sources
🧩 易扩展通用 agent 注册表(AGENT_DEFS)——新增一个 agent 只需一行

📸 界面截图

MCP/Skills 管理MCP/Skills 同步添加技能
管理页同步页添加技能

🚀 快速开始

环境要求

  • 运行中的 DSH(桌面版或 headless),Node.js ≥ 22.5
  • 需要同步的 agent 必须已安装在本机(插件不内置任何 agent 数据)

安装

方式 A:作为 profile bundle(推荐)

dsh-agent-sync 加进 profile 的 dsh.profile.bundles 并安装:

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

重启 DSH。随包自带的 cordis.patch.yml 会自动挂载插件行。

方式 B:手动加行

把包放到 profile 可解析的 node_modules,然后在 $DSH_HOME/profiles/<name>/cordis.patch.yml 追加:

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

重启 DSH。

📖 使用

GUI 面板

设置 → MCP/Skills(主页 MCP/Skills 管理

  • 管理(主页) —— 居中的 MCP / Skills 切换;卡片网格,每张卡片带开关(启停合一)与移除按钮(3 秒内联确认);已停用卡片置灰并带徽标。Skills 按作用域分组:全局(~/.dsh/skills)与各工作区(<workspace>/.dsh/skills),工作区 Tab + 搜索框 + 技能分组筛选
  • 工具栏(切换行右侧) —— ⇄ 迁移技能(跨作用域移动/复制技能)与 + 添加 MCP / + 添加 Skill(手动添加)
  • MCP/Skills同步 → —— 一个按钮,点击进入同步页:来源 Tab(常用 agent +「更多 ▾」)、全选、同步按钮(可选择同步到全局或某工作区)、自定义源
  • + 添加 Skill 弹窗 —— 选文件夹(目录束)/ 单个 .md / .zip,或直接把文件拖放到弹窗;选择目标作用域(全局 / 工作区)
  • ⚙️ 设置弹窗 —— Skill 同步方式(复制 / 软连接 junction)与 MCP 同步目标(全部 / desktop / web profile)

UI 实现 —— 不依赖组件库。面板为纯 React(React.createElement)+ DSH 主题变量(--dsw-alias-*)自绘,胶囊 Tab 与按钮;开关是自绘的小型 CSS 组件。

模型工具

agent_sync_scan        # 列出可同步内容(env 只显示键名,不泄露值)
agent_sync_do          # mcp/skills: ["all"] 或名称;scope: 全局或某工作区路径
agent_sync_config      # 读取/设置 { skillSyncMode: copy|link, syncProfiles: all|desktop|web }
agent_sync_add_skill   # 从本地目录(含 SKILL.md)或 .md 文件添加技能,scope 可选
agent_sync_toggle      # 启停已同步的 mcp/skill({type, name, enabled})
agent_sync_status      # 当前 DSH 状态 + 同步台账(含已停用条目)
agent_sync_remove      # 移除已同步的 mcp/skill
agent_sync_sources     # 管理自定义源(list / add / delete)

📦 支持的 agent

来源读取配置
Codex~/.codex/config.tomlmcp_servers)+ ~/.codex/skills
Claude Code~/.claude.json~/.claude/settings.json + skills + plugins
cc-switch~/.cc-switch/cc-switch.dbmcp_servers / skills 表)
Hermes~/.hermes/config.{yaml,yml,json}
opencode~/.config/opencode/{opencode,config}.json
Gemini~/.gemini/settings.json
Grok~/.grok/config.*
Kimi~/.kimi/config.tomlmcp.*
CodeBuddy~/.codebuddy/mcp.json
Trae~/.trae-cn/mcp.json
OpenClaw~/.openclaw / ~/.clawdbotconfig.*
Qoder~/.qoder*/mcp.json
WorkBuddy~/.workbuddy/.mcp.json
Zcode~/.zcode/config.json
通义灵码~/.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
自定义你自己的源(JSON / TOML / 技能目录)

所有路径都相对用户主目录 → 任何机器上装了对应 agent 就能扫(Windows / macOS / Linux),JSON、类 YAML、TOML 三种配置格式都能解析。

🔧 工作原理

其他 agent 的配置 ──► 扫描 ──► 同步 ──► DSH
  ~/.codex/...                    │
  ~/.claude.json                  ├─ MCP   → profiles/*/cordis.patch.yml(dsh-mcp-client 行)
  ~/.cc-switch/cc-switch.db       │
  ~/.workbuddy/.mcp.json          └─ Skills → $DSH_HOME/skills/<name>/SKILL.md
  ...
  • MCP 写入每个 profile 的 cordis.patch.yml(插件管理的 # --- dsh-agent-sync managed --- 段,文件损坏会自动修复)。桌面 GUI 壳在启动时一次性组合 profile,所以 MCP 在下次重启 DSH 后生效dsh CLI / headless 启动路径会通过 HMR 热生效。
  • Skills 默认复制、也可软连接(junction,skillSyncMode: link$DSH_HOME/skills(全局)或 <workspace>/.dsh/skills(按工作区),由挂载了 skill-filesystem 提供方的 agent preset 会话自动发现。软连接模式下停用 = 移除 junction(不碰源目录),启用 = 重建。

⚠️ 安全说明

  • 同步 MCP 会原样复制 env 里的值(数据库密码、API Key 等)到 cordis.patch.yml$DSH_HOME/agent-sync/state.json —— 与源配置本来就明文存放一致。
  • 扫描结果只列 env 键名,绝不输出值
  • 请把 state.json / patch 文件当密钥对待;建议使用带过期时间的 token,能引环境变量就引环境变量。

❓ 常见问题

为什么什么都扫不到? 本机没装这些 agent,或该 agent 的配置在别处。用「自定义源」可以指向任意 JSON / TOML / 技能目录。

同步 MCP 后需要重启 DSH 吗? 需要——桌面 GUI 壳启动时一次性组合 profile;dsh CLI / headless 路径会热生效。

能移除吗? 可以——GUI「MCP/Skills 管理」区有移除按钮(带 3 秒内联确认),或用 agent_sync_remove

🧑‍💻 开发

pnpm install
pnpm test          # node --test
index.mjs        Host 插件:扫描器、同步、HTTP 路由(进程内实现,仅用 Node 内置能力)
client.js        浏览器面板(lazy-CJS,零构建)—— 注册 设置 → MCP/Skills同步
cordis.patch.yml  bundle 补丁:挂载插件行
plugin-market.json   DSH 插件市场投稿条目

🛒 DSH 插件市场

已收录进 awesome-dsh-plugin 社区精选列表——可在 DSH → 设置 → 插件市场 找到、访问 awesome-dsh-plugin.com,或直接安装:

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

📄 开源协议

MIT

REPOSITORY SIGNALS

セキュリティとインストールエビデンス

このスコアは公開リポジトリメタデータと当サイトに登録されたインストールエビデンスのみに基づくもので、コードセキュリティ監査とは異なります。

出所の追跡可能性

公開プラグインカタログから取得し、公開 GitHub リポジトリにリンクしています。

ライセンス

リポジトリは MIT ライセンスを宣言しています。

メンテナンス活動

過去180日以内にコードの更新があります。

インストールエビデンス

再現可能な正確なインストールメタデータはまだ登録されていません。リポジトリの説明に従って手動で確認してください。

インストールライフサイクルスクリプト

確認したパッケージメタデータにインストールライフサイクルスクリプトは宣言されていません。