dsh-island
Verifieddsh-island · v0.6.0 · MIT · Web UI
DeepSeek Harness 桌面灵动岛插件:实时任务状态、上下文占用、在灵动岛批准权限与回答提问、用量与费用统计(社区插件)
Install
dsh plugin add dsh-island Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
DeepSeek Island · 桌面灵动岛
DeepSeek Harness 的桌面灵动岛插件:像 iPhone 灵动岛一样停在屏幕边缘,实时显示 Agent 在做什么——思考、回答、执行工具、等你确认;展开后是任务控制台,可以看计划进度、上下文占用和用量、停止任务,直接批准权限请求、回答 Agent 的提问,任务完成时预览回复;另有按时间、模型、会话、轮次统计的用量窗口,并按 DeepSeek 官方价格估算费用。
社区插件,非 DeepSeek 官方产品。DeepSeek 名称与鲸鱼标志归其所有者。

| 任务控制台 | 在灵动岛回答提问 |
|---|---|
![]() |
![]() |
| 批准权限请求 | 有新回复 |
|---|---|
![]() |
![]() |


安装
需要 DeepSeek Harness 桌面版 0.2.1-rc.3(Windows)。
- 在 Harness 里安装:侧栏「插件」→「添加插件」,输入
dsh-island,安装后启用。 - 命令行:先从托盘退出 Harness,再运行
dsh plugin --profile desktop add dsh-island。 - 从源码:克隆本仓库,双击 安装到 Harness.cmd。
装好后,位置、大小等选项在 Harness 的「设置 › 灵动岛」中调整。
形态
| 形态 | 尺寸(适中) | 何时出现 |
|---|---|---|
| 待机 | 118 × 32 | 没有任务:只有鲸鱼和一颗呼吸的蓝点 |
| 紧凑 | 212 × 36 | 任务进行中:鲸鱼 · 状态文字 · 动态指示器,多任务时显示数量 |
| 弹出 | 312 × 66 | 新任务开始、等待确认、完成、异常时自动弹出几秒,显示任务标题;完成时显示回复开头 |
| 展开 | 344 × 自适应 | 鼠标停留约 0.7 秒或单击:任务控制台 |
| 竖向 | 32 × 78 / 36 × 104 | 停靠在左侧或右侧居中时变为竖条,悬停或提醒时横向舒展 |
尺寸、圆角、鲸鱼和指示器的位置都随形态一起用带轻微回弹的弹簧曲线过渡;状态切换时文字和图标做模糊交叉淡入。
任务进行中,鲸鱼外圈是上下文占用环:按当前上下文占模型窗口的比例描边,70% 以下绿色,70% 起黄色,90% 起红色并轻轻呼吸,提示快要整理上下文了。
使用
- 鼠标在灵动岛上停留片刻即展开任务控制台,移开后自动收起;悬停展开后再单击可固定,不随鼠标离开收起。可在设置中关闭悬停展开。
- 单击胶囊展开或收起,按 Esc 或点击灵动岛以外的任何地方收起;单击展开的面板在鼠标离开 6 秒后也会自动收起。提问卡里没提交的草稿会保留,重新展开可以接着答。
- “打开 Harness”回到主窗口;面板底部的柱状图按钮或托盘菜单「用量统计」打开用量窗口。
- “隐藏”只隐藏灵动岛,点系统托盘的蓝色鲸鱼可重新显示;右键托盘可选显示器或退出。
- 透明区域不拦截鼠标;窗口置顶但出现时不抢输入焦点。
任务控制台(展开面板)
| 什么时候 | 显示什么 |
|---|---|
| 有任务进行中 | 任务标题与计时;Agent 计划的进度条(如 4/7)和当前步骤;最近几步工具(读取文件、编辑、终端…);模型、上下文占用(如 412K / 1.0M (39%))、缓存命中率、工具次数、输出 tokens;其他同时进行的任务;停止任务按钮 |
| 刚结束 | 有新回复:Agent 最后一条回复的开头(点击回到 Harness 看全文);结果、最终计划进度、本次用量 |
| 空闲 | 今天完成的任务数、工作时长、DeepSeek 账户余额(未登录账号时显示今日 tokens);过去 24 小时每小时的 token 柱状图、缓存命中率和今日估算费用;最近几个任务(结果、时长、多久以前) |
停止任务要点两次(第一次变红确认),效果与 Harness 里的停止按钮相同,只对顶层任务生效;子智能体不会单独列为任务,除非它在等你确认或出错。用量数据来自 Harness 自己的会话记录(ctx.sessionQuery):启用后在后台补算最近 30 天的会话,之后跟随实时事件更新,汇总保存在 %USERPROFILE%\.dsh\dsh-island\usage.json,只含会话标题、每轮的模型、时间、结果、调用与工具次数、token 数和估算费用,保留 35 天,不含对话内容。
账户余额通过 Harness 自己的账户服务读取(与「设置 › 账户」相同),只在用 DeepSeek 账号登录时可用;灵动岛看不到任何令牌或 API Key。打开面板时最多每分钟刷新一次,另外每 10 分钟刷新一次。
在灵动岛给 Agent 发消息
展开面板顶部是对话卡:上面是这个任务最近一次的回复(最多 4000 字,可滚动、可复制),下面是输入框,不用打开 Harness 就能接着聊。Enter 发送,Shift+Enter 换行,中文输入法选字时按 Enter 不会误发。
- 发给谁:正在显示的任务;空闲时发给最近一个任务。子智能体不会成为对象。
- 空闲时点 发送 开始新一轮;任务进行中点 排队(这一轮结束后发送),或点 插话(插入正在进行的这一轮,Agent 下一步就会看到)。
- 走的是 Harness 自己输入框用的同一个接口(会话控制器的
prompt),消息会出现在 Harness 的对话记录里;已关闭的任务会被自动恢复。没有选好模型等原因发送失败时,输入框里的内容保留,可以直接重试。 - 暂不支持新建对话和发送图片、文件,这些仍在 Harness 中操作。可在设置中关闭「在灵动岛给 Agent 发消息」。
在灵动岛回答提问
Agent 用 ask_user_question 提问时,灵动岛自动展开提问卡:单选、多选、自己输入、跳过都可以,多个问题逐个回答后一次提交。Harness 窗口里的提问卡照常可用,哪边先答用哪边;灵动岛先答时,Harness 里的那张卡会随之关闭。没有打开 Harness 窗口时,灵动岛就是回答入口。问题超时后转为“继续”状态,仍可在灵动岛回答,回答作为一条回复送回 Agent,与 Harness 的处理方式相同。
计划审阅(plan mode)和带长说明的问题需要看全文,仍在 Harness 中回答。可在设置中关闭「在灵动岛回答提问」。
在灵动岛批准权限请求
Agent 要执行需要授权的操作(运行命令、修改文件、访问网址等)时,灵动岛变为“需要你批准”并自动展开审批卡,显示是哪个工具、为什么、具体要做什么(命令全文、文件路径或网址)。可以 允许一次 或 拒绝;按钮在卡片出现后约 0.6 秒才可点,避免误触。Harness 窗口里的审批卡照常可用,哪边先批用哪边,灵动岛先批时 Harness 里的卡随之撤下;没有打开 Harness 窗口时灵动岛就是审批入口。多个请求依次处理。
“始终允许”等持久授权不在灵动岛提供,仍在 Harness 中设置;子智能体的请求也在 Harness 中处理。可在设置中关闭「在灵动岛批准权限请求」。
用量统计
从面板底部的柱状图按钮或托盘菜单打开,范围可选 今天(按小时)、7 天、30 天(按天):
- 概览:总 tokens、估算费用、缓存命中率、轮次(完成/其他)、工作时长。
- 堆叠柱状图:缓存命中 / 未命中输入 / 输出,悬停查看每段的数量、费用和轮次。
- 按模型:tokens、估算费用、轮次。
- 按会话:每个会话的轮次、tokens、费用,点开看每一轮的结束时间、模型、调用与工具次数、各类 tokens 和费用。
费用按 DeepSeek 官方价格(2026-10-27 查询,人民币/百万 tokens)逐次调用估算:
| 模型 | 时段 | 缓存命中输入 | 未命中输入 | 输出 |
|---|---|---|---|---|
| deepseek-flash | 空闲 / 高峰 | 0.02 / 0.04 | 1 / 2 | 4 / 8 |
| deepseek-v4-pro | 空闲 / 高峰 | 0.15 / 0.30 | 4.5 / 9 | 13.5 / 27 |
高峰时段为北京时间工作日 9:00–12:00、14:00–18:00(法定节假日无法识别,按工作日计)。写入缓存的输入按未命中价,输出含思考内容;已下线的 deepseek-v4-flash 按 Flash 价计;没有官方价格的模型不计入费用。估算仅供参考,实际扣费以 DeepSeek 账单为准。
在 Harness 中设置
位置、大小等选项在 Harness 的 设置 › 灵动岛 中,修改后立即生效,无需重启:
| 选项 | 说明 |
|---|---|
| 停靠位置 | 在示意屏幕上点选:左上、顶部居中、右上、左侧居中、右侧居中、底部居中 |
| 显示灵动岛 | 关闭即隐藏;打开时会重新显示 |
| 大小 | 小巧、适中、舒展 |
| 弹出提醒 | 任务开始、完成、需要确认或出错时短暂放大 |
| 显示任务内容 | 关闭后不显示任务标题、计划内容、工具名、审批详情和回复预览,只显示状态 |
| 在灵动岛回答提问 | Agent 提问时自动展开提问卡,可直接回答 |
| 在灵动岛批准权限请求 | 需要授权时显示审批卡,可允许一次或拒绝 |
| 在灵动岛给 Agent 发消息 | 面板里显示输入框,接着当前或最近的任务对话 |
| 悬停展开面板 | 鼠标停留即展开,移开收起;关闭后需要单击 |
| 显示账户余额 | 空闲时显示 DeepSeek 账户余额 |
| 减少动态效果 | 关闭循环动画和弹性过渡(也跟随系统设置) |
这些选项保存在 Harness 的 desktop profile 配置中(插件条目 dsh-island)。显示器选择和“隐藏”状态仍由托盘菜单在本地保存。
状态与动效
| 状态 | 主色 | 动效 |
|---|---|---|
| 随时待命 | 品牌蓝 | 鲸鱼缓慢漂浮,蓝点呼吸 |
| 正在思考 | 靛蓝 | 三颗光点彗尾追逐;文字流光;底边光带滑过;鲸鱼游动 |
| 正在回答 | 亮蓝 | 五条节奏各异的声波 |
| 正在执行 | 蓝紫 | 伸缩弧环旋转、内核跳动;显示工具名 |
| 等待你确认 | 琥珀 | 双层涟漪扩散,外圈光晕呼吸,鲸鱼轻轻探头;有提问时显示“有问题等你回答”并展开提问卡 |
| 已完成 | 绿 | 圆盘弹出、对勾描画,鲸鱼跃起并喷出水花,胶囊轻弹 |
| 已暂停 | 灰 | 双竖线依次落定 |
| 需要留意 | 柔红 | 圆标弹出,整个胶囊左右轻摇(像输错密码) |
| 正在重试 | 琥珀 | 两颗光点交换位置 |
| 整理上下文 | 紫 | 三层线条收拢再展开 |
| 连接已断开 | 灰 | 斜杠圆,鲸鱼褪色 |
竖向停靠时,中间细脊会有光点自上而下流过。支持系统“减少动态效果”和插件自己的动效开关(打开后所有动画立即停止)。完成、暂停约 6.5 秒后收回待机;错误提醒显示 15 秒。多任务时优先显示待确认和异常,其次是进行中的任务。
从源码安装与卸载
适配并检查的版本:DeepSeek Harness Desktop 0.2.1-rc.3 / Windows。
双击项目里的 安装到 Harness.cmd 即可(会先询问是否关闭 Harness,装完自动重新打开;会在常见安装位置和正在运行的 Harness 中查找 dsh.cmd)。也可以先从托盘退出 Harness,然后运行:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install-desktop.ps1
重新打开 Harness 即显示。卸载:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts/install-desktop.ps1 -Action Remove
安装由官方 dsh plugin --profile desktop add 完成。本插件不修改悬浮球插件或宿主安装目录,不增加开机自启。设置保存在 %USERPROFILE%\.dsh\dsh-island\settings.json。退出 Harness 或停用插件后,窗口随宿主关闭。
运行环境复用当前机器已有的 %USERPROFILE%\.dsh\dsh-orb\electron-runtime\electron.exe。它不是独立安装包:在其他机器上需要已有 Electron,或使用环境变量 DSH_ISLAND_ELECTRON 指定其路径。安装归档不含 Electron,不会自动下载运行环境。可用 DSH_HOME 指定 Harness 数据根目录。
动画预览
npm run preview
预览窗口每 4.5 秒循环一个状态,面板里是标明“示例数据”的演示内容;展开后可手动切换,位置和大小在托盘菜单里调。也可双击项目里的“打开动画预览.cmd”。它明确标注“预览模式”,不代表真实任务。预览设置与正式插件分开保存在项目 .preview 目录。
开发与验证
代码无需打包器和运行时 npm 依赖。src/host.js 使用 Cordis 生命周期及 session/event、agent/assistant-stream、agent/status、agent/error,通过父子进程 IPC 向隔离的 Electron 页面发送状态;src/settings.js 用 Harness 自带的 schemastery 声明 volatile 配置,loader/volatile-update 时把新设置转发给窗口;web/client.js 是 Harness 设置页的浏览器半侧(通过 dsh.client 声明加载)。传给灵动岛的只有状态、任务标题、Agent 计划条目、工具名、模型名、token 数、账户余额、等你回答的问题和选项,以及已完成一轮的最终回复(关闭「显示任务内容」后不传);不会读取密钥,也不传递你的提问、思考正文、进行中的文本或工具参数。你在灵动岛输入的消息经 IPC 交给 Harness 的会话控制器,灵动岛本身不保存。没有新增 HTTP 监听端口。加载时接管正在运行任务的概括状态,之后使用实时事件细分;不重放历史对话。
npm test
npm run test:host
npm run test:desktop
npm run pack:plugin
桌面交互检查使用 Playwright,先运行 npm install 安装开发依赖;也可设置 DSH_TEST_DEPS 为已有的 Playwright 所在 node_modules。DSH_HOST_EXECUTABLE / DSH_HOST_PACKAGE 可指定另一处 Harness 安装以检查版本兼容。更换宿主版本时应先重新验证契约,不应绕过兼容门禁。
真实模型任务、网络重试和确认流程的完整现场验收与合成事件测试不同;具体已验证范围见 VALIDATION.md。
致谢
面板中的余额、24 小时 token 柱状图、缓存命中率和在灵动岛回答提问参考了 Agent HUD(Apache-2.0)的设计思路;本项目未使用其代码。



