deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:wycto/dsh-dock
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DeepSeek Harness 功能坞插件:用一张管理面板,统一注册、开关所有小功能。
模型余额、用量记录、模型设置、图片理解代理……这些散落的小功能,全部收进一个「功能坞」: 每个功能是独立模块,有注册表、有开关、有错误隔离。新功能按模块追加,老功能互不牵连。

| 功能 | 说明 |
|---|---|
| 用量记录 | 记录全部 LLM API 调用:秒级时间筛选、Token/费用统计(可配置各模型单价、持久保存并按自填单价计费,支持多段分时价,内置峰谷计价 + 官网价目自动同步作兜底)、分组汇总、明细检索与 CSV 导出 |
| 模型设置 | 编辑各 Provider 模型目录:输入类型(文本/图片 + 标注)与思考强度档位;图片能力可由你手动声明,新增 Provider 自动刷新加载,写回官方配置热生效 |
| 模型余额 | 展示所有模型 Provider 账户余额(5 分钟自动刷新) |
| 任务动画 | 19 种任务运行动画(含星际远征、星云潮汐、曲速航道、量子雷达、星座网络、深海脉动、神经电路等),速度随任务活动联动,配置全部持久化 |
| 任务通知 | 任务完成 / 异常 / 需确认通知:页内卡片、6 种提示音、浏览器系统通知、钉钉/飞书群机器人推送(宿主直发,浏览器关着也能推);与动画互相独立、各自启停 |
| 运行状态 | 任务运行状态一览:进行中任务的阶段 / 耗时 / 回合 / 步骤 / 工具 / Token、等待确认提醒(等待的工具与说明)与最近完成记录(只读,与动画/通知共用同一份宿主侧追踪) |
| 趣味游戏 | 任务等待时消磨时间的十款小游戏(五子棋、中国象棋、俄罗斯方块、推箱子、贪吃蛇、打砖块、极速赛车、坦克大战、星际躲避、反应堆解谜);浮动窗口可拖动/缩放/最小化,不遮挡会话,靠屏幕侧边隐藏 |
| 图片理解代理 | 图片识别等(visionproxy);原图候选默认折叠展示,图片能力以你的声明为准 |
| 远程访问 | 账号密码登录的远程入口:网关监听 0.0.0.0 独立端口,手机/平板/局域网设备访问同一实例,会话与任务进度实时一致;主实例保持仅监听 127.0.0.1,结构上不存在绕开登录的直连路径 |
| 心跳监视 / 主题信息 | 示例功能(纯 Client) |
会话区随身小控件:启用后,在会话输入区工具行(模型选择器左侧)显示——
勾选「启用」即显示,点芯片跳转;每个功能可在面板页脚或设置页单独设置「会话页显示/隐藏」。
点击侧栏底部「功能坞」按钮,弹出功能面板:左侧导航 = 首页总揽 + 各功能模块,右侧内容区。

面板支持最大化 / 最小化 / 还原、标题栏拖动、右下角缩放。
dsh-dock 是 DeepSeek Harness(dsh)的插件,通过 dsh 插件命令安装:
# 安装 npm 版
dsh plugin --profile web add dsh-dock
# 或安装本地开发版(克隆仓库后)
dsh plugin --profile web add /path/to/dsh-dock
查看 / 卸载:
dsh web --dump-config # 查看合成配置(确认 dsh-dock 已加载)
dsh plugin --profile web remove dsh-dock # 卸载
也可以手动在 cordis.patch.yml 中声明插件后重启 dsh。
要求:DeepSeek Harness 环境(dsh),Node.js 18+。
npx @deepseek-ai/dsh web每个功能有独立开关,两个入口:
停用某功能后,其菜单项、首页卡片、会话区小控件一并隐藏。

启用「模型余额」「用量记录」后,会话输入区工具行(模型选择器左侧)会出现两个小芯片:
点击芯片直接跳转功能坞对应页(「会话用量」打开后即按当前会话筛选出结果,无需再点查询)。每个功能可在面板页脚或设置页单独设置「会话页显示 / 隐藏」。
用量记录

