🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

灵动岛状态桥 cdxiaodong/dsh-island

Cordis
cdxiaodong79 天前有提交已提供中文文档扫描:含敏感能力

把 DSH 会话与审批实时投到 macOS 菜单栏

32.8/100
综合分
9
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add cdxiaodong/dsh-island
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · ui
装得上吗
静态安装检查有提示项,装前建议看一眼 README
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-island(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 15:07:58

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 7 处,展示前 7 条)
  • 删除本地文件
    lib/index.js:192
    unlinkSync(ctlPath);
  • 读取本地文件
    lib/index.js:386
    if (existsSync(sock))
  • 读取本地文件
    lib/index.js:389
    if (existsSync(appPath)) {
  • 执行外部命令固定命令
    lib/index.js:390
    execFile('open', [appPath], { env: { ...process.env, DSH_ISLAND_SOCKET_PATH: sock } }, () => { });
  • 读取本地文件
    lib/index.js:395
    if (!existsSync(bin))
  • 执行外部命令来自配置/变量
    lib/index.js:397
    const child = spawn(bin, [], {
  • 读取本地文件
    lib/socket.js:24
    const st = statSync(this.socketPath);
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

4 张 · 点击查看大图

功能亮点

  • 桥接会话实时状态
  • 展示工具调用状态
  • 展示审批状态

把 DeepSeek Harness(DSH)智能体的实时状态桥接到 CodeIsland 刘海面板:会话、工具、审批都显示在灵动岛上

README

由 DeepSeek 最新模型翻译生成
dsh-island · 鲸鱼娘灵动岛 DeepSeek Harness (DSH) 的 macOS 菜单栏灵动岛 —— 插件一启动,DSH 的会话、工具调用、审批直接出现在顶部菜单栏,点击展开实时面板;配套 跨端同步 与 手机动态管理端,让 AI 任务一边跑、你一边掌控。 功能预览 ·快速安装 ·功能 ·路线图 🎬 功能预览 交互式预览(浏览器直接体验):docs/ 下是一整套可运行的产品预览。本地起一个静态服务器即可逐页体验全部交互: cd docs && python3 -m http.server 8080 打开 http://localhost:8080/index.html ① DSH 对话联动 · 会话全览 + Auto 模式 所有 DSH 会话一屏总览:活跃会话、工具调用、时长、状态一目了然;点击会话二次展开最近工具 / Token / 运行模式(Auto 全程无需批准),可直接跳转会话或停止。灵动岛胶囊随状态实时切换「空闲 / 运行中 / 等待授权」。 ② 跨端互通 · Mac 灵动岛 ↔ 手机灵动岛 任务在电脑上跑,进度实时同步到手机灵动岛:菜单栏胶囊一瞥即得,关键节点(完成/失败/审批)主动展开提醒,手机上直接跟随确认。异构灵动岛形态(macOS 菜单栏 ↔ iPhone Dynamic Island)同一状态源双向流转。
展开完整文档(README 剩余 1 节)
dsh-island · 鲸鱼娘灵动岛

DeepSeek Harness (DSH) 的 macOS 菜单栏灵动岛 —— 插件一启动,DSH 的会话、工具调用、审批直接出现在顶部菜单栏,点击展开实时面板;配套 跨端同步 与 手机动态管理端,让 AI 任务一边跑、你一边掌控。

功能预览 ·快速安装 ·功能 ·路线图

🎬 功能预览

交互式预览(浏览器直接体验):docs/ 下是一整套可运行的产品预览。本地起一个静态服务器即可逐页体验全部交互:

cd docs && python3 -m http.server 8080
打开 http://localhost:8080/index.html

① DSH 对话联动 · 会话全览 + Auto 模式

所有 DSH 会话一屏总览:活跃会话、工具调用、时长、状态一目了然;点击会话二次展开最近工具 / Token / 运行模式(Auto 全程无需批准),可直接跳转会话或停止。灵动岛胶囊随状态实时切换「空闲 / 运行中 / 等待授权」。

② 跨端互通 · Mac 灵动岛 ↔ 手机灵动岛

任务在电脑上跑,进度实时同步到手机灵动岛:菜单栏胶囊一瞥即得,关键节点(完成/失败/审批)主动展开提醒,手机上直接跟随确认。异构灵动岛形态(macOS 菜单栏 ↔ iPhone Dynamic Island)同一状态源双向流转。

③ 价值对比 · 一天工作流的前后之差

镜头对准一个开发者的工作日:反复切窗看进度、错过关键节点、离开电脑即失联 —— 有了灵动岛之后,一瞥即得、主动提醒、手机随手掌控。数字会滚动,前后差距一目了然。

④ 手机动态管理端 · 接口映射,不写死任何一个功能

手机管理端从 DSH 拉取能力清单(原生功能 + 全部插件接口),动态生成管理界面:装上一个新的第三方插件,手机端自动多一个管理入口,App 永不过时。内置对多个真实高 star 插件(open-design 87.4k★、voyager 19.5k★、dsh-web-ui、modlens、OpenBiliClaw…)的实时监测:状态 / 调用量 / 内存 / 健康度,远程启停、检查更新。

预览即产品形态:追平甚至超越市面上「写死 UI」的 DSH 手机端,走的是「接口即入口」的动态映射路线。

⚡ 快速安装

dsh plugin --profile add github:cdxiaodong/dsh-island

前提:macOS 14+(面板为 arm64 二进制;Intel 需自行用 panel/build.sh 重编)。

是什么

开发 AI agent 时,最常见的烦恼是「切窗口看它到底在干嘛、是不是卡在审批」。dsh-island 把 DSH 的实时状态带进 macOS 菜单栏:

- 插件 apply 时自动拉起原生 Swift 面板(bin/dsh-island-panel,NSStatusItem + NSPopover + SwiftUI,借鉴 CodeIsland 的实现)
- 菜单栏按钮文案随状态动态变化:🐋 DSH(空闲)→ 🔧 运行中 / 🔧 (执行中)→ 🛡️ 需要授权(审批中)
- 点击菜单栏图标 → 弹出毛玻璃灵动岛面板:会话、工具调用、事件流
- 审批请求直接在面板上点「允许 / 拒绝」,决策回写 DSH

DSH 进程 └─ dsh-island 插件(cordis) ├─ apply() 时 spawn → bin/dsh-island-panel(Swift 原生,常驻菜单栏) ├─ 监听 DSH 事件(session/tools/approval/subagent/status) └─ Unix socket /tmp/dsh-island-.sock → 菜单栏图标 + 面板实时更新 ↑ 面板上点「允许/拒绝」→ 决策回写 DSH

无需中间层:不依赖 CodeIsland 应用、不写 hook 配置、不用浏览器。装插件即用。

功能

- 自动拉起:插件加载即常驻菜单栏(已运行则不重复启动)
- 动态菜单栏:按钮文案随状态变(空闲/运行中/等待授权)
- 会话状态:SessionStart / SessionEnd 跟随 DSH 会话生命周期
- 工具调用:PreToolUse / PostToolUse / PostToolUseFailure 实时展示正在执行的工具
- 面板审批:approval/request → 面板出现「需要授权」卡,点「允许 / 拒绝」直接回写 DSH
- 子代理:SubagentStart / SubagentStop
- 状态变化:agent/status → 面板状态灯与提示
- 零侵入:不修改 DSH 配置、不拦截工具决策(next() 总是放行)

事件映射

| DSH 事件 | 面板事件 | 方向 |
| session/created | SessionStart | 通知 |
| session/disposed | SessionEnd | 通知 |
| tools/pre-execute | PreToolUse | 通知 |
| tools/post-execute | PostToolUse / PostToolUseFailure | 通知 |
| approval/request | PermissionRequest(阻塞) | 双向 · 面板批准/拒绝回写 |
| subagent/start / subagent/end | SubagentStart / Stop | 通知 |
| agent/status | Notification | 通知 |

事件发送对 DSH 是旁路观察:PreToolUse / PostToolUse 监听器总是调用 next() 放行,发送失败也不影响 agent 执行。唯一「停留等待」的是 approval/request —— 这是审批的语义本身。

配置

interface Config {
socketPath?: string // 面板 socket(默认 /tmp/dsh-island-.sock) source?: string // 上报的 source 标识(默认 dsh) approvalTimeoutMs?: number // 审批等待面板决策超时(默认 5 分钟) approvals?: boolean // 是否把审批转发给面板(默认 true) subagents?: boolean // 是否上报子代理事件(默认 true) agentStatus?: boolean // 是否上报 agent 状态(默认 true) autoLaunchPanel?: boolean // apply 时自动拉起面板(默认 true) panelBin?: string // 覆盖面板二进制路径 debug?: boolean // 打印发送日志(默认 false) }

托盘动态内容

菜单栏胶囊随 DSH 状态实时变化:

| 状态 | 托盘显示 |
| 空闲 | 空闲 5m(会话时长)+ 鲸鱼娘 idle 慢眨眼 |
| 运行中 | git commit ·12(工具名 + 调用计数) |
| 等待授权 | 等待授权(琥珀点 + 鲸鱼娘 wait 摆动) |
| 子代理 | 右键菜单显示 子代理 N |

鲸鱼娘半身动画 15+ 动作,随状态协调切换(working/think/wait/celebrate/error),空闲时随机轮播 walk/play/joy/sleep/eat/waving/wake 等。

插件注册接口

其他 DSH 插件可以在托盘右键菜单里注册自己的菜单项:

import type { Context } from 'cordis'

export const inject = ['island']

export function apply(ctx: Context) {
// 注册一个菜单项(出现在托盘右键菜单,图标 + 标题)
ctx.island.registerMenuItem({
id: 'my-plugin',
title: '我的插件', icon: '🔧',
action: () => {
console.log('my-plugin clicked')
},
})
}

插件管理

托盘右键 →「插件管理」子菜单:动态列出 DSH 运行时所有插件(●运行 / ○停止),点击运行中 → 关闭、停止 → 启用,插件加载/卸载自动刷新。

交互

- 左键托盘 → 打开展示框(鲸鱼娘随机欢迎动作)
- 右键托盘 → 菜单(状态/统计/插件管理/打开面板/退出)
- 点击展示框外部 → 自动关闭

🗺️ 路线图 Roadmap

以下能力已进入产品设计(见上方功能预览),正在陆续落地:

| 模块 | 状态 | 说明 |
| 📱 手机管理端 App | 🔨 开发中 | 从 DSH 拉取能力清单,动态生成管理界面(「接口即入口」路线) |
| 🔌 动态接口映射后端 | 🔨 开发中 | DSH 侧暴露 /api/capabilities,插件 / 原生功能统一注册 |
| 🔔 完成 / 审批通知提醒 | TODO | 灵动岛主动展开 + 系统通知,别错过关键节点 |
| 📊 Token / 用量面板 | TODO | 每会话 Token、成本、剩余额度一屏总览 |
| 👥 多会话管理 | TODO | 所有 DSH 会话列表 + 二次展开详情(预览已呈现) |
| 🎨 多套鲸鱼娘皮肤 | TODO | 图生图换肤:洛丽塔 / 水手服 / 宫廷 / 小魔女,一次一套穿搭 |
| 🌐 跨端实时同步 | TODO | Mac ↔ 手机状态双向同步(预览已呈现交互) |
| 🦴 Intel 原生面板 | TODO | 当前面板为 arm64,Intel 需重编 |

想看每一步的真实交互?运行上方「功能预览」里的演示即可 —— 界面、动效、状态流转皆是可点击的。

开发

./panel/build.sh # 编译 Swift 灵动岛面板 → bin/dsh-island-panel
npm run build # tsc → lib/
npm test # node --test,8 个用例
node scripts/live-panel.mjs # 浏览器版实时演示(无 DSH 时看效果)

测试用 cordis Context 精确模拟 DSH 宿主的事件通道(tools/*、approval/request 均按宿主真实 waterfall 签名 (exec, next) 调用)。

架构(借鉴 CodeIsland)

| 组件 | 来源 |
| 菜单栏 NSStatusItem + NSPopover 灵动岛 | CodeIsland StatusItemController 思路 + 自研 popover |
| 菜单栏模板图标 / 状态文案 | CodeIsland menuBarIcon 的 template 约定 |
| NWListener Unix socket 接收 | CodeIsland HookServer |
| 深色毛玻璃 SwiftUI 卡片 | CodeIsland NotchPanelView 风格精简 |

致谢感谢 LINUX DO 社区提供交流与推广的平台,感谢佬友们的反馈与支持。

许可证

MIT
预览分享卡片长什么样 ↓cdxiaodong/dsh-island
分享 · DeepSeek Harness Hub
cdxiaodong/dsh-island

把 DSH 会话与审批实时投到 macOS 菜单栏

这是你的仓库?认领条目

回到顶部