Passer au contenu principal
H

dsh-plugin-kit (search)

hyzyn/dsh-plugin-kit/packages/search

Recherche globale en texte intégral pour l'interface web DSH : une zone de recherche dans la barre latérale qui parcourt les sessions de l'historique (via l'index sessionQuery, avec une analyse par session en repli) et les panneaux de paramètres, met en surbrillance les correspondances et saute vers la session ou la carte de paramètres correspondante.

Installer

dsh plugin --profile web add github:hyzyn/dsh-plugin-kit

Ce plugin se trouve dans le sous-répertoire packages/search du dépôt.

README

dsh-plugin-kit · DSH 插件全家桶

中文 | English

Version   Stars   Forks   npm   Downloads   License

DeepSeek Harness(DSH)Web GUI 的插件全家桶
环境变量 · MCP 服务器 · Prompt · Profile · RSS · 全局搜索 · Codegraph 集成 · 终端面板 · 容器面板 · 插件脚手架

dsh plugin --profile web add @hyzyn/dsh-all
一次装齐,重启 dsh web 生效 · 只想要其中几个 → 按需安装

是什么 · 包索引 · 快速开始 · 开发新插件 · 文档地图 · 参与贡献

是什么

dsh-plugin-kit 是给 DeepSeek Harness(DSH)Web GUI 用的通用插件集合。所有插件都走官方 profile 机制挂载到 dsh web,不改 DSH 源码;可以逐个安装,也可以用聚合包一次装齐。

终端面板:多标签真实 PTY + 顶部服务器状态条,下方抽屉是 SFTP 双栏(左本机 / 右远程) Docker 容器面板:会话右侧栏标签,与对话同屏
RSS「今日值得读」:当日条目按分类与来源分区,可搜索、按分类筛选与刷新 全局搜索:输入 codegraph,结果按最近会话 / 历史会话 / Prompt / MCP 工具 / 设置分组

按「配置类」→「面板类」→「开发类」排:

能力原生 dsh webdsh-plugin-kit
MCP 服务器手改 patch / 命令行可视化卡片 + 连接测试 + 保存后热加载
环境变量手改 env.yml / 命令行Web GUI 卡片,保存即写入 process.env
Prompt 管理手改配置可视化编辑 + 版本管理 / A/B 测试 / 导出分享
Profile 管理命令行可视化创建 / 复制 / 重命名 / 删除
RSS 聚合无多源订阅 + 每日「今日值得读」+ 可选 AI 摘要(跟随宿主默认模型,零配置)
全局搜索仅会话标题 / 内容侧边栏一处全文检索历史会话、Prompt、MCP 工具与设置面板
终端面板无xterm.js 多标签真实 PTY + SSH 直连(连接簿 / 指纹钉扎 / 断线重连)+ SFTP 双栏直传;注册 tty_* / sftp_* 工具
Docker 容器面板无容器 / 镜像 / Compose / 实时日志与统计 / 多目标总览;默认只读,变更与 exec 需显式开关;注册 docker_* 工具
Codegraph 集成无代码图谱卡片:索引状态 / 符号搜索 / 调用链 / 影响面 / 一键 sync-index
插件开发手写样板pnpm create-plugin 脚手架 + @hyzyn/dsh-kit 共享工具库

每个插件的完整功能、截图与注意事项在它自己的 README 里(见下表)。本文件只讲「是什么 + 装哪个」。

包索引

1 个共享库 + 10 个功能插件 + 1 个聚合包;包之间的关系、依赖方向与跨插件协作见 docs/architecture.md。

包干什么文档
@hyzyn/dsh-kit库(非插件):宿主半体共享工具——HTTP 回环围栏、托管区块、!!js 表达式、服务读取README · DEFECTS
@hyzyn/dsh-env环境变量 / 密钥管理README
@hyzyn/dsh-mcpMCP 服务器配置卡片,保存后热加载README
@hyzyn/dsh-promptsystemPrompt 编辑 / 版本 / A/BREADME
@hyzyn/dsh-profile~/.dsh/profiles 图形化管理README
@hyzyn/dsh-kit-settings在官方「设置」里补一行「插件配置」入口README
@hyzyn/dsh-rssRSS 聚合 → 每日「今日值得读」README
@hyzyn/dsh-search侧边栏全局搜索(⌘ / Ctrl + K)README
@hyzyn/dsh-codegraph代码图谱卡片 + MCP 托管 + 采纳率测量README · DEFECTS · ROADMAP
@hyzyn/dsh-tty终端面板:PTY / SSH / SFTP / 隧道README · DEFECTS · ROADMAP
@hyzyn/dsh-dockerDocker 容器面板(本机 / SSH),默认只读README · DEFECTS · ROADMAP
@hyzyn/dsh-all聚合安装包:一条 bundle patch 挂载上面 10 个插件README

快速开始

系统要求

  • 已安装 DeepSeek Harness,dsh web 可正常启动。当前适配三档基线:DSH 0.1.7-rc.2、0.2.0-rc.1 与 0.2.0-rc.2;0.1.6-alpha.2 及更早不再支持。
  • 兼容性由每个可安装插件在 peerDependencies 里声明的 @deepseek-ai/dsh 范围保证,DSH 在安装前 与启动时各校验一次。被拦下长什么样、怎么临时放行 → docs/troubleshooting.md § 兼容性校验。
  • npm 安装无额外要求;从仓库源码安装需要 Node.js >= 22.19 与 pnpm 10。

从 npm 安装

推荐按需装——下面一行一个包,只装你要的。从「配置三件」起步最省(env / mcp / prompt, 都不向模型注册工具):

dsh plugin --profile web add @hyzyn/dsh-env          # 环境变量 / 密钥
dsh plugin --profile web add @hyzyn/dsh-mcp          # MCP 服务器
dsh plugin --profile web add @hyzyn/dsh-prompt       # systemPrompt
dsh plugin --profile web add @hyzyn/dsh-profile      # Profile 管理
dsh plugin --profile web add @hyzyn/dsh-kit-settings # 设置里的「插件配置」入口
dsh plugin --profile web add @hyzyn/dsh-rss          # RSS「今日值得读」
dsh plugin --profile web add @hyzyn/dsh-search       # ⌘/Ctrl+K 全局搜索
dsh plugin --profile web add @hyzyn/dsh-codegraph    # 代码图谱卡片
dsh plugin --profile web add @hyzyn/dsh-tty          # 终端面板(PTY / SSH / SFTP)
dsh plugin --profile web add @hyzyn/dsh-docker       # Docker 容器面板

包名、一句话说明与各自的文档见上方 包索引。

装之前知道一件事:各包动到的面不一样(细节在各包 README;机制见 docs/architecture.md § 7):

装了它意味着
给模型注册工具,真正改变 agent 能力tty(tty_* / sftp_*——真实的 shell / SFTP 通道)· docker(docker_*)· codegraph(替宿主托管 codegraph MCP 行,于是 mcp__codegraph__* 进模型工具箱)
只往 systemPrompt 添一段rss(「今日值得读」那段)· search(插件能力公告);prompt 卡片做的本身就是编辑 systemPrompt
只动你自己的配置与界面env(保存即写进宿主的 process.env,环境变量仍是你自己的配置)· profile · kit-settings · mcp(它是配置入口——自己不加工具,你填进去的服务器会)

一次装齐就是聚合包,权限敞口是各包的并集——不知道要哪个就先别装它:

dsh plugin --profile web add @hyzyn/dsh-all              # 聚合安装包
dsh plugin --profile web add @hyzyn/dsh-plugin-kit       # 仓库根 bundle(同样挂载全家桶)

装完重启 dsh web,插件配置页里出现全部条目即生效;条目没出现多半就是没重启, 也可以用 dsh --profile web --dump-config 确认插件配置层已挂载。 卸载:dsh plugin --profile web remove @hyzyn/dsh-all(或对应子包名),再重启。

配置入口在哪一版:DSH ≥ 0.1.6-alpha.2 有两个入口,指向同一份配置——侧边栏 「插件」→ 选插件 → 该行的「配置」(官方新版两视图页面),以及设置 →「插件配置」 (与「通用设置」平级的一行,由 @hyzyn/dsh-kit-settings 提供)。 DSH ≤ 0.1.5 是设置 → 插件 →「插件配置」标签页里的卡片。 客户端半体同时注册三代插槽(plugins.row.config、settings.kit.item、settings.plugin.item), 一份产物在各代上都能用。 这份配置本身落在当前 profile 的插件 entry(cordis.patch.yml 用户层),不再是全局 settings.yaml section,见 术语表。

装不上 / 卡片不出现 / 插件整体消失 / 接口报 401、403 → docs/troubleshooting.md。

从 GitHub 仓库安装(开发调试)

仓库根目录本身也是一个 DSH bundle(package.json#dsh.bundle.patch,由 pnpm aggregate 生成):

git clone https://github.com/hyzyn/dsh-plugin-kit.git
cd dsh-plugin-kit
pnpm install
pnpm build

dsh plugin --profile web add link:$(pwd)   # 根包即 bundle,等价于安装 @hyzyn/dsh-all
dsh web

⚠️ 如果 web profile 里已经装过 @hyzyn/dsh-all 或任一 @hyzyn/dsh-<包名>, 不要再 add 根包(或 packages/all),否则插件行重复挂载会在启动时报 duplicate loader entry id。

只想用某个子包:最后一步改为 dsh plugin --profile web add link:$(pwd)/packages/<name>。

根包声明了 dsh 字段后,GitHub 的 DSH 插件市场会把本仓库识别为 DSH 插件(cordis-plugin)。

开发新插件

pnpm create-plugin <name> [id]
# 例:pnpm create-plugin timer          → packages/timer(@hyzyn/dsh-timer,插件 id: timer)
# 例:pnpm create-plugin pet-tracker pt → packages/pet-tracker(插件 id: pt)

脚本会复制 templates/hello 模板、替换包名与插件 id,并自动更新聚合包。然后编辑 packages/<name>/src/index.ts,构建后本地调试:

pnpm --filter @hyzyn/dsh-<name> build
dsh plugin --profile web add link:$(pwd)/packages/<name>

新包要建哪些文档、多长、编号怎么起,插件包的解剖(dsh.bundle.patch / cordis.patch.yml / src/index.ts / dsh.client),以及两条容易踩的硬规矩(客户端半体的地址来源、纯逻辑抽模块) → docs/conventions.md。

文档地图

想知道看
项目是什么、装哪个本文件
刚上手,想先建立全局(按顺序读)docs/architecture.md → docs/conventions.md → docs/agent-real-test.md
12 个包怎么协作、依赖方向、谁写哪个配置文件docs/architecture.md
命名 / 提交 / 文档分层 / 编号规范 / 插件解剖docs/conventions.md
术语(宿主半体、托管区块、TOFU、三代插槽…)docs/glossary.md
装不上、卡片不出现、插件整体消失、接口 401/403、已知限制docs/troubleshooting.md
真机测试怎么跑、什么算通过docs/agent-real-test.md
某个跨包方案的完整设计与验收(跳板机 / 就地提权 / i18n…)docs/ 下的 *-plan.md 与 i18n.md,由 conventions.md 的知识归属表 路由
Windows 11 真机环境搭建scripts/windows/README.md
开发环境里插件与宿主的 runtime 链接docs/link-dsh-runtime.md
跨包待办ROADMAP.md
发版流程(含 cohort 变更清单)RELEASING.md
某个包怎么用packages/<pkg>/README.md
某个编号是什么意思packages/<pkg>/DEFECTS.md

参与贡献

  • 新插件用脚手架生成:pnpm create-plugin <name> [id],避免手写样板。
  • 提 issue 走模板(Bug 报告 / 功能请求,空白 issue 已关闭):必填的环境 / 版本 / 复现步骤 / 自查结果对应 docs/troubleshooting.md 的 通用顺序,填全了才有人能在第一轮定位。格式约束见 docs/conventions.md § Issue。
  • 提交信息遵循 Conventional Commits(如 fix(mcp): 修复连接测试超时), 用户可见变更请附截图或验证证据。
  • 提交前过门禁:pnpm typecheck && pnpm build && pnpm test && pnpm aggregate; 增删插件后必须跑 pnpm aggregate 重新生成 packages/all 聚合清单。
  • 命名 / 编号 / 文档分层等完整规范见 docs/conventions.md。

许可证

本仓库以 Apache License 2.0 授权。

贡献者

喜欢这个项目?点个 Star。

报告 Bug · 请求功能 · 查看 Releases

Plugins associés