扫描本机 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 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:kuaiyukuaikuai/dsh-agent-sync
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
🦾 dsh-agent-sync
一键把 20+ 种 AI agent 的 MCP 服务器与 Skills 同步进 DeepSeek Harness(DSH)
English | 简体中文
扫描本机安装的其他 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.toml(mcp_servers)+ ~/.codex/skills |
| Claude Code | ~/.claude.json、~/.claude/settings.json + skills + plugins |
| cc-switch | ~/.cc-switch/cc-switch.db(mcp_servers / skills 表) |
| 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/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 后生效;dshCLI / 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
📄 开源协议
链接
同类插件
Tencent/WeKnora#dsh-weknora★ 31789
把 WeKnora 知识库接入 dsh 的四个只读工具:列出知识库、混合检索原文片段、按顺序还原单篇文档,以及直接取用 WeKnora 自己带引用的 RAG 或 ReAct agent 回答(含可续聊的 session id)。
superdesigndev/treg★ 4052
给 Agent 的工具目录:按「要做的事」检索约 2,600 个外部接口(SEO 与 SERP、外链、社交、人物与公司信息补全、广告库、抓取),查看参数与单次调用价格后直接调用,凭据由服务端注入。附带技能,MCP 行在未设置 TREG_TOKEN 前保持禁用。
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1130
把腾讯云 CloudBase 后端接入 DeepSeek Harness——在对话里搭好并部署全栈应用,查询结果渲染为表格卡片(分页、排序、导出 CSV),部署后可预览真实域名,并提供 CloudBase MCP 工具集(`mcp__cloudbase__*`),登录走 device-code 流程。
gitroomhq/postiz-agent#dsh-postiz★ 499
通过 MCP 将 DeepSeek Harness 连接到 Postiz:列出已连接的社交媒体渠道、获取各平台发帖规则,并向 X、LinkedIn、Instagram、Facebook、Threads、TikTok、YouTube、Reddit、Bluesky、Mastodon、Discord、Slack、Telegram 等平台排期、存草稿或发布帖子;附带 postiz 工作流技能。
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 482
面向 DeepSeek Harness 的本地 IMAP 发票下载、OCR 识别、归档与 Excel 报销汇总。
anysearch-team/anysearch-dsh★ 445
基于 AnySearch 的实时网页与垂直搜索插件,为 DeepSeek Harness 提供搜索工具。



社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。