在 Windows 桌面养一只鲸鱼娘,随 Agent 状态互动
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lemonxiny55/dsh-kurowhale-pet该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 26 处,展示前 26 条)
- 读取本地文件plugin/index.js:11
const read = (path, fallback) => {try{return JSON.parse(readFileSync(path,'utf8'));}catch{return fallback;}}; - 写入本地文件plugin/index.js:17
mkdirSync(directory,{recursive:true}); - 写入本地文件plugin/index.js:19
try{const log=join(directory,'lifecycle.jsonl');try{if(statSync(log).size>=1024*1024)renameSync(log,log+'.1');}catch{}appendFileSync(log,JSON.stringif - 写入本地文件plugin/index.js:19
try{const log=join(directory,'lifecycle.jsonl');try{if(statSync(log).size>=1024*1024)renameSync(log,log+'.1');}catch{}appendFileSync(log,JSON.stringif - 读取本地文件plugin/index.js:19
try{const log=join(directory,'lifecycle.jsonl');try{if(statSync(log).size>=1024*1024)renameSync(log,log+'.1');}catch{}appendFileSync(log,JSON.stringif - 写入本地文件plugin/index.js:38
try{writeFileSync(tmp,JSON.stringify(value,null,2));renameSync(tmp,target);return true;}catch{return false;} - 写入本地文件plugin/index.js:38
try{writeFileSync(tmp,JSON.stringify(value,null,2));renameSync(tmp,target);return true;}catch{return false;} - 读取本地文件plugin/overlay.js:13
if (!existsSync(options.runtimePath)) throw Error('Configure an existing official Neutralino 6.9.0 runtimePath'); - 写入本地文件plugin/overlay.js:15
mkdirSync(join(work,'resources')); - 写入本地文件plugin/overlay.js:16
for (const name of ['index.html','neutralino.js','tray.png']) copyFileSync(join(frontend,name),join(work,'resources',name)); - 写入本地文件plugin/overlay.js:17
copyFileSync(options.sheet,join(work,'resources','atlas.webp')); - 写入本地文件plugin/overlay.js:19
writeFileSync(join(work,'neutralino.config.json'),JSON.stringify({ - 执行外部命令来自配置/变量plugin/overlay.js:28
const child = spawn(options.runtimePath,[`--path=${work}`,'--res-mode=directory'],{cwd:work,stdio:['ignore','pipe','pipe'],windowsHide:false}); - 执行外部命令固定命令plugin/overlay.js:40
if(!exited&&child.pid){try{execFileSync('taskkill',['/PID',String(child.pid),'/T','/F'],{stdio:'ignore',windowsHide:true,timeout:8000});}catch{}} - 删除本地文件递归plugin/overlay.js:41
try{rmSync(work,{recursive:true,force:true,maxRetries:2,retryDelay:100});}catch{} - 读取本地文件plugin/overlay.js:48
try{const a=JSON.parse(readFileSync(join(work,'.tmp/auth_info.json'),'utf8'));if(a.nlPort&&a.nlToken&&a.nlConnectToken){auth=a;break;}}catch{} - 读取本地文件plugin/resources.js:19
const valid = async (path, hash) => { try { return digest(await readFile(path)) === hash; } catch { return false; } }; - 写入本地文件plugin/resources.js:76
assetDirectory=join(directory,'assets',artworkVersion); await mkdir(assetDirectory,{recursive:true}); - 写入本地文件plugin/resources.js:77
for (const [name,data] of Object.entries(files)) { const target=join(assetDirectory,name), tmp=target+'.'+randomUUID()+'.tmp'; try { await writeFile(t - 删除本地文件plugin/resources.js:77
for (const [name,data] of Object.entries(files)) { const target=join(assetDirectory,name), tmp=target+'.'+randomUUID()+'.tmp'; try { await writeFile(t - 写入本地文件plugin/resources.js:77
for (const [name,data] of Object.entries(files)) { const target=join(assetDirectory,name), tmp=target+'.'+randomUUID()+'.tmp'; try { await writeFile(t - 写入本地文件plugin/resources.js:85
const runtimeDir=join(directory,'runtime'); await mkdir(runtimeDir,{recursive:true}); - 写入本地文件plugin/resources.js:88
await writeFile(zip,bytes,{flag:'wx'}); - 写入本地文件plugin/resources.js:92
await rename(exe,runtimePath); - 删除本地文件plugin/resources.js:93
} finally { await rm(zip,{force:true}); await rm(exe,{force:true}); } - 发起网络请求plugin/native/neutralino.js:1
var Neutralino=function(e){"use strict";function t(e,t){return window.addEventListener(e,t),Promise.resolve({success:!0,message:"Event listener added"
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
参考 DeepSeek Harness 官方图标设计的鲸鱼娘桌宠
README
由 DeepSeek 最新模型翻译生成KuroWhale 黑色系鲸鱼娘桌宠 🐳
参考 DeepSeek Harness 官方图标设计的鲸鱼娘桌宠。 在 Windows 桌面上陪伴你,并响应 DSH Agent 的工作状态。
GitHub 仓库 · npm 包 · 备用 Windows ZIP · 验收记录
免费、非官方社区项目,与 DeepSeek 官方及相关创作者无关联,也未获得其背书。
安装与当前状态
需要 Windows x64、DSH Desktop 0.2.1-rc.3 或 0.2.1-rc.5 和 WebView2。在 DSH Desktop 的“插件管理 → 添加插件”中输入 GitHub 地址或 dsh-kurowhale-pet@0.1.3,点击“立即启用”,然后重启 DSH;首次运行会联网获取缺少的素材和官方 Neutralino 6.9.0,并校验 SHA-256。已有自定义路径、关闭设置和位置予以保留。npm 0.1.3 已发布。 双语发布说明。GitHub 安装、Desktop 添加插件和市场的既有验收范围见下表;市场安装仍未验收。
展开完整文档(README 剩余 1 节)
KuroWhale 黑色系鲸鱼娘桌宠 🐳 参考 DeepSeek Harness 官方图标设计的鲸鱼娘桌宠。 在 Windows 桌面上陪伴你,并响应 DSH Agent 的工作状态。 GitHub 仓库 · npm 包 · 备用 Windows ZIP · 验收记录 免费、非官方社区项目,与 DeepSeek 官方及相关创作者无关联,也未获得其背书。 安装与当前状态 需要 Windows x64、DSH Desktop 0.2.1-rc.3 或 0.2.1-rc.5 和 WebView2。在 DSH Desktop 的“插件管理 → 添加插件”中输入 GitHub 地址或 dsh-kurowhale-pet@0.1.3,点击“立即启用”,然后重启 DSH;首次运行会联网获取缺少的素材和官方 Neutralino 6.9.0,并校验 SHA-256。已有自定义路径、关闭设置和位置予以保留。npm 0.1.3 已发布。 双语发布说明。GitHub 安装、Desktop 添加插件和市场的既有验收范围见下表;市场安装仍未验收。 | 入口 | 目标操作 | 目前的验证结果 | | GitHub | 在 DSH 添加插件时输入 https://github.com/lemonxiny55/dsh-kurowhale-pet,安装后重启 | 公开地址经 Desktop 自带 CLI 安装提交 0e911a3,在实际 rc.5 Desktop 重启后目视看到角色;该升级沿用了已有路径。此前无素材的本地 Git 快照测试验证了自动获取、校验及显示。添加插件界面尚未单独验证。 | | DSH Desktop | 添加插件,输入 dsh-kurowhale-pet@0.1.3,安装后点击“立即启用”,再重启 | 历史版本 npm 0.1.2 已在实际 rc.5 Desktop 的官方添加插件界面从 npm 官方源安装,点击“立即启用”并重启后目视看到角色;锁文件的完整性值与 npm 注册表一致。0.1.3 最终 tarball 已通过 rc.5 自带 CLI 在隔离 profile 安装、启用、加载并目视显示;正式 npm 包已核验与该 tarball 一致。该次验证沿用了已有用户路径,配置和位置未变。 | | 插件市场 | 搜索 KuroWhale 并安装,重启 DSH | awesome-dsh-plugin PR #10379 已合并;市场索引目前仍为 0.1.1 和旧的手动步骤,rc.5 会将该旧版本作为不兼容项隐藏。说明更新见 PR #10554,0.1.2 的同步和市场入口安装尚未验证。 | 本机空目录实测了资源准备:从固定 npm 包取得素材、从官方发行版取得 Neutralino,均完成 SHA-256 校验。离线、下载失败或校验失败时启动会记录错误;DSH 仍可使用。Desktop 的第三方插件安装窗口提供“立即启用”,安装后需先点击此按钮;已有同名插件时,界面要求先卸载再安装,建议保留配置备份。 npm 包通过 准备脚本 从已校验的发行素材构建,包含图集与美术许可文件;Git 源码不含图集。受限环境中的原生窗口启动曾失败;允许原生桌面进程后,上述 DSH 安装测试完成目视检查。市场入口验证等待索引同步。 Windows ZIP 是备用安装方式;现有 v0.1.0 ZIP 的人工配置和历史验收见安装指南。 功能 - 九种动画:响应 Agent 工作、审批、完成和失败等事件。 - 桌面悬浮:透明窗口支持拖动、缩放、隐藏、置顶和位置记忆。 - 菜单与托盘:右键管理桌宠,通过系统托盘恢复显示。 已验证范围 已在 Windows x64 的 DSH Desktop 0.2.1-rc.3 验证安装及桌宠交互,并在 rc.5 验证安装和针对性稳定性回归。其他 DSH 版本、混合 DPI 和长期运行尚未充分验证,具体证据与限制见技术验收。 角色来源与许可 角色通过 AI 辅助创作并加工为动画。创作参考包括通过 Google 图片搜索找到的鲸鱼娘图片;该图片与 PC2005-cloud/dsh-pet 的角色高度相似,但其具体作者、原始发布页和授权范围尚未完全确认。参考原图不包含在发行包内。 感谢 PC2005-cloud/dsh-pet 及社区创作者,包括原型「溟月」的上善无形、dsh-pet 所述女仆鲸鱼娘二次设计者 ZipZipPipe。详细来源与改动见美术署名。 代码采用 MIT;项目有权授权的新增美术贡献采用 CC BY-NC-SA 4.0,要求署名、注明修改、非商业使用及相同方式共享,不重新授权第三方独立作品。来源或授权问题欢迎通过 Issue 联系。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lemonxiny55/dsh-kurowhale-pet
在 Windows 桌面养一只鲸鱼娘,随 Agent 状态互动
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 14,049已汉化DeepSeek 客户端
73
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,597已汉化DSH
71.3
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 718已汉化DSH
71.2
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,261已汉化DSH
70.7
破甲评测WoYun520/dsh-purge
在本机分离宿主拦截与模型拒绝,做受控红队评测
★ 199已汉化DSH
69.7