⟳ 加载中...(转圈 + 省略号一个个蹦出来),按钮转成「查询中…」(转圈 + 流光扫过,期间禁用不会重复提交),数据区顶部浮出「记账小队」banner(🧮📒🔍 轮流蹦跳 + ✦ 闪星 + 扫光进度条,每 1.3 秒换一句俏皮文案,等超过 5 秒会换成安抚语气),加载期间旧数据整体压暗且不可点;结果到位时闪一次「✓ 数据已更新」、KPI 卡错峰回弹


23~7)与半点边界(如 8.5 = 08:30)。保存后写入宿主配置持久保存,费用立即按自填单价重算(无需重扫历史);计价优先级:自定义单价 > 官网同步价 > 内置价 > 兜底价。明细表里走兜底价的金额会标「兜底」,方便你补配。模型余额

任务动画

任务通知(从「任务动画」拆出,独立菜单项与开关)

https://open.feishu.cn/open-apis/bot/v2/hook/…)保存,「发送测试消息」验证连通;可与钉钉同时开启运行状态(从「任务动画」拆出,独立菜单项与开关;只读)

模型设置

图片理解代理(visionproxy)
远程访问
主 DSH 默认只监听 127.0.0.1(官方 CLI 拒绝 --host 0.0.0.0,因为浏览器表层没有登录认证)。「远程访问」提供账号密码登录的网关作为唯一远程入口,主实例保持仅本机:
0.0.0.0 的独立端口(默认主端口+1,如 3080 → 3081,可改)。所有设备(电脑/手机/平板)访问 http://<电脑IP>:<网关端口>,未登录自动跳转登录页,登录后进入的是同一个 DSH 进程——历史会话、工作区(含浏览式选目录)、正在进行的任务进度、设置实时一致;登录会话 Cookie 7 天滑动过期,点「退出登录」随时注销。网关与主服务是同一台机器上的两个监听,不能共用一个端口。工作区目录选择钉为浏览器浏览模式(远程设备不能弹本机对话框);远程页面的兼容兜底(crypto.randomUUID)由网关注入。趣味游戏

心跳监视 / 主题信息
dsh web 加载(面板页会提示「宿主进程是旧版本」)。另注意通知与运行状态已各自独立成菜单项,需在功能坞里分别开启「任务通知」「运行状态」。[dsh-dock] host half loaded);旧宿主进程需重启 dsh web 加载新路由。preset "…" failed to mount:这是该 agent 预设与 dsh 版本
的 schema 漂移,不是本插件的问题。预设目录在 ~/.dsh/.agent-presets/<id>/,dsh 升级后预设里的
行可能不再合法(例如 @deepseek-ai/dsh-persona 在 0.1.5-rc.1 把 config.text 改为必填的
config.prefix + config.suffix),导致绑定了它的会话无法 resume。修法:把该预设与 dsh 自带的
standard 预设对齐(照抄新字段,保留自己的 persona 正文);细节见
docs/workflow.md §6「升级核对」。开发流程、提交/推送约定与发版流程见
docs/workflow.md(唯一真源); 配套 agent 预设为dsh-dock 插件开发。改动历史见docs/session-notes.md。
每个功能是一个 features/<id>/ 目录,由两部分组成:
features/<id>/
host.js # 宿主半部:注册 RPC 路由 / 定时任务(纯 ESM,零构建)
view.js(x) # 客户端视图:渲染面板内容(自带样式,CSS 类名带前缀隔离)
在视图模块导出功能描述符:
export const feature = {
id: "my-feature",
name: "我的功能",
order: 160, // 菜单排序(首页固定第一,数值越大越靠后)
accent: "#22c55e", // 品牌色
description: "…",
css: "…",
View: MyView, // 面板内容组件,收到 { ctx, feature, params }
HomeStat: MyStat, // 可选:首页总揽卡片统计
Chip: MyChip, // 可选:会话输入区小控件
Overlay: MyOverlay, // 可选:功能全局浮层(功能启用即常驻整页挂载,如任务动效/通知)
};
外壳只做组装:宿主半部在 index.js 注册,客户端在外壳 src/client.jsx 装配。
每个模块可整体拎出单独打包发布(scripts/extract-feature.mjs 生成独立包骨架,
独立包装回后经 dockBridge 注册回功能坞菜单)。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。