Back to home@JNan-QQ

dsh-settings-extensions

No description

Stars
0
Language
JavaScript
Created
Aug 27, 2026
Updated
Aug 27, 2026

Introduction

DSH Settings Extensions

npm version License: MIT

为 DeepSeek Harness 设置界面添加扩展管理功能。

安装

npm 安装(推荐)

npm install dsh-settings-extensions

或使用 pnpm:

pnpm add dsh-settings-extensions

从源码安装

git clone https://gitee.com/jn-qq/dsh-settings-extensions.git
cd dsh-settings-extensions
npm install

功能特性

1. Skill 管理

  • 查看所有已注册的 Skill 列表
  • 支持 Skill 启用/禁用切换
  • 显示 Skill 来源和描述信息

2. MCP 管理

  • 查看所有已配置的 MCP Server 列表
  • 支持 MCP Server 启用/禁用切换
  • 支持删除 MCP Server 配置

3. 归档 Session 管理

  • 查看所有归档的 Session 列表
  • 支持恢复归档 Session 为活跃状态
  • 支持永久删除归档 Session(物理删除文件)

集成到 DSH

1. 使用 npm 包(推荐)

在 DSH web profile 的 package.json 中添加依赖:

{
  "dependencies": {
    "dsh-settings-extensions": "^1.0.0"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-settings-extensions"
      ]
    }
  }
}

然后运行 npm install 并启动 DSH:

cd ~/.dsh/profiles/web
npm install
dsh web --host 0.0.0.0

2. 本地插件安装

将插件目录复制到 ~/.dsh/plugins/ 目录下:

cp -r dsh-settings-extensions ~/.dsh/plugins/

然后在 ~/.dsh/profiles/web/package.json 中添加插件:

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-settings-extensions"
      ]
    }
  },
  "dependencies": {
    "dsh-settings-extensions": "file:../../plugins/dsh-settings-extensions"
  }
}

使用方法

  1. 打开 DSH Web 界面
  2. 点击左侧边栏底部的"设置"按钮
  3. 在设置面板中,你会看到新的"扩展管理"分区
  4. 点击"扩展管理",可以看到三个标签页:
    • Skill 管理:管理 Skill 的启用/禁用
    • MCP 管理:管理 MCP Server 的配置和启用状态
    • 归档会话:管理归档的 Session

配置说明

Skill 启用/禁用

Skill 的启用/禁用状态存储在 ~/.dsh/settings.yaml 中:

skills:
  disabled:
    - tencent-docs
    - test-team

MCP Server 配置

MCP Server 配置存储在 ~/.dsh/settings.yaml 中:

mcp:
  servers:
    filesystem:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-filesystem"]
      env: {}
      enabled: true
    github:
      command: "npx"
      args: ["-y", "@modelcontextprotocol/server-github"]
      env:
        GITHUB_TOKEN: "your-token-here"
      enabled: false

归档 Session

归档 Session 通过在 Session 目录下创建 .archived 标记文件来标识:

~/.dsh/sessions/<workspace>/<session-id>/
├── session.jsonl.zstd
└── .archived          # 归档标记文件

API 端点

插件提供以下 API 端点:

Skill 管理

  • GET /api/settings-extensions/skills - 获取 Skill 列表
  • POST /api/settings-extensions/skills/:name/toggle - 切换 Skill 启用状态

MCP 管理

  • GET /api/settings-extensions/mcp/servers - 获取 MCP Server 列表
  • POST /api/settings-extensions/mcp/servers/:name/toggle - 切换 MCP Server 启用状态
  • POST /api/settings-extensions/mcp/servers/:name/config - 更新 MCP Server 配置
  • DELETE /api/settings-extensions/mcp/servers/:name - 删除 MCP Server

Session 管理

  • GET /api/settings-extensions/sessions/archived - 获取归档 Session 列表
  • DELETE /api/settings-extensions/sessions/:workspace/:id - 永久删除归档 Session
  • POST /api/settings-extensions/sessions/:workspace/:id/restore - 恢复归档 Session

注意事项

  1. 数据安全:永久删除 Session 操作不可撤销,请谨慎操作
  2. 配置备份:修改配置前建议备份 ~/.dsh/settings.yaml
  3. 重启生效:某些配置修改可能需要重启 DSH 服务才能生效

开发说明

目录结构

dsh-settings-extensions/
├── package.json          # 插件配置
├── cordis.patch.yml      # Cordis 注册配置
├── README.md            # 本文档
└── src/
    ├── index.js          # Host 端 API
    └── client.js         # Client 端 UI

扩展开发

如需添加新的设置标签页,可以在 src/client.js 中:

  1. 创建新的组件函数
  2. 注册到 settings.extensions.tab 插槽
  3. 添加相应的 locale 翻译
// 示例:添加新的标签页
ctx.slots.inject("settings.extensions.tab", () => ctx.slots.register({
  name: "settings.extensions.tab",
  id: "my-new-tab",
  order: 30,
  label: () => t("myNewTab"),
  locale: NS,
  inject: () => ({ t, connection })
}, MyNewTabComponent));

许可证

MIT