Back to marketplace

dsh-plugin-tool-management

Agent & Workflow

ouli-1242/dsh-plugin-tool-management

Unified management panel for DeepSeek Harness MCP servers, skills, scene memory, subagents, prompts and archived sessions across eight tabs.

  • dsh
  • dsh-plugin
GitHub Stars
12GitHub
Views
0DSH Plugin Hub
Forks
1GitHub
Open issues
1GitHub Issues
Manifest version
0.12.1dsh-plugin-tool-management
Latest push
Oct 8, 2026GitHub
License
MITTypeScript
Plugin type
Host + ClientRuns in both Host and Web Client

Verification and compatibility

This section shows evidence collected by the catalog. Undeclared information is labeled as unknown.

Static checked
01Exact source: npm · dsh-plugin-tool-management@0.12.102Validated: Sep 22, 202603Verified Harness: 0.1.0-rc.7
Current-version compatibility
Verified on the catalog Harness version
Declared Harness range
Not declared
Declared platforms
Not declared
Profiles
web
Build approval
Unknown
Permissions
Not declared
External services
Not declared
Telemetry
Unknown
No known risk flags found

This is not a security endorsement. Review source, permissions, and configuration before installing.

View evidence and scope

Verification covers only the named source, version, and Harness environment. It does not guarantee future compatibility.

  • dsh-plugin-tool-management@0.12.1
  • The manifest and static structure passed checks; a runtime load check has not completed.

README

View source

dsh-plugin-tool-management

npm version License Node GitHub

DSH Market awesome-dsh-plugin dshfind 0xsline

简体中文 · English · Changelog · 版本更新概要

DeepSeek Harness 的 MCP、技能、场景、记忆、子智能体、提示词与归档会话管理插件。八个页签:场景 / MCP / 技能 / 子智能体 / 提示词 / 记忆 / 会话 / 兼容。

dsh plugin --profile web add dsh-plugin-tool-management@latest

装完硬刷新浏览器(Cmd/Ctrl+Shift+R),设置 → 工具。插件只写自己的文件,不改技能源文件;重启与升级后配置都在。


演示视频

画面里每一个界面都是真机截图,没有重画的 UI,也没有伪造控件。

背景音乐:Kevin MacLeod「Limit 70」,CC BY 4.0。


截图

场景MCP
场景MCP
技能子智能体
技能子智能体
提示词记忆
提示词记忆
会话兼容
会话兼容

核心亮点

一句话:把「工作 / 写作 / 编程」各配成一套场景,点一下整套切换;插件管的东西,模型都看得见。

亮点说明
一键换场景每个场景各配一套 MCP / 技能 / 人设 / 记忆,进入时整套切换、退出时还原;模型也能按你说的切
不离开对话就能管对话里打 / 出「工具」段,启停各域条目,点一下就生效
记忆自动送到模型眼前每个场景下写几段 .md 就是它的资料库,正文自动进上下文
给 MCP 服务器写备注写进备注的话模型每轮都看得到,会照做
单个工具也能关一台服务器里可以只停某个工具,模型看不见也调不到
技能状况一眼看穿哪份在生效标「首选」,被同名覆盖的标出来源
子智能体 = 一个文件一个角色写一份角色说明就能派活;跑完只回结果、不占你的会话记录
提示词备好几套AGENTS.md 可以存多份、一键切换;场景可以各自绑一份
会话不再丢归档按项目分组、能搜、能批量恢复;Claude Code / Cursor / Codex 的记录能导进来
模型一定看得见六个域各注入一条上下文,内容没变不重发
锁住就不怕手滑场景可以上锁:五个域的增删改整体只读
删了能找回技能 / 记忆 / 人设 / 提示词 / 场景的删除都进回收站(会话永久删除除外)
安全、不添乱只写自己的文件;密钥默认打码、看明文要令牌

快速开始

前置:DSH 已安装(dsh web 可运行),Node.js ≥ 18。

dsh plugin --profile web add dsh-plugin-tool-management@latest   # 安装 / 更新
dsh plugin --profile web remove dsh-plugin-tool-management        # 卸载

装完硬刷新浏览器,设置 → 工具 出现八栏即成功。界面改动即时生效,宿主侧改动需重启 dsh web。

也可以让模型代劳:

安装 dsh-plugin-tool-management 插件:
dsh plugin --profile web add dsh-plugin-tool-management@latest
装完提醒我硬刷新浏览器。

