DSH小助手:原生 Swift 悬浮窗 + DSH 会话状态驱动,含素材管线与日报
30.3/100
综合分
1
GitHub 星标
155
npm 周下载
—/5
用户评分
数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-assistantnpm 源 · dsh-assistant 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-assistant @ 0.2.0
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/9 17:37:06
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 22 处,展示前 22 条)
- 发起网络请求src/client.js:83
const load = () => fetch(CONFIG_ENDPOINT, { cache: 'no-store' }) - 发起网络请求src/client.js:110
const response = await fetch(CONFIG_ENDPOINT, { - 发起网络请求src/client.js:140
const response = await fetch(`${CONFIG_ENDPOINT}/action`, { - 发起网络请求src/client.js:392
const response = await fetch(`${CONFIG_ENDPOINT}/pending`, { - 发起网络请求src/client.js:474
void fetch(`${CONFIG_ENDPOINT}/viewed`, { - 读取本地文件src/pet-process.js:67
return Boolean(helperPath) && existsSync(helperPath) - 写入本地文件src/pet-process.js:127
try { chmodSync(helperPath, 0o755) } catch { } - 执行外部命令来自配置/变量src/pet-process.js:129
child = spawn(helperPath, this.options.args ?? [], { - 执行外部命令来自配置/变量src/pet-process.js:387
const child = spawn(helperPath, ['--headless'], { - 执行外部命令来自配置/变量src/pet-process.js:450
const child = spawn(helperPath, ['--headless'], { - 读取本地文件src/pet-summary-store.js:82
raw = readFileSync(path, 'utf8') - 写入本地文件src/pet-summary-store.js:135
mkdirSync(dirname(path), { recursive: true }) - 写入本地文件src/pet-summary-store.js:139
writeFileSync(temporary, text, 'utf8') - 写入本地文件src/pet-summary-store.js:140
renameSync(temporary, path) - 写入本地文件src/pet-summary-store.js:241
mkdirSync(dirname(path), { recursive: true }) - 写入本地文件src/pet-summary-store.js:247
writeFileSync(fd, `${process.pid}\n`, 'utf8') - 删除本地文件src/pet-summary-store.js:251
try { unlinkSync(lockPath) } catch { } - 删除本地文件src/pet-summary-store.js:257
try { unlinkSync(lockPath) } catch { } - 读取本地文件src/pet-summary-store.js:274
stat = statSync(lockPath) - 读取本地文件src/pet-summary-store.js:282
pid = Number.parseInt(readFileSync(lockPath, 'utf8').trim(), 10) - 读取本地文件src/pet-summary-activity.js:111
entries = await readdir(dir, { withFileTypes: true }) - 读取本地文件src/pet-summary-activity.js:145
const info = await stat(join(dir, file.name))
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 原生Swift悬浮窗
- 会话状态驱动
- 素材管线与日报
README
由 DeepSeek 最新模型翻译生成DSH小助手 🐋
住在桌面上、由 DeepSeek Harness 真实工作状态驱动的 Agent 伴侣。
入口属于 DSH,生命周期属于 DSH,显示层属于桌面。
使用 · 外观与互动 · 今天干了什么 · 参考与致谢 · 已知边界
DSH小助手不是需要单独启动的桌宠应用:它由 DSH 插件拉起,跟着 DSH 一起启动和退出,以透明、无边框、始终置顶的原生窗口待在桌面上。切到 VS Code、浏览器或全屏应用之后,照样能看到 DSH 当前在思考、在执行、在等你确认,还是已经完成。
它只显示真实发生的事:状态来自 DSH 的会话事件 —— 不读屏幕、不根据模型名猜推理强度、也不编造完成度。几个项目一起跑时,气泡只给两行关键信息:谁在跑、谁在等你。
macOS(Apple Silicon / Intel 通用二进制)· 包里自带编译好的 helper 与素材包,装完就能跑,不需要 Xcode
状态展示
七个耐久状态各自有动作与文案,同一状态还会随机换姿势,不会一直重复同一张图。
展开完整文档(README 剩余 1 节)
DSH小助手 🐋 住在桌面上、由 DeepSeek Harness 真实工作状态驱动的 Agent 伴侣。 入口属于 DSH,生命周期属于 DSH,显示层属于桌面。 使用 · 外观与互动 · 今天干了什么 · 参考与致谢 · 已知边界 DSH小助手不是需要单独启动的桌宠应用:它由 DSH 插件拉起,跟着 DSH 一起启动和退出,以透明、无边框、始终置顶的原生窗口待在桌面上。切到 VS Code、浏览器或全屏应用之后,照样能看到 DSH 当前在思考、在执行、在等你确认,还是已经完成。 它只显示真实发生的事:状态来自 DSH 的会话事件 —— 不读屏幕、不根据模型名猜推理强度、也不编造完成度。几个项目一起跑时,气泡只给两行关键信息:谁在跑、谁在等你。 macOS(Apple Silicon / Intel 通用二进制)· 包里自带编译好的 helper 与素材包,装完就能跑,不需要 Xcode 状态展示 七个耐久状态各自有动作与文案,同一状态还会随机换姿势,不会一直重复同一张图。 | 待机 | 思考 | | 待机中 | 正在思考 | | 执行 | 等你确认 | | 正在执行 | 等你确认 | | 完成 | 出错 | | 任务完成 | 任务出错 | 多项目并行: 多项目并行 子任务也算在进行中:会话派出子 Agent(或后台跑着别的活)时,就算它自己的回合已经结束,桌面上那个项目仍然是 ● —— 气泡说「子任务在跑,我盯着」,直到最后一个子任务收工。 设置里的「含子 Agent」打开后,子会话会自己占一格,父项目就不再重复显示这份工作。 完成、出错、等你确认各会另起一条通知,独立于状态气泡钉在宠物上方,点一下就切到那个会话 —— 状态气泡可能正被别的项目占着,通知不会。 | 完成通知 | 等你确认(这条也能点) | | 完成通知 | 等你确认通知 | 使用 装到 DSH 里 dsh plugin --profile desktop add dsh-assistant --profile 填你实际在用的那个(桌面端是 desktop,Web 端是 web)。 这条命令背后是 pnpm:装完包之后,它会自动把声明了 dsh.bundle 的依赖加进 profile 的 dsh.profile.bundles —— 不用手改 package.json。 包里带着编译好的 macOS helper 与素材包(44MB),装完就能跑,不需要 Xcode。 重启 DSH 后,桌面右下角会出现宠物,设置面板里多一张「DSH小助手」卡片。 以后升级: dsh plugin --profile desktop update dsh-assistant 想跟着最新提交跑 npm 上是发版快照;想用 GitHub 上最新的 main: dsh plugin --profile desktop add github:vianvio/dsh-assistant 改这个插件本身 改用 link,改完不用重装: git clone https://github.com/vianvio/dsh-assistant.git ~/dsh-assistant dsh plugin --profile desktop add link:$HOME/dsh-assistant 自己构建(可选) 包里带了编译好的 macOS helper 与素材包,上面三种装法都用不到这些命令;只有改了原生端或想换素材时才需要: npm run build:helper # 编译原生 helper(需要 Xcode 命令行工具) npm run build:pack # 重新生成素材包 npm run verify # 自检:素材 / helper / 模块 / 握手 / 状态归约 npm test # Node 单测(含真实 DSH 设置服务的集成用例) npm run probe # 不经 DSH,直接驱动宠物跑一遍状态与动作(肉眼验收) 外观与互动 设置面板里的一张「DSH小助手」卡片就是全部开关: | 设置 | 默认 | 说明 | | enabled | 开 | 关闭后立即收起桌面窗口 | | scale | 0.4 | 0.15 – 2.0,1 = 原始尺寸;右键菜单有 40% / 55% / 70% / 100% 四挡 | | bubbleEnabled | 开 | 是否显示气泡 | | bubbleTheme | light | 浅色气泡配黑字,深色配白字 | | reducedMotion | 关 | 减少动效 | | soundEnabled | 关 | 完成 / 出错时响一声 | | includeSubagents | 关 | 允许子代理抢占宠物状态 | | backgroundSummary | 关 | 任务后台总结(见下) | | autoInteract | 开 | 自己找点事做:状态停留够久就随机来一次互动 | | autoInteractSeconds | 10 | 上面那件事的判定间隔(5 – 300 秒),每隔这么久掷一次 30% 的骰子 | 宠物可以直接拖着走,位置与上面的偏好都记在本机($DSH_HOME/dsh-assistant/layout.json)。 自己找点事做:任意状态连续维持一个间隔(默认 10 秒),就有 30% 概率随机来一次投喂点心 / 夸夸它 / 摸摸头;浮层还在播的时候不打扰你。嫌闹就把间隔调大,或者直接关掉。 右键菜单:投喂点心 / 戳一下 / 夸夸它 / 摸摸头 / 回到原位 / 今天干了什么。 左键点身体也会摸头,四个互动动作在菜单、点击、设置面板三处是同一套。 今天干了什么 右键宠物 →「今天干了什么」(或设置面板里的「生成日报」):回顾当天的会话,产出一份「今天做了什么 + 待办」的 markdown —— 按项目聚合,长度有硬性上限,写不下就自动重写一轮。 生成完在宠物上方弹一条通知,点一下打开弹窗;弹窗里有「复制 Markdown」按钮,复制的是原文,不是渲染结果。 生成日报用的会话是隐藏会话:不会出现在左侧列表里,也不会弹系统通知。 打开设置里的「任务后台总结」后,它改成边干活边攒:会话每次压缩时先在后台提炼一段已完成的内容存着,点日报时只补增量、再汇总 —— 不用等到晚上才有一份完整回顾。 这个开关默认关(关着 = 每次把今天所有会话重新读一遍)。所以关着的时候,弹窗底部会多一行提示,告诉你在哪儿打开它;打开后这行就不出现了。提示只在窗口里,不进正文 ——「复制 Markdown」拿到的始终是干净的日报。 今日总结弹窗 参考与致谢 这个项目的两半(画面与状态)都站在别人的成果上。没有下面这两个仓库,就不会有现在的 dsh-assistant —— 特此致谢。 🐋 角色素材 · Sutera-Diffusus/dsh-whale-musume MIT License · Copyright © 2026 Sutera-Diffusus DeepSeek Harness 桌宠插件:元气鲸鱼娘陪你写代码 本项目默认的 88 段角色素材全部来自这个仓库。上游是静态姿态图,我们做了三件加工:统一高度(切状态时角色大小不跳)、按显示尺寸烘焙成 WebP、其中一部分用百炼图生视频生成微动作再抠像对齐成序列帧。 加工不改变上游的许可与署名要求:角色形象版权仍归原作者,本项目只以 MIT 分发代码与加工后的素材。想换成自己的角色:把图丢进一个目录,改 scripts/build_pack.py 顶部的 STATE_ASSETS / ACTION_ASSETS,重跑 npm run build:pack —— 宿主与原生端都不用改。 🐟 原生悬浮窗骨架 · QCYTSN/dsh-dafeiyu MIT License · Copyright © 2026 QCYTSN 「原生透明面板 + stdio JSON 协议 + 会话事件归约」这条路线,是这个仓库用生产代码先跑通的。 我们照着它做,省掉了"原生方案在 DSH 里到底行不行"那一段最贵的试错;之后在帧内存、 VoiceOver 可访问性、僵尸进程与布局持久化上各自做了加固。 其它 - 素材生成依赖 阿里云百炼(图生视频模型),管线脚本在 scripts/; - 配色与排版参考了 DSH 自身的界面规范(深/浅两套气泡配色)。 完整署名与许可见 THIRD_PARTY_NOTICES.md。 已知边界 - 平台:原生 helper 目前只有 macOS(AppKit)。Windows/Linux 要么重写面板层,要么退回 Electron 子窗口方案(会失去「全屏应用之上」这一条)。 - 分发:.app 是 ad-hoc 签名。别人从浏览器下载会被 Gatekeeper 拦,正式分发需要 Developer ID + 公证。 - 素材体积:assets/pack 约 46MB(88 段 × 30 帧);assets/motion 另有几百 MB 的源 MP4,已加进 .gitignore。 - 素材来源:默认取自 dsh-whale-musume (MIT, © 2026 Sutera-Diffusus,见参考与致谢)。想换角色:把图丢进一个目录、改 scripts/build_pack.py 顶部的 STATE_ASSETS / ACTION_ASSETS,重跑 npm run build:pack 即可,宿主与原生端都不用改。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
vianvio/dsh-assistant
DSH小助手:原生 Swift 悬浮窗 + DSH 会话状态驱动,含素材管线与日报
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,125已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,465已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,457已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,710已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,378已汉化DSH
70.2
这是你的仓库?认领条目