DSH Hub
dsh-island cover

cdxiaodong/dsh-island

dsh-island

BundleVision6 GitHub stars· updated 2026-08-17

dsh-island is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile <profile> add github:cdxiaodong/dsh-island

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-island DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-island.svg)](https://dshhub.dev/plugins/dsh-island)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from cdxiaodong/dsh-island, cleaned of badges and images.

<h1 align="center">dsh-island · 鲸鱼娘灵动岛</h1>

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

<a href="#-功能预览">功能预览</a> · <a href="#-快速安装">快速安装</a> · <a href="#-功能">功能</a> · <a href="#-路线图-roadmap">路线图</a>


🎬 功能预览

交互式预览(浏览器直接体验)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 <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-<uid>.sock → 菜单栏图标 + 面板实时更新
                            ↑ 面板上点「允许/拒绝」→ 决策回写 DSH

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

功能

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

事件映射

DSH 事件面板事件方向
session/createdSessionStart通知
session/disposedSessionEnd通知
tools/pre-executePreToolUse通知
tools/post-executePostToolUse / PostToolUseFailure通知
approval/requestPermissionRequest(阻塞)双向 · 面板批准/拒绝回写
subagent/start / subagent/endSubagentStart / Stop通知
agent/statusNotification通知

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

配置

Related plugins