功能

斜杠命令(在对话里直接管)

  • 打 / 出「工具」段:六行 —— 场景 / 技能 / MCP 服务器 / 子智能体 / 提示词 / 记忆。点一行进这一域,再点一条直接生效;点完菜单不关。
  • 状态看得见:启用项绿勾、停用项空框,右侧灰字是条目备注,域行右侧给当前态摘要。
  • 条目多也不挡路:每域全量列出、面板自己滚;技能按来源目录分组、记忆按场景分组,已启用的排前面。每个外部技能目录另给一行,点它就是启停整个来源。
  • 只放可逆动作:进场景与各类启停;增删改、导入导出、改配置仍各归各页。
  • 走宿主官方通道:用 DSH 的输入触发器接口注册,不 patch 官方包;「兼容 → 注入」里两段各一颗开关。
  • 「工具 › 提示词」两类都在:全局那组选哪一份写进 AGENTS.md(单选),快捷那组是启停。
  • 「快捷提示词」另起一段:只列开着的,点一行把存好的话贴进输入框,不自动发送。

场景与记忆

  • 场景 = 分组,记忆 = .md 文件:memories/<场景>/<名>.md,整篇正文自动注入上下文,文件名支持中文。
  • 「启用」与「进入」是两件事:启用决定注入按哪个场景走(单选,全关 = 只注入「全局」与 _shared);进入才按档案整套切换 MCP / 技能 / 人设,并把绑定的提示词写进 AGENTS.md。
  • 场景档案:每个场景搭配 MCP 工具集 / 技能集 / 子智能体 / 记忆;勾的启用、没勾的停用,整段没建 = 该域全部停用,退出时按进场景前的快照还原。
  • 场景锁定:锁定后 MCP / 技能 / 子智能体 / 记忆 / 提示词五域的增删改整体只读。
  • 删除场景 = 连记忆一起删:场景记录、档案与全部记忆进同一条回收站条目,恢复时整条放回;使用中的场景拒绝删除。
  • 导入导出:.md / .zip(目录名 = 场景,bundle 带附件),同名跳过绝不覆盖。
  • 注入预算:默认 128 KiB,放不下的跳过并列出清单。
  • 子代理会话不另设开关:注入哪几个域由同一张表决定,但场景与记忆只在顶层注入。

子智能体

  • 一个文件一个人设:subagents/<人设>.md,frontmatter 全可选;output: 一行一条写"产出必须长什么样"。
  • 人设正文带一层角色框架:正文原样用在 # Persona: <名字> 标题下,附授权与边界各一行;人设文件本身不用改。
  • 委派:subagent_manager_run 带人设运行、只回最终结果、不进 History;默认新起独立会话,inherit: true 继承本次会话已完成的轮次。
  • 启停与目录:停用的人设不注入、模型不可见(文件不动);新建 / 导入 / 恢复默认停用。人设目录只列名字 + 描述。
  • 目录注入深度(catalogDepth):默认 1 = 只在顶层会话注入目录,99 = 任何深度都注入;不限制嵌套深度。
  • 工具限制按 Agent 预设:每个预设一份白 / 黑名单(互斥),候选只列该预设自己的工具,分「插件工具 / 官方工具 / 其他工具」三段;白名单会并回当前所有 mcp__* 工具(只勾 read 拦不住 MCP 里的 shell),保留名 run_code 会被剔除并注明。
  • 模型与来源:都从宿主 LLM 目录里选(选定来源后模型只列该来源的);留空 = 继承主会话。
  • 思考强度:档位由所选模型声明;指定了模型时留空 = 用该模型的默认档位。

MCP 服务

  • 增删改查、即改即生效:写入 cordis.patch.yml,改前自动备份。级别分「全局 / 应用级」,新增默认全局。
  • 工具级开关:单个工具可独立停用(模型看不见也调不到),整台支持批量。
  • 停着也能看清单:没在跑的服务器仍显示上次见过的工具名与描述(标「上次运行时」);从没跑过的可以一键启动读取。
  • 备注:每台服务器可写一句给模型的提示,随状态段一起注入;曾经连上过、现在连不上的会列出来并标注。
  • 密钥打码:默认把凭据整值打码($VAR、!!js 这类间接引用不动),看明文要令牌;打码值不会被写回配置。
  • 迁移与备份:跨项目级 / 全局迁移失败自动回滚;支持 JSON 导出导入。

