面向 DeepSeek Harness dsh 的页面能力套件插件:给 DSH…
36.4/100
综合分
5
GitHub 星标
38
npm 周下载
—/5
用户评分
数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-kitnpm 源 · dsh-kit 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-kit @ 0.2.1
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 07:33:11
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 33 处,展示前 33 条)
- 执行外部命令固定命令lib/index.js:158
execFile('dsh', dshArgs, { timeout: 180_000 }, (error, _stdout, stderr) => { - 发起网络请求lib/client.js:94
fetch("/dsh-kit/store").then((r) => r.json()).then((d) => setFeatures(d.features)).catch((e) => setErr(String(e && e.message || e))); - 发起网络请求lib/client.js:105
const res = await fetch(path, { - 发起网络请求lib/client.js:120
fetch(`/dsh-kit/store/ecosystem${force ? "?refresh=1" : ""}`).then((r) => r.json()).then((d) => { - 发起网络请求lib/client.js:396
fetch("/dsh-kit/archive/sessions").then((r) => r.json()).then((d) => setItems(d.items ?? [])).catch((e) => setErr(String(e && e.message || e))); - 执行外部命令固定命令bin/dsh-kit.mjs:60
const res = spawnSync('dsh', dshArgs, { stdio: 'inherit' }) - 读取本地文件lib/state.js:12
state = JSON.parse(readFileSync(file, 'utf8')); - 写入本地文件lib/state.js:25
mkdirSync(dirname(file), { recursive: true }); - 写入本地文件lib/state.js:26
writeFileSync(file, JSON.stringify(state, null, 2)); - 读取本地文件lib/preset.js:33
return REQUIRED_FILES.every((file) => existsSync(join(dir, file))); - 读取本地文件lib/preset.js:37
return existsSync(options.targetDir ?? presetTargetDir(options.home)); - 读取本地文件lib/preset.js:45
if (!existsSync(target)) - 删除本地文件递归lib/preset.js:47
rmSync(target, { recursive: true, force: true }); - 写入本地文件lib/preset.js:60
mkdirSync(parent, { recursive: true }); - 读取本地文件lib/preset.js:61
if (existsSync(target)) { - 删除本地文件递归lib/preset.js:69
rmSync(staging, { recursive: true, force: true }); - 写入本地文件lib/preset.js:75
renameSync(staging, target); - 删除本地文件递归lib/preset.js:78
rmSync(staging, { recursive: true, force: true }); - 读取本地文件lib/ecosystem.js:32
if (!existsSync(cacheFile())) - 读取本地文件lib/ecosystem.js:34
const parsed = JSON.parse(readFileSync(cacheFile(), 'utf8')); - 写入本地文件lib/ecosystem.js:45
writeFileSync(cacheFile(), JSON.stringify(cache), 'utf8'); - 发起网络请求lib/ecosystem.js:81
const res = await fetch(url, { headers }); - 发起网络请求lib/ecosystem.js:117
const res = await fetch(url, { headers: githubHeaders(token) }); - 读取本地文件lib/ecosystem.js:156
const parsed = JSON.parse(readFileSync(fileURLToPath(url), 'utf8')); - 读取密钥环境变量lib/ecosystem.js:165
const token = process.env.GITHUB_TOKEN ?? ''; - 读取本地文件lib/archive.js:26
return JSON.parse(readFileSync(workspaceFile(home), 'utf8')); - 写入本地文件lib/archive.js:34
mkdirSync(dirname(target), { recursive: true }); - 写入本地文件lib/archive.js:35
writeFileSync(target, JSON.stringify(state, null, 2) + '\n'); - 读取本地文件lib/archive.js:55
return readdirSync(path); - 读取本地文件lib/archive.js:63
return statSync(path).isDirectory(); - 读取本地文件lib/archive.js:94
mtimeMs = statSync(dir).mtimeMs; - 删除本地文件递归lib/archive.js:131
rmSync(dir, { recursive: true, force: true }); - 删除本地文件递归lib/archive.js:171
rmSync(dir, { recursive: true, force: true });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 终端停靠
- 文件树
- 源码管理
最近更新
在 GitHub 查看全部 →v0.5.8-alpha.22026-10-22预发布
· 新增
· 学习与复习:知识库页面可标「开始学习」,按间隔阶梯排复习;页条入口 + 学习记录浮层(进度、历史、调整下次 / 结束学习),知识集有学习总览。复习不是虚拟行——每个在学页在日程里有一条真实待办,勾完成即推进记录并提示下次日期(提示条上可「调整下次」或「结束学习」;结束 = 不再排新复习、记录保留、可重启)。
· 日程待办轨:周网格日期下面那条带子改成待办轨——一天一条(行首小方框直接勾完成,已完成沉到最下面),其余折成浅色 +N 点开当天全部待办;没有待办的日子悬停出「+ 待办」,新建时截止日已填那一天。
· 技能组合:一批池技能编成一个组合(清单存插件数据),组合卡片上整组挂载 / 整组卸载,只动本工作区两个项目根;一个技能只属于一个组合。
· 改进
· 日程待办范围档:近三日 / 近一周 / 全部 → 今日 / 近三日 / 全部(今日 = 当天,逾期仍无条件进前两档)。
· 技能面板简化:池组只列还没挂到本工作区的(已挂的那条在工作区组里,卸载入口只此一处);实体技能排在挂载链接前面;每行一枚「在应用里打开」(打开它自己那一份);「移动」改成贴右端弹出的浮层选目标,与「在应用里打开」同一套菜单;归属只在组合面板里改(选中已在别组的成员即换组);池里的 git 归技能自己(插件不建仓、不记基线、不写身份)。
· 知识库长文页尾留白:正文底部留出可滚空白,文末输入时光标不再贴着窗底。
· 日程睡眠段:独立计时段里名目为「睡眠」的那条只上网格(看一天怎么切),不计入总时长。
· 输出复读守卫整体退场:宿主熔断、客户端提示条与三个档位配置字段一起删掉。
· 修复
· 知识库面包屑:光标未落 / 滚动到别处时不再空白——跟随阅读位置。
· 触屏下公式输入框:点框内任意处光标就落在哪儿(原先整条全选,打字整条替换);鼠标仍是全选。
· 载体根的忽略判定:改按 git check-ignore --no-index 判,已进索引的路径不再被当成未忽略。
· 知识库页条排布:面包屑排到 @ 之前,右端固定簇。
· 验证
· 验证门全绿:build → typecheck → 渲染级检查(根 + 十个组件分册)→ 死代码哨兵 → 单测 → 冒烟。
· 开发测试环境实测:待办轨(勾选 / 空日子加待办 / 溢出清单)、范围档三档、技能面板(池过滤 / 每行打开入口 / 移动浮层 / 组合编辑器换组)、学习与复习全流程(勾完成 → 记录推进 → 提示条)。
· 复习待办与记录的同步层、睡眠段的计时口径都有单测覆盖。
v0.5.8-alpha.12026-10-16预发布
· 新增
· 技能池「在应用里打开」:池分组头一枚分体按钮(主键出当前应用图标、▾ 展开全部可用应用,与会话头部那枚共用同一份记忆),点它把池目录交给本机应用——历史、提交、回滚都在那儿做。官方启动器会让 Electron 系编辑器以 node 身份启动(窗口不出现、点了没反应),这几类应用改由插件自己启动,其余应用仍走官方路由。
· 选定载体根即一次处理到可挂载:点选挂载点当场写完忽略并 git rm -r --cached 移出索引(文件都保留),失败 = 这个根不落盘、不算选定;取消也什么都不做。没有独立的体检步骤,也没有半处理的根。
· 手机远程访问:本机隧道客户端归插件管:组件配置页填「远程隧道命令」,手机访问页「开启远程」按它启停;开启位与令牌同存,重启后按它恢复;远程链接只在隧道真在跑且探测可达时才出二维码;插件进程被强杀留下的孤儿进程按 pid 文件 + 程序名对账收掉。不依赖操作系统的开机任务。
· 知识集允许嵌套:每一层各挂各的清单,呈现按最近的一层走(与桌面端同口径)。
· 知识库页条 @:编辑时左侧栏收起也能把当前页(含编辑器选区)引用进对话,与树行 @ 同一条管线。
· 改进
· 技能行去掉「详情」展开:要看 SKILL.md 全文直接开文件。
· 池技能的版本记录交给本机应用:面板去掉历史 / 提交 / 回滚;仓库与基线仍由插件备好(每技能一仓、进池记一条基线)。
· 挂载关系上的技能不给移动:链接条目只给卸载;被别的工作区挂着的池技能要移出,先把各挂载方卸载。
· 页内源代码管理整体退场:更改清单 / 差异签 / 提交图谱 / 分支浮层与宿主 git 端点全删。
· 修复
· 表格格内的块级内容:粘贴或编辑时看着渲染出来了,重开只剩摊平的文字——现在改动那一刻就摊平成段落(内容不丢、marks 保留、块内换行补硬换行),首行恒为表头行。
· 「引用到对话」的取文本口径:改从编辑器状态取(DOM 文本在表格多格会多一倍空行,公式 / 图片 / 硬换行整块丢),并按 12 行 / 600 字截断标注。
· 验证
· 验证门全绿:build → typecheck → 渲染级检查(根 + 十个组件分册)→ 死代码哨兵 → 单测 → 冒烟。
· 开发测试环境实测:技能页行动作与去掉「详情」后的版面、知识库页条 @(无选区只出芯片 / 有选区带引用块)。
· 池目录「在应用里打开」的启动面有单测(真起进程 / 环境清洗 / 注册表取值),并在正式环境做过 A/B:官方路由失败,插件自启成功并真的打开了目录。
v0.5.72026-10-14
这一版把知识库补齐(知识集、测验、右栏首页),左栏底部整理成四个形态钮,双链选择框能直接连到某一节,编辑器与菜单的几处老毛病一并修掉;顺带把插件自己那套环境级 Esc 撤了,日常按键不再和宿主抢。
· 新增
· 知识库测验:页条「测验」钮(徽标=已掌握 / 题数)与树行 ⋯「测验」——知识集=递归范围、页面=单页,普通文件夹没有统计面。浮层里勾页面 / 掌握状态 / 题型 / 数量 → 逐题作答即时判题 → 小结;页面入口另有「编辑题目」(增删改全量写回,可保留掌握进度)。数据与桌面端共用同一份 .quiz。
· 知识集(目录挂载库内资料):目录行 ⋯「设为知识集」/「添加资料…」,清单存目录体内的 .refs.json;展开先出「资料 (N)」子行,树顶「资料」段跟随当前打开的笔记,资料行 ⋯ 可重命名 / 移除 / 删除。资料导入按内容去重、库根 library/ 不存在时按需建;资料库收成一个扁平池,侧栏按上下文显示。
· 知识库右栏首页签:知识集段(前几条 +「全部」视图,含资料与题目汇总)与最近更新;工具条 ⌂ 进入。
· 左栏底部一排四个形态钮:会话列表 / 文件树 / 源代码管理 / 知识库 · 日程,点哪个,侧栏那一格就换成哪个,四者互斥。文件树与源代码管理从输入行搬到这里,输入行只剩「终端」——手机上没有键盘时这几个入口也够得着。
· 双链选择框一次搜出页面与全库标题:搜索词同时命中页面名与各页正文标题,标题行(§ 前缀)插入 [[页#标题]] 直连那一节;同一页的「某一节」排在该页整页命中之前。查询串里 | 之后写别名(如 要点 |看这)——别名不参与搜索、随链接插入,编辑器里显示别名、悬停可见完整写法;空目标的 [[#小节]] 点击在本页滚到该标题。
· 知识库联动对话:泡泡菜单新增「引用到对话」(选中文字点末尾的 ❞,把当前页与选区一起引用进对话输入框,成功即收泡泡);知识集资料行补 @,与页行同形(悬挂条目没有真实路径,只给 ⋯ 菜单)。
· 树头与图标:树头平铺「添加资料」与「导入」(单项的树头 ⋯ 菜单退役)、补「← 上一级 / ↑ 回库根」;知识集与资料各有一枚自绘图标(书本 / 文档堆),与目录、文件同一套描边风格。
· 代码盒语法高亮配色(深浅两套)。
· 改进
· 表格多格选中看得见了:拖选或 Shift+↓ 跨多格时,选中的格子有底色与描边——此前这套选中状态没有任何样式,多选等于看不见。
· 两个菜单按实测尺寸落位:斜杠菜单下方放得下就贴光标下沿、放不下翻到光标行上方 6px、上下都不够就收到可用高度内自己滚;泡泡菜单横向按实测宽度居中并钳进可视视口,窄屏上比屏幕还宽时封顶到视口宽并把表格条折行,按钮一个不少。菜单按可视视口避让——手机键盘弹起时缩的是它(innerHeight 不缩),不会再被键盘盖住。
· 与桌面端共用同一份数据的口径对齐:测验 id 只降 ASCII 大写、解析与序列化按 Unicode White_Space 裁空白;知识集挂载清单清洗、资料改名自动加序号——两端读写同一份 .quiz / .refs.json 不会互相改写。
· Esc 收口:撤掉插件自己的环境级 Esc——按 Esc 不再顺手关掉知识库 / 文件页签、收起侧栏视图或终端坞(终端里也不再边发 ESC 边收坞),Esc 交回宿主自身的关手势与「连按两次停止回复」。浮层自己开着时的 Esc 照旧:菜单、对话框、搜索浮层、测验浮层各自关掉那一层,行内改名 / 新建输入仍是 Esc 取消。
· 修复
· 手机(旧内核浏览器)开不了官方 PDF 预览:网关补 Map 的 upsert 兜底并前置进 pdf.js 的 Worker Blob,自带阅读器的 Worker 同步改走 Blob。
· 表格下的代码盒删空后写不进字、删不掉:浏览器把删空的代码块里 摘掉并补
,编辑器把这条结构变化当成控件改动吞掉、文档停在旧内容;正文改块级排版并收窄控件判据后恢复,重开不再回到旧内容。节点视图另放行了正文编辑——打字 / 退格进文档,退格不再整块消失。
· 点斜杠命令后双链选择框 / 公式输入框打不了字:命令落地后的还焦点被排到下一帧,刚好抢走弹层输入框刚拿到的焦点;改为同步还焦点。
· 选区贴着行尾时泡泡菜单大幅偏移:选区框改按 DOM 选区的逐行矩形并集计算,不再拿邻行坐标拼出假选区。
· 斜杠菜单不再到处都开:只在键入 / 时唤出——挪光标到已有 /xxx、粘贴不开,URL / 路径里的那颗 / 也不当入口。
· 窄面板下树行图标被长名字挤扁。
· 内置浏览器不再做分区闲置回收(切回对话页还在,与原生机对齐);页已不存在或没有页号的签静默收掉,不弹提示。
· 源代码管理图谱在空仓库里不再报加载失败
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。
README
由 DeepSeek 最新模型翻译生成dsh-kit
面向 DeepSeek Harness (dsh) 的页面能力套件插件:给 DSH 的浏览器界面加装可选能力,每个能力独立、互不依赖;全部关闭时 DSH 保持原版。
功能
工作台住在官方右侧边栏(官方 sidebar.right 服务),形态与官方一致:一个内容一张签——一个 diff、一个知识库页、一个浏览器页各占一张 dock 签,切换器就是官方签条(日程仍是单张功能签)。每个能力都是插件页里可单独开关的组件行——行关掉 = 该能力的端点、智能体工具与界面入口一起退场,全部关掉即 DSH 原版形态;插件页里本插件十行组件 + 列表最末一行载体行(载体行不伺服任何能力,只是浏览器半边的挂载点——宿主把包的客户端半边挂在「行名 = 包名」的那一行上,删掉它页面能力会整片消失,所以它排在功能行之后留在列表里,别关)。工作区文件的查看走官方文件预览(kit 在其头部补一枚「下载到本机」);工作区文件不做插件内编辑——编辑走 VS Code 或让智能体改。
索引类视图(文件树、知识库 · 日程)共用左侧边栏一格——左下角一行三枚形态钮(会话列表 / 文件树 / 知识库 · 日程)切这一格显示哪个形态,对话列常驻。
展开完整文档(README 剩余 1 节)
dsh-kit 面向 DeepSeek Harness (dsh) 的页面能力套件插件:给 DSH 的浏览器界面加装可选能力,每个能力独立、互不依赖;全部关闭时 DSH 保持原版。 功能 工作台住在官方右侧边栏(官方 sidebar.right 服务),形态与官方一致:一个内容一张签——一个 diff、一个知识库页、一个浏览器页各占一张 dock 签,切换器就是官方签条(日程仍是单张功能签)。每个能力都是插件页里可单独开关的组件行——行关掉 = 该能力的端点、智能体工具与界面入口一起退场,全部关掉即 DSH 原版形态;插件页里本插件十行组件 + 列表最末一行载体行(载体行不伺服任何能力,只是浏览器半边的挂载点——宿主把包的客户端半边挂在「行名 = 包名」的那一行上,删掉它页面能力会整片消失,所以它排在功能行之后留在列表里,别关)。工作区文件的查看走官方文件预览(kit 在其头部补一枚「下载到本机」);工作区文件不做插件内编辑——编辑走 VS Code 或让智能体改。 索引类视图(文件树、知识库 · 日程)共用左侧边栏一格——左下角一行三枚形态钮(会话列表 / 文件树 / 知识库 · 日程)切这一格显示哪个形态,对话列常驻。 - 终端(工具行开关 / 默认 Ctrl+Alt+\):底部多标签终端坞,绑定开启时所在会话(宽度跟随对话列),隐藏时后台 shell 继续运行;引擎为官方 webTerminals 服务(PTY 归宿主:系统用户权限、刷新页面进程不断、shell 选择) - 文件树(左下角形态钮 / 默认 Ctrl+Alt+,):以会话工作区为根浏览、新建/重命名/删除(回收站)/复制路径 / @ 到对话;点文件交官方右栏文件预览打开,库内的 md 页则直达知识库编辑签(所见即所得) - 知识库 · 日程(一个组件行;行开关 = 总开关,关掉即目录索引、两张 dock 签、左下角形态钮与快捷键命令一起退场) - 知识库(左下角形态钮 / 默认 Ctrl+Alt+/):默认地址开箱即用(数据目录下 dsh-kit\vault,可在本行配置页改绝对路径)——左栏一行式搜索 + 目录树选页,右栏「知识库」签里每页一个文档签(可多开、✕ 单关),[[双链]] 页内跳转([[页#标题]] 落到对应小节)+ 阅读条「目录/反链」;搜索一次搜两侧(笔记全文 + 笔记目录 + 库根 library/ 资料库里的文件按名字匹配),资料库文件点开走官方右栏文件签(PDF 默认也不在面板里渲染,见本行的「库内 PDF 阅读器」开关);知识集=任意笔记目录挂载库内资料(目录行 ⋯「设为知识集」/「添加资料…」,清单存目录体内的 .refs.json),展开先出 「资料 (N)」子行;树顶「资料」段与树头「添加资料」同一归属——只看当前树根(树根自己是 知识集就算它,否则往上找最近的;回库根则整段不出现);笔记目录行 Ctrl+点击(或搜索结果点目录)把树根换到该目录、树头 ← 回库根(只影响显示,不动设置); 目录树本身就是文件管理器:树头三枚平铺(+ 新建 /「添加资料」——树根属于知识集时出现 / ⤓ 导入),目录行的 + 新建页面或目录(\ 开头建目录,可含 / 多级),行 ⋯ 里重命名(页改名会按双链解析改写全库引用并回执页数)、移动到…(撞名可选跳过/覆盖/自动加序号)、导入(浏览器选文件上传,或粘贴本机绝对路径直拷——md 页连带把页内引用的本地图片收进 attachments/ 并改写引用,源目录之外的引用不收、原样留着)、复制绝对路径、删除(Windows 进回收站);资料经知识集的「添加资料…」导入(任意格式文献按内容哈希落库去重,撞名自动加序号,资料行 ⋯ 可重命名/移除/删除);页签(一页一张右栏签)随改名/移动/删除同步换地址或关闭;与对话互通——聊天里的 vault 路径点击直达、树上「@」把页面/选区插进输入框(选区过长只带前 12 行 / 600 字并标「…(已截断)」,整页由引用芯片指向); 页面本体是所见即所得编辑器(TipTap 富文本,无源码/预览两态):/ 唤出两级命令菜单(标题与正文 / 特殊块 / 列表 / 数学公式与代码 / 图表 / 附件),选中文字浮出行内格式条(含色板与链接),选区落在表内再浮出表格条(行列增删 / 左中右对齐 / 表头列 / 删表);菜单里双链弹选择框(页面与全库标题一次搜出,标题行直插 [[页#标题]],| 后写别名)、表格弹行列对话框(默认 3×3 带表头)——格内只留文字(粘进来的标题/引用/列表/嵌套表格当场摊平成文字,行首永远是表头行;md 管道表存得下什么就显示什么)、流程图插 mermaid 围栏(自带渲染器,点开改源码)、图片走系统文件选择器;粘贴截图与选图同样自动压缩后按内容寻址进 attachments/ 并插入;Tab 在列表里升降级(表格跳格、代码块插两空格,其余吃掉不把焦点带出编辑器),Ctrl+Enter 从引用块跳到块外正文;页内相对链接指向库内 md 按页打开、指向文献/图片交给官方文件右栏;页条给撤销/重做、未保存脏点与 sticky 阅读条「目录/反链」;保存 2s 防抖自动落盘(Ctrl+S 立即存、切签/卸载保底),同一页的多次保存串行排队(并发写会撞同一版 mtime,报出自己造成的假冲突),走 mtime CAS——盘上被智能体或外部编辑器改过就暂停自动保存并出冲突条,由人裁决「用我的覆盖盘上 / 读盘上的」(插件不静默覆盖、也不碰 git);盘上无本地改动时的外部修改仍自动静默重读;插件不建骨架目录、不碰 git - 库内 PDF 阅读器(本组件行配置页的开关,默认关):打开后资料库里的 PDF 开成知识库页签而不是官方文件签——自带页码框跳转、记住上次读到哪一页(刷新、切会话、关掉再开都还在),且不受官方文件预览的整文件字节上限约束。只有适宽一档:页宽跟着右栏宽度走(拖分栏等于换字号),不做缩放档;拖分栏时页码不动、光标停住的那一页也不动,页间距与页面边缘都留白不带框。文字可选中复制 - 对照阅读:页内双链 / 反链 / 相对链接点开优先开在右栏的另一格,出发那页原地不动——拿两格对着读同一篇文献;树上单击与搜索命中仍在当前格打开 - 首页(右栏第三张签,面板工具条 ⌂ 进入):知识集段(前 8 条:书图标 + 名字 + 「资料 N · 题目 已掌握/总」+ 在学 / 今日数 + 行内「学习计划」(开这一集的学习总览)与「测验」两键;超过 8 条给「全部知识集 ›」的签内全量视图)与最近更新段(全库按 mtime 倒序前 8,右端标所属目录)。点知识集行 = 左栏树换根到它(左栏没在知识库形态时也给个提示),点页行 = 开页 - 测验(数据与桌面端同一份 .quiz):页条「测验」钮(徽标=已掌握 / 题数)与树行 ⋯ 「测验」(页 = 单页,知识集行 = 递归范围,普通文件夹不给入口);浮层里勾页面 / 掌握状态 / 题型 / 数量 → 逐题作答即时判题 → 小结,页面入口另有「编辑题目」(增删改全量写回,可保留掌握进度)。掌握度按连续答对 ≥ 阈值记,阈值存库根 .quiz-state/settings.json(面板可改) - 学习 / 复习(数据与桌面端同一份 .study,一页一条记录):页条右端固定簇(左→右) @ · 学习 · 测验 · 反链 · 目录;「学习」钮按状态变成「复习 · 今天 / N 天后 / 逾期 N 天」或「已完成」——首次学习排明天第一次复习;学习记录浮层给当前状态、下次日期、所属知识集与历史,动作是「调整下次 / 提前复习 / 完成 / 重启 / 移出学习」(间隔档位 1/2/4/7/15/30/60/120 天,单次可自定义 1–3650 天)。 学习记录与测验是两份独立数据:掌握度不决定复习日,复习次数也不改测验进度 - 日程(与知识库共用左下角那一枚形态钮和快捷键 Ctrl+Alt+/,开的是左侧边栏那一格,顶部 tab 条切 知识库 / 日程):待办清单占左栏那一格(今日/近三日/全部范围档),周网格在右栏「日程」签里;表头的统计跟着周导航走(翻到哪一周报哪一周),拉取失败会挂提示而不是继续显示旧数;表头下的全天带放「只到日的待办」,做成一条待办轨:每天只列一条(未完成优先、已完成沉底),行首小方框直接勾完成(复习待办勾了照旧推进复习记录);其余折成一行浅色的「+N」,点开当天全部待办(清单里同样能勾、点条目开条目浮层);没有待办的日子悬停出「+ 待办」,点了给那天新建;跨周的堆在周一列并在提示里写明原截止日。 块颜色只表达状态(未到橙/进行中绿/已过蓝/逾期红);面板里就能改:清单行可勾完成、点标题改条目(含重复规则与地点/备注),网格块点开即改(事件块改条目、计时段块改那一段),顶部「新建」建待办或日程。带 studyRel 的条目是复习待办(学习页在日程里的真实待办):标题下第二行给父目录,行尾有「打开页面」,勾选即完成本次复习(推进记录、建下一条待办并归档旧条,归档条截止改到实际完成日);完成提示里带「调整下次」「结束学习」两个快捷动作——结束学习 = 不再安排复习,记录保留、可重启;新排的那条待办直接删掉,不会记成又完成一次。点标题开只读视图——改日期或类型会让记录与待办各存一套真源;启动时自动补齐在学页的复习待办。 计时是全局一只表:侧栏日程 tab 顶部「开始计时」可挂一条未完成待办或填标题起独立计时,右下角悬浮球走秒、展开后停表(面板全关也在);停了的那段上网格、进统计。 agent 侧没有日程工具:编辑走技能池的技能,按同一份结构直接读写 $DSH_HOME/dsh-kit/schedule/(一条一文件:events/ + entries/ + timer.json),与面板写同一处——别处写进来的条目与计时一样进面板,两边都不覆盖对方的改动 - 对话小窗(本组件行开关 = 总开关):屏幕边缘常驻一枚把手,可贴左或贴右、纵向停在哪都行(拖到哪边就贴哪边,刷新后还在原处),点开是一扇浮窗对话——内核是官方对话工厂的 embedded 变体(消息流、工具调用、附件都走官方),小窗自己保留一条会话,与主面各看各的(两边永不同一条:宿主一条会话只有一个输入框,同一条会互相抢);标题条的 ⇄ 把两边互换——主面接手小窗这条、小窗接手主面那条。快捷键 Ctrl+Alt+; 开关小窗(收起态按它展开,展开时按它收起)。本行配置页两个开关:记不记住浮窗的位置与尺寸、记不记住上次用的工作区与会话 - 内置浏览器(右栏签,一个页一张签、签名即页标题,切换器就是官方签条;本组件行开关 = 总开关,关掉即工具与面板整体退场、只剩官方浏览器入口):agent 以 7 个 browser_ 工具驱动系统 Edge (vendored playwright-core,专用持久 profile)——快照→动作→断言的 GUI 测试循环、截图(多模态模型直看,否则落盘);面板显示 agent 浏览器的实时画面(画面按面板尺寸取像素密度,帧率封顶 30fps,拖动面板即时跟上),点击/滚轮/键入直接作用于这一签对应的页面(人机共驾);工具栏「+」新开一页即新开一张签,关签即关页;agent 每次导航自动把那一页的签拽到眼前 - 技能管理(设置面板新页):工作区/用户级/技能池三组展示,支持移动、删除、禁用/启用;被同名技能覆盖者打虚线徽标;技能只有移动、没有复制(副本与本体分叉),且挂了钩的就不给移动——挂载点要动先卸载,池里被工作区挂着的要移出先让各挂载方卸载;技能池里的技能可挂载到工作区共用(池那一份是本体,平铺 .md 搬进池会包成同名目录;池组只列还没挂到本工作区的,已挂的那条在「工作区」组里、行上给「卸载」;实体技能排在上面、挂载链接排在下面;池技能可编成组合(如 word/excel/ppt 编成「办公」,清单存插件数据)整组挂载/卸载——批量按钮按状态翻转(挂满只有「卸载全部」,没挂满只有「挂载全部」并只补齐缺的那些),一个技能只属于一个组合——归属只在「技能组合」里改:编辑器里点选成员,选中已在别组的即从原组摘出来;组合行还标「已挂载 x/y」(被单独卸载一个也看得出来));技能自带的仓库与历史归技能自己(插件不动池里的 git),每个技能行一枚「在应用里打开」把这一份交给本机应用——看历史、写提交、回滚都在那儿做 - 手机访问(设置面板新页;本组件行开关 = 总开关,关掉即网关与页面整体退场):手机扫码连上本机 dsh web——令牌鉴权网关(端口可改),默认每次启动关闭;局域网与远程双通道,HTTP/WS 全量透传;远程视图下把只能在电脑上生效的入口(在应用中打开、添加工作区、打开配置文件)置灰并提示「请在电脑端操作」 - 网页搜索(自 dsh-free-search 并入;本组件行开关 = 总开关,关掉即回官方搜索):免 key 引擎链替换付费的 deepseek-official——专用引擎(GitHub / arXiv / StackExchange / HN,按查询特征参与)优先,其后通用引擎 Tavily(免 key)→ Bing → Sogou 逐个故障转移;本行配置页只有「搜索结果条数」 - 会话通知(默认开,一个开关管全部提醒):回合收尾、上下文压缩完成、或智能体提问 / 等你批准工具调用 / 提交计划待批时弹桌面通知(浏览器 Notification API,点击通知回到对应会话)——页面切到后台标签/别的窗口、或事件发生在你没打开的那个会话时提醒;人正看着该会话时不打扰。 回合收尾按官方 turn/end 的结束原因分成完成 / 出错 / 已中止 / 卡住 / 撞上输出上限五种文案,不再一律报「完成」;压缩通知覆盖打开过的会话(官方只为当前会话拉历史,没打开过的会话看不到它的压缩)。通知走浏览器 Notification API,未授权就不出通知(需在站点设置里允许) - 余额与用量(默认开,可在本组件行的配置页关):composer 下方状态带最右端显示一张芯片,跟随当前会话选中的模型服务商——DeepSeek 出余额,OpenCode Go 出全部窗口用量(1% · 32% · 84%,顺序为 5 小时/周/月),超 80% / 欠费变红;DeepSeek 芯片在高峰时段(工作日 9:00–12:00、14:00–18:00)显示红色「峰」标提示限流风险,周六日全天、调休上班的周末与法定节假日全天(官方按空闲时段计费)不标;点芯片在正上方弹出官方风格浮层看明细(各窗口进度、重置倒计时)并附官方用量页链接。 回合收尾即刷新,另每分钟轮询 + 手动刷新。 API key 复用 dsh 模型配置里的凭证引用(llm-pi-ai providers),插件不做任何 key 录入;OpenCode Go 的用量端点为非官方契约,上游改动只影响该芯片 - 快捷键:四条命令(终端 / 文件树 / 知识库 · 日程 / 对话小窗)注册进宿主「快捷键」页 (Ctrl+/)——按下即录制、冲突标红、跨设备默认值、持久化都归宿主;左右栏开合用宿主自带键(web 左栏 Ctrl+Alt+B、右栏 Ctrl+Shift+B)。改键去官方页,插件配置页不管键位。 插件里悬停提示统一是官方气泡 (方向按官方口径:面板头/工具条朝下、底部 dock 与输入行朝上、行尾动作钮右对齐;有命令的带当前键位,改键后跟着变),纯文本截断提示仍走原生 title - 排查日志(无开关,始终在写):宿主半边与浏览器半边的日志合流到 <DSH_HOME>/dsh-kit/logs/kit.log(按 2MB × 5 轮转),一行一事——时间、级别、组件、 正在做的操作、消息与字段;报错那行自己就带着它发生在哪个操作里,它前面那几行就是出错前在做什么。浏览器侧的未捕获异常与接口报错也进同一个文件(页面白屏、按钮没反应这类只在页面侧的现象也留得下痕)。默认级别 info,环境变量 DSH_KIT_LOG 可调(off/error/warn/info/debug);查日志用仓库里的 pnpm logs(--err 只看失败并带上文)。 - 配置:插件页(侧栏「插件」)里需要可调参数的组件行各带自己的「配置」页—— 手机访问行管对外端口、手机远程域名与网关常驻(行开关 = 总开关); 知识库 · 日程行管知识库根目录与「库内 PDF 走自带阅读器」(行开关 = 总开关); 对话小窗行管记不记住浮窗位置尺寸、记不记住上次的工作区与会话; 网页搜索行只有搜索结果条数(行开关 = 总开关,关掉即回官方搜索); 内置浏览器行管「对话链接改投内置浏览器」与「隐藏官方『浏览器』入口」(行开关 = 总开关); 用量与监视行管余额与用量芯片开关、桌面通知与 OpenCode Go 会话头注入;文件树行 管文件树开关与「隐藏官方『工作区文件』入口」;终端与技能两行没有配置字段(行开关 = 唯一开关,关掉即入口消失),运行日志行同样没有配置字段(写不写日志文件就是它的行开关,级别仍走 DSH_KIT_LOG 环境变量);载体行没有配置字段也不该被关(关掉 = 本插件界面整体消失);保存即写入 profile 并热生效(部分启动期门控在重启 dsh 后生效) 安装与更新 安装最新 release(推荐): dsh plugin --profile web add "github:zhouzhencheng07/dsh-kit#semver:" 或跟踪 main 分支最新提交: dsh plugin --profile web add "github:zhouzhencheng07/dsh-kit" 更新到最新版: dsh plugin --profile web update dsh-kit 本包声明了 dsh.bundle.patch,会被激活为 profile 的 bundle 层。安装/更新后重启 dsh web:输入行工具行只剩终端一枚开关,左侧边栏左下角出现四枚形态钮(会话列表 / 文件树 / 知识库 · 日程),工作台以官方右侧边栏承载(文件 / 知识库 / 日程 / 浏览器四类 dock 签),AI 的 web_search 同时切到免费多源搜索。 宿主版本要求:dsh ≥ 0.2.0-rc.2(组件行与插件页行配置、官方 shortcuts 服务、官方 webTerminals 都在这一版;桌面版同版本可用,面板实时画面走宿主注入的 WS 基址)。 工作原理 - src/.ts → dist/(tsc 构建产物入库):宿主半边——文件树(/tree、/read、/raw、/fs/op、/upload)、技能池、知识库(/vault/)、日程(/schedule/)、浏览器等端点各归组件;/vendor/ 静态资源也按用它的组件行走(xterm → 终端行,二维码 → 手机访问行,TipTap / KaTeX / mermaid / pdf.js → 知识库行) - client/bundle.js:浏览器半边(手写 ModuleLoader bundle,零构建)——根包只剩跨槽共享底座(kitUi 开合状态、配置页骨架、入口座、文件预览下载钮);文件树、终端、技能、用量监视、网页搜索、内置浏览器、知识库·日程、手机访问、对话小窗、运行日志十个组件的 client 半边同住本 bundle(各带 module/exports 隔离壳,右栏 pane 正文经 sidebar.right.pane.tab 提供、配置页经 plugins.row.config;终端坞引擎为官方 webTerminals 服务) - src/core、src/files、src/chat、src/skills、src/terminal、src/monitor、src/browser、src/vault、src/phone:组件按目录分边界(0.5.3 单包组件化,组件 = patch 行而非独立包)——core 宿主共享库(同源校验、回收站删除、文本解码、dsh-tools 加载、日志);files 挂 tree/read/raw/fs-op 端点 + 文件树面板;chat 只挂 /dsh-kit-chat/config 探针(对话内核与外壳都在 client 半边,会话/工作区全走官方服务);skills 挂 /dsh-kit/skills 与 /dsh-kit/skills/op + /dsh-kit-skills/config 探针(技能池管理页);terminal 挂 /dsh-kit-terminal/config 探针(终端入口与坞);monitor 挂 /dsh-kit/usage + 用量芯片 / 会话通知 + OpenCode Go 会话头按会话注入(配置页「模型请求」页签可关);browser 挂 7 个 browser_ 工具 + /dsh-kit/browser(面板 WS)、/dsh-kit/browser/open 与 /dsh-kit-browser/config 探针(右栏浏览器签、人机共驾、链接改投);vault 挂 /dsh-kit/vault/(索引 / 搜索 / 单页 mtime / 目录级文件管理 / 正文写回 mtime CAS / 粘贴图片入库 / /dsh-kit/vault/file 库内 PDF 字节通道)、/dsh-kit/schedule/(数据、统计与面板写路径)与 /dsh-kit-vault/config 探针(知识库·日程行;日程编辑走技能池的 schedule-editing 技能);phone 挂 /dsh-kit/phone/(状态 / 链接 / 轮换 / 启停)与 /dsh-kit-phone/config 探针,并起对外网关(手机访问行)。行经根包 exports 子路径(dsh-kit/files 等)由 cordis.patch.yml 物化 - client/vendor/:xterm / TipTap 富文本 / KaTeX / mermaid / qrcode / pdf.js,全部按需懒加载,由 /dsh-kit/vendor/ 静态伺服(mermaid 只在页内出现流程图时下载,pdf.js 只在打开库内 PDF 时下载,宿主与 app.asar 都不带这两个库),路由按用它的组件行注册:关掉某一行 = 它那份静态资源一起没有 - src/search/:网页搜索组件——web-search.ts 把 web seam 的 provider 指向 free-search 并注册免 key 引擎链(engine-chain.ts + engines/);组件行关掉 = 不接管 seam = base 钉的官方搜索原样生效 - cordis.patch.yml:十个组件行(files / chat / vault / terminal / browser / skills / phone / monitor / search / logs,行序即插件页显示顺序)insert 进 bundle 层(组件 = 本包的 exports 子路径,见 dsh-kit/terminal 等),末尾跟一行载体行(name: dsh-kit,浏览器半边的挂载点,不伺服任何能力,故排在功能行之后);不 patch 任何官方行(每行 id 显式且稳定:匿名行的随机 id 每次 profile 写入都会换 → 该行重挂 → 浏览器半边整包重载) - 宿主侧 node-pty/ws/@deepseek-ai/ 不声明依赖:运行时从 profile fallback node_modules 解析(声明了 pnpm 会装出第二份实例) 环境要求 - dsh ≥ 0.2.0-rc.2 - Node.js ≥ 22(dsh 自身要求) - 零 dependencies 声明;宿主半边 TS 源码 + 预构建 dist,浏览器半边零构建 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
zhouzhencheng07/dsh-kit
面向 DeepSeek Harness dsh 的页面能力套件插件:给 DSH…
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目