• 千凝

    开源一个 DeepSeek Harness 的插件管理中枢:Armory —— Prompt / Skill / MCP / Wallpaper / 对话 / 统计一站式管理,可越狱,破甲,成仁!

    本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:

    - 我的帖子已经打上 开源推广 标签: 是

    - 我的开源项目完整开源,无未开源部分: 是

    - 我的开源项目已链接认可 LINUX DO 社区: 是

    - 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 否

    - 以上选择我承诺是永久有效的,接受社区和佬友监督: 是


    最近在折腾 DeepSeek Harness(DSH),发现如果自己装了一堆 Prompt、Skill、MCP 之后,管理起来还是比较麻烦。

    所以自己做了一个插件项目,叫 Armory。

    项目地址:https://github.com/Qian-Ning/prompt-skill-armory

    目前已经可以直接通过 npm 安装:```
    npx prompt-skill-armory
    ```安装完成后,在 DSH 里可以直接进入 设置 → Armory,就是一个 CRT 终端风格的六 tab 管理面板,黑底绿字,看着挺顺眼的。


    ^-^ Armory 是干什么的?

    简单来说,就是给 DeepSeek Harness 加一个统一的「装备库 / 管理中枢」。

    目前主要包含六个模块:

    ^-^ Prompt 管理

    - 增删改查,启用/停用,设默认

    - 启用后经 ctx.systemPrompt.section 全局注入每个 agent 的系统提示词

    - 改一次,所有会话生效

    ^-^ Skill 管理

    - 一个列表统一管理:面板安装的(编辑/开关/卸载)+ 本地扫描的(托管)

    - 三种安装方式:手动填写、.md 文件选择、会话内 /armory-skill-dir / /armory-install-zip

    - 安装后在聊天里直接打 /skill-name 调用,modelInvocable 的技能模型也可自主调用

    ^-^ MCP 管理

    - 支持 stdio / HTTP 两种 MCP 服务器

    - 添加、编辑、删除,启用后自动连接

    - 每台展示运行状态和工具列表,支持连接测试

    ^-^ Wallpaper / 特效

    - 本地上传图片/视频(字节存盘,settings 只存 id 不膨胀)或填图片 URL

    - 透明度、遮罩、毛玻璃、模糊、铺放方式实时可调

    - Web 端与桌面客户端分别设置,互不干扰

    ^-^ 对话管理

    - 多选会话导出为 zip(含附件与工作区),另一台机器导入即可还原

    - 列表显示对话标题、项目与时间,标题回退到 DSH 官方规则

    - 支持真实删除(删目录 + 清索引,带确认)

    ^-^ 使用统计(cc-switch 风格)

    - 时间范围筛选(全部/30天/7天/今天)

    - 输入/输出/缓存 Token、缓存命中率、成本估算

    - 请求日志(时间/项目/模型/输入输出/缓存/成本/用时/首字/状态)

    - Provider(项目)统计与模型统计

    - SVG 双轴趋势图(今天按 24 小时分段)

    ^-^ 中英双语 UI

    目前项目版本是 v0.9.2,已经基本形成了一套比较完整的管理面板。


    ^-^ 界面截图

    图片

    CRT 终端风格,六 tab 一目了然

    提示词 |
    技能 |
    MCP |
    Wallpaper |

    图片 |
    图片 |
    图片 |
    图片 |

    对话 |
    统计 |
    |
    |

    图片 |
    图片 |
    |
    |


    ^-^ 安装非常简单

    前提

    已安装 DeepSeek Harness 运行时(dsh web 或桌面客户端)。插件是 DSH 的插件,不打包运行时本身。

    安装```
    npx prompt-skill-armory
    ```安装器自动完成:

    - 定位 DSH home(~/.dsh 或 $DSH_HOME)

    - 确保 web + desktop profile 存在

    - 安装两个插件包(Host + Web 面板)

    - 配置 Host bundle

    - 挂载面板(cordis.patch.yml)

    - 体检 settings(防 4MB 膨胀)

    启动```
    cd deepseek-harness
    pnpm run build
    pnpm dsh web

    或直接重启桌面客户端

    ```打开 设置 → Armory(书图标),六个 tab 即出现。

    卸载```
    npx prompt-skill-armory uninstall
    ``移除两个插件包、Host bundle、面板挂载,并清理壁纸/导出目录(提示词/技能配置保留在 settings.yaml,可手动删 switchblade` 命名空间彻底清除)。

    一键更新

    面板每次打开会自动检测 npm 最新版本;发现新版本时顶部横幅提示,点一下 Host 端原地重装。


    ^-^ 支持什么?

    环境 |
    面板 |
    /armory 命令 |

    dsh web(官方) |
    图片 |
    图片 |

    DSH Desktop 客户端 |
    图片 |
    图片 |

    项目并不是 Fork DSH 客户端,而是通过 profile + plugin 的方式挂载进去——安装器把面板挂进每个 profile 的 cordis.patch.yml,web 和 desktop 共用同一套机制,理论上可以比较方便地跟随 DSH 的更新。


    ^-^ 为什么做这个?

    我自己使用 DSH 的时候,经常会遇到一个问题:

    Skill 越装越多、Prompt 越积越多、MCP 越配越多,最后就开始乱了……

    尤其是自己折腾各种 Agent / Skill / MCP 的时候,每个东西都有自己的配置方式,每次想换个提示词或者加个技能都得去翻配置文件,太碎了。

    所以干脆做了一个统一入口。

    Armory 的架构设计:```
    ┌──────────────────────────────────────────┐
    │ DSH 运行时 │
    │ │
    │ ┌─────────────┐ RPC ┌──────────┐ │
    │ │ Web 面板 │◄────────►│ Host 服务 │ │
    │ │ ui-switchblade│ api.* │switchblade │ │
    │ │ (6 tabs) │ /api/* │ + routes │ │
    │ └─────────────┘ └────┬─────┘ │
    │ │ │
    │ ctx.systemPrompt.section │
    │ ctx.skills.register │
    │ │ │
    │ ┌───────────────────┴──┐ │
    │ │ 每个 agent 系统提示词 │ │
    │ │ 技能注册表 │ │
    │ │ 壁纸/对话/统计持久化 │ │
    │ └──────────────────────┘ │
    └──────────────────────────────────────────┘
    ``- **Host 服务**(@deepseek-ai/dsh-switchblade)持有提示词/技能/MCP/壁纸/对话/统计的 CRUD 与持久化,通过 ctx.systemPrompt.section 全局注入,通过 ctx.skills.register` 注册技能

    - Web 面板(@deepseek-ai/dsh-client-ui-switchblade)通过 connection RPC 调 Host,不直接碰 DSH 内部

    - 安装器把两者通过 profile 组合装进 DSH


    ^-^ 技术栈

    - TypeScript + tsdown 构建

    - Cordis 插件系统(DSH 原生插件框架)

    - Node.js ≥ 18(CLI 部分)

    - 纯前端,无后端依赖

    - MIT 许可


    ^-^ FAQ

    Q: 会影响我已有的配置/会话吗?

    A: 不会。插件只新增 switchblade settings 命名空间,不动其他配置。安装器还会体检 settings,防止膨胀。

    Q: 支持离线安装吗?

    A: 可以。把 npm 包拷到目标机器,npm install <tarball> 即可;或用 file: 安装本地构建产物。

    Q: 统计里的成本准吗?

    A: 是估算(内置单价 × token:输入 $0.3/M、输出 $1.2/M、缓存读 $0.03/M、缓存写 $0.6/M),不是真实账单。

    Q: 会话导入后另一台机器看不到?

    A: 导入成功后需重启 DSH 客户端让其重新扫描会话列表;若目标项目路径不同,在导入前填写「目标项目 key」以归入正确项目。

    Q: 为什么客户端侧边栏图标是齿轮而不是书?

    A: 桌面客户端打包版的 SettingsRoot 硬编码了图标映射。面板能正常工作,但书图标需要官方合入(见 UPSTREAM.md)。

    Q: 技能从哪里来?

    A: 三种:手动填写、.md 文件选择、会话内 /armory-skill-dir(目录)或 /armory-install-zip(zip)。安装后统一进"技能"tab 管理。


    ^-^ 希望 Linux DO 的大佬们帮忙看看

    这个项目目前还是我自己折腾出来的,很多地方肯定还有不完善的地方。

    特别希望大家帮忙看看:

    - 有没有实际使用 DSH 的朋友?

    - 目前这种 Prompt / Skill / MCP 的统一管理方式有没有价值?

    - 还有哪些 DSH 功能值得集成进来?

    - 有没有更好的插件架构设计?

    - 如果你觉得项目有用,欢迎帮忙点个 ^-^

    项目:

    ^-^ GitHub - Qian-Ning/prompt-skill-armory: Managing prompts,, skills, MCP tools & wallpaper for DeepSeek Harness · GitHub

    MIT License,完全开源。

    如果大家反馈不错,我也会继续把它往更完整的 DeepSeek Harness 开源插件生态 方向做。

    欢迎拍砖,也欢迎 PR / Issue。^-^

    主楼
  • 疯狂阿强

    哥们可以, 我也在写DSH插件 还是UP写的不错啊!!!

    #1
  • 千凝

    共勉,加油完善!

    #2
  • 沐告杉

    您好,在DSH客户端直接进入恢复模式了,是不是因为 已经到 v0.1.2-rc.1了?

    #3

发表回复

登录后回复