技能

  • 来源一览:项目级 / DSH / Agents / Codex / Claude / 自定义目录,按来源分组。
  • 两组权限相反:默认来源的技能可删可停;外部目录可以停用或移除,但里面的技能文件只读。
  • 移除 ≠ 停用:移除 = 连目录都不扫(文件零改动,可恢复);停用 = 仍列出但不可调用。
  • 同名谁在生效:生效的那份标「首选」,被覆盖的标出来源。
  • 自定义目录 / ZIP 导入导出 / 回收站。

提示词预设

  • 多套 ~/.dsh/AGENTS.md 基线一键应用(下一轮对话生效),保留 5 代备份。
  • 记得「最近一次应用的是哪份」:就算你手改过 AGENTS.md,也答得出来源。
  • 每条预设可写一句"这份是干什么的",只存在插件侧、不进 AGENTS.md。
  • 被引用的不能删(场景绑定 / 当前内容 / 退出场景要恢复的那一份),删除进回收站。
  • 生效与否就是卡片左边那颗开关:点亮 = 把这一份写进 AGENTS.md;基线是单选,所以关不掉 —— 想换一份就点亮另一份。
  • 场景接管期间点亮另一份 = 把该场景改绑到那一份;锁定时拒绝。
  • 快捷提示词(同页第二段):存一段常用的话,/ 里点一下就原样贴进输入框;它不注入上下文,卡片上那颗开关只管这条在 / 里出不出现。
  • 场景可以绑定一组快捷提示词:进入本场景只启用勾的那几条、其余停用,退出按进场景前的开关还原。
  • 两组各自是一张可折叠卡片(点卡片头收起 / 展开);快捷那组卡片头有「全选 / 取消全选」,全局那组没有 —— 那一档是单选。

历史会话

  • 按项目分组、搜索、批量恢复 / 永久删除、保留期自动清理;工作区登记被删后可一键重新登记。
  • 导入 Claude Code / Cursor / Codex / 任意文本(工作区可挑、可浏览、可给路径);导出 Markdown / JSONL,分三档累进:仅正文 → 正文 + 工具 → 正文 + 工具 + 思考。导出是转录,不是备份 —— 要留全量请用「归档」。

宿主兼容

  • 「兼容」页:宿主版本、能力可用数、每个动作走原生 / 适配 / 不可用、降级项与原因;三个写入口:访问令牌、注入设置、模型工具表。
  • 命令行:node scripts/doctor.mjs(体检)、node scripts/host-deps.mjs --fix(依赖对齐)。
  • 压制型预设(minimal 这类)下本插件的注入默认停用,可在「兼容」页按域强制打开。
  • 关掉「技能」「提示词」的勾选 = 连宿主那份一起停(这两域在标准预设下由官方送);其余三域勾选完全生效。
  • 注入长什么样:每个域一条 <system-reminder>,# 板块标题 + 正文 + 一句"以本份为准";正文里的 </system-reminder> 会被转义。

数据落点

内容位置
MCP 定义~/.dsh/cordis.patch.yml(插件只写它;改前自动备份到 hub 的 backups/)
技能策略 / 自定义目录~/.dsh/tool-management/skills-state.json
技能 / 记忆 / 人设 / 预设~/.dsh/tool-management/{skills,memories,subagents,prompts}/
子智能体启停~/.dsh/tool-management/subagents-index.json
回收站(技能 / 人设 / 预设 / 场景)~/.dsh/tool-management/trash/{skills,subagents,prompts,scenes}-trash/
记忆回收站~/.dsh/tool-management/memories-trash/(在 hub 根下,不在 trash/ 里)
归档账本 / 保留期~/.dsh/tool-management/history-*.json
记忆索引 / 场景 / 档案~/.dsh/tool-management/memories-index.json
MCP 侧车(停用表 / 已知工具 / 备注 / 设置)~/.dsh/tool-management/mcp-*.json
注入设置(六个域开关)~/.dsh/tool-management/inject-settings.json
模型工具表(关掉的工具 + 存下的方案)~/.dsh/tool-management/tool-table.json
场景页界面设置(进场景前弹不弹预览卡)~/.dsh/tool-management/scene-settings.json
运行日志 / patch 备份~/.dsh/tool-management/tool-management.log · backups/

插件安装目录里不存用户数据(dsh plugin update 会整体替换该目录)。备份按每份 patch 文件各留 5 份(全局与每个 profile 各自计),一次批量操作就可能把某层的 5 个槽位吃掉。

配置与安全

字段说明
token访问令牌。设了之后所有写操作 + 明文密钥都要求 x-dsh-token;不设时明文接口一律关闭。也可改用环境变量 DSH_PLUGIN_TOOL_MANAGEMENT_TOKEN。
tokenDisabledtrue = 令牌保留在配置里但当前不生效(兼容页「关闭保护」写的就是这一行)。写操作不再要求令牌,明文查看仍然要。
maxBodyBytes请求体上限,默认 88 MiB。

磁盘上的明文(必读):打码只发生在界面展示;MCP 的 env / headers 与插件自己的 token 在 cordis.patch.yml(及各 profile 副本)里始终明文,改配置前整份文件会备份进 ~/.dsh/tool-management/backups/(不加密、不轮转、卸载也不回收)—— 一份密钥最多有 5 ×(含它的 patch 文件数)+ 1 份明文副本。令牌门禁管不到磁盘读取,防线是操作系统的文件权限。清理入口:设置 → 工具 → 兼容 → 「清理旧备份」。

  • 浏览器:读写走 cookie,不需要令牌;明文密钥(显示密钥 / 导出)要令牌。令牌在「兼容」页的「访问令牌」块管理:本次启动填一次管到 DSH 退出;写进配置文件要重启生效。
  • 销毁方向一律要当场再输一次当前令牌(关闭保护 / 修改 / 删除)—— 本次启动解锁过不算。
  • curl / 脚本:带 x-dsh-token,或带浏览器 cookie。
  • HTTP 状态码:除安全栅栏的 401 / 403 外,一律 HTTP 200 + { ok: false, error } —— 脚本分流请以 body.ok 为准。
  • 端口转发:宿主缺 connection 服务时栅栏退到「Host 回环 + 同源」判定,本机进程伪造 Host: localhost 即可调用写 op。转发到局域网 / 公网的场景务必配令牌 —— 陌生人注入 MCP 命令等同远程执行;「选择文件夹」弹窗用的 dir-list 能列出任意绝对路径(只读),同一条前提。
  • 服务器名避开 __(起名建议):工具全名是 mcp__<服务器名>__<工具名>,服务器名里再有 __ 会让它切不唯一,界面上的勾选可能落不到停用表里那条键上。本轮不收紧校验,改为在兼容页出一条提示;起名时避开 __ 就没有这个问题。

常见问题

现象解决
装完没有页面硬刷新;不行重启 DSH。
重复 MCP 页签删 cordis.patch.yml 里的旧 loader 行后重启。
改坏配置 DSH 起不来从 ~/.dsh/tool-management/backups/ 取最近的 cordis.patch.yml.<层级>.bak-<时间戳> 覆盖回去(每份 patch 各留 5 份)。
升级 DSH 后动作不可用设置 → 工具 → 兼容 看原因;doctor.mjs → host-deps.mjs --fix。
模型调不到某条工具「兼容」页的模型工具表看它是不是被关了(出厂默认关着 15 条);面板和脚本不受影响。
approval=never 还要确认吗不弹卡,直接放行并记日志;想问回来切回「工作区内修改」。
subagent_manager_run 报 provider 不可用对应 provider 没注册:spawn(默认)/ fork(inherit)分别挂 @deepseek-ai/dsh-subagent-spawn-in-process / -fork-in-process 后重启。
场景绑了 A 人设,官方 subagent 还在跑别的官方那两个是宿主的工具,本插件管不到;贴合人设的走 subagent_manager_run,官方只在没有人设贴合或要后台跑时用。

开发

npm install
npm run build        # tsc + 同步客户端
npm test             # 构建 + i18n + 契约测试(纯函数不变量与宿主契约)
npm run check:i18n   # 词典自检
npm run doctor       # 宿主兼容体检

lib/ 不入版本库,克隆后先 npm run build。改完重启 dsh web 才生效。运行时依赖:fflate(导出打包)、js-yaml(写宿主补丁前的解析校验,惰性加载);@deepseek-ai/* 一律用宿主那份。

部署注意:npm run build 的 profile 镜像清单不含 node_modules,本地联调时新增的运行时依赖(如 js-yaml)要么在 profile 侧装一份,要么接受"补丁校验跳过并上报"的降级。npm install 装到 profile 的正式安装不受影响。

许可证

MIT

Comments

0
Newest first