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

桌宠关怀提醒 Oliveryfaso/dsh-pet-company

DeepSeek Harness
Oliveryfaso18 天前有提交已提供中文文档扫描:含敏感能力

让桌面宠物在久坐、缺水和深夜时轻声提醒你

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Oliveryfaso/dsh-pet-company
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 42 处,展示前 42 条)
  • 发起网络请求
    client.js:404
    const poll=async()=>{try{if(document.hidden){view?.destroy();view=null;signature='';return;}const res=await fetch('/pet-company-runtime/view?visible=1
  • 发起网络请求
    client.js:457
    var response = await fetch('/dsh-pet-company/' + path, { method: method || 'GET', credentials: 'same-origin', headers: body === undefined ? { Accept:
  • 发起网络请求
    src/renderer-bridge.js:83
    const state=await this.request('state');
  • 发起网络请求
    src/renderer-bridge.js:85
    const entries=await this.request('config');
  • 发起网络请求
    src/renderer-bridge.js:91
    broadcast(pet,text,feedback) { return this.request('broadcast',{pet,text,...feedback===undefined?{}:{feedback}}); }
  • 发起网络请求
    src/renderer-bridge.js:94
    const entries=await this.request('config');
  • 发起网络请求
    src/renderer-bridge.js:97
    if(entry?.animations?.categories?.some(category=>category.actions?.includes('care')))await this.request('anim',{pet,name:'care',...extra});
  • 发起网络请求
    src/renderer-bridge.js:161
    async fetch(request) {
  • 读取本地文件
    src/runtime-provider.js:48
    const value=JSON.parse(await readFile(candidate,'utf8'));
  • 写入本地文件
    src/runtime-provider.js:58
    await mkdir(dirname(file),{recursive:true});const temporary=file+'.'+randomUUID()+'.tmp';
  • 写入本地文件
    src/runtime-provider.js:59
    try {await writeFile(temporary,JSON.stringify(config,null,2)+'\n',{mode:0o600,flag:'wx'});await rename(temporary,file);}
  • 写入本地文件
    src/runtime-provider.js:59
    try {await writeFile(temporary,JSON.stringify(config,null,2)+'\n',{mode:0o600,flag:'wx'});await rename(temporary,file);}
  • 删除本地文件
    src/runtime-provider.js:60
    finally {await rm(temporary,{force:true});}
  • 写入本地文件
    src/owned/owner-lock.js:6
    async acquire(){await mkdir(dirname(this.file),{recursive:true});try{await writeFile(this.file,JSON.stringify({token:this.token,pid:process.pid})+'\n'
  • 写入本地文件
    src/owned/owner-lock.js:6
    async acquire(){await mkdir(dirname(this.file),{recursive:true});try{await writeFile(this.file,JSON.stringify({token:this.token,pid:process.pid})+'\n'
  • 读取本地文件
    src/owned/owner-lock.js:6
    async acquire(){await mkdir(dirname(this.file),{recursive:true});try{await writeFile(this.file,JSON.stringify({token:this.token,pid:process.pid})+'\n'
  • 写入本地文件
    src/owned/owner-lock.js:12
    try{await writeFile(gate,this.token,{flag:'wx',mode:0o600});held=true;}catch(e){if(e.code==='EEXIST')throw Error('已有恢复操作或遗留恢复锁,请先停止相关 Profile 并检查');th
  • 读取本地文件
    src/owned/owner-lock.js:13
    const text=await readFile(this.file,'utf8');if(text.length>4096)throw Error('锁状态无法确认,请保留原文件');const owner=JSON.parse(text);
  • 读取本地文件
    src/owned/owner-lock.js:16
    if(await readFile(this.file,'utf8')!==text)throw Error('锁已改变');await unlink(this.file);await this.acquire();
  • 删除本地文件
    src/owned/owner-lock.js:16
    if(await readFile(this.file,'utf8')!==text)throw Error('锁已改变');await unlink(this.file);await this.acquire();
  • 删除本地文件
    src/owned/owner-lock.js:17
    }finally{if(held)await unlink(gate);}
  • 读取本地文件
    src/owned/owner-lock.js:19
    async release(){await this.ready;if(!this.owned)return;try{const text=await readFile(this.file,'utf8');if(JSON.parse(text).token===this.token)await un
  • 删除本地文件
    src/owned/owner-lock.js:19
    async release(){await this.ready;if(!this.owned)return;try{const text=await readFile(this.file,'utf8');if(JSON.parse(text).token===this.token)await un
  • 写入本地文件
    src/owned/helper-manager.js:13
    await mkdir(join(this.home,'dsh-pet-company/runtime/user-data'),{recursive:true});this.phase='starting';this.reason='正在启动独立伴侣';
  • 读取本地文件
    src/owned/runtime-source.js:11
    async executable(){if(this.phase==='unverified')return null;const file=this.configuredExecutable??join(this.cache,'Electron.app/Contents/MacOS/Electro
  • 读取本地文件
    src/owned/runtime-source.js:14
    this.inflight=(async()=>{const archive='electron-v'+VERSION+'-darwin-arm64.zip',base='https://github.com/electron/electron/releases/download/v'+VERSIO
  • 写入本地文件
    src/owned/runtime-source.js:14
    this.inflight=(async()=>{const archive='electron-v'+VERSION+'-darwin-arm64.zip',base='https://github.com/electron/electron/releases/download/v'+VERSIO
  • 写入本地文件
    src/owned/runtime-source.js:14
    this.inflight=(async()=>{const archive='electron-v'+VERSION+'-darwin-arm64.zip',base='https://github.com/electron/electron/releases/download/v'+VERSIO
  • 删除本地文件递归
    src/owned/runtime-source.js:14
    this.inflight=(async()=>{const archive='electron-v'+VERSION+'-darwin-arm64.zip',base='https://github.com/electron/electron/releases/download/v'+VERSIO
  • 写入本地文件
    src/owned/runtime-source.js:14
    this.inflight=(async()=>{const archive='electron-v'+VERSION+'-darwin-arm64.zip',base='https://github.com/electron/electron/releases/download/v'+VERSIO
  • 发起网络请求
    src/bridge.js:29
    const state=await this.request('state');
  • 发起网络请求
    src/bridge.js:32
    const entries=await this.request('config');
  • 发起网络请求
    src/bridge.js:39
    broadcast(pet,text) { return this.request('broadcast?pet='+encodeURIComponent(pet),{text}); }
  • 发起网络请求
    src/bridge.js:41
    const entries=await this.request('config');
  • 发起网络请求
    src/bridge.js:43
    if (entry?.animations?.categories?.some(c=>c.actions?.includes('care'))) await this.request('anim?pet='+encodeURIComponent(pet),{name:'care'});
  • 读取本地文件
    src/owned/config.js:7
    const pack=JSON.parse(await readFile(new URL('../../pet/'+id+'-config.json',import.meta.url),'utf8')),a=validateAppearance(appearance);
  • 读取本地文件
    src/owned/assets.js:8
    const root=await realpath(new URL('../../pet/'+id+'-animation/',import.meta.url));
  • 读取本地文件
    src/owned/assets.js:10
    if(await realpath(file)!==root+'/'+name+'.webm')throw Error('素材必须是包内文件');
  • 读取本地文件
    src/owned/assets.js:11
    const info=await stat(file);if(!info.isFile()||info.size>16*1024*1024)throw Error('素材范围无效');
  • 读取本地文件
    src/owned/assets.js:12
    return {bytes:await readFile(file),type:'video/webm',file};
  • 发起网络请求
    src/client-entry.js:53
    var response = await fetch('/dsh-pet-company/' + path, { method: method || 'GET', credentials: 'same-origin', headers: body === undefined ? { Accept:
  • 发起网络请求
    src/owned/client.js:4
    const poll=async()=>{try{if(document.hidden){view?.destroy();view=null;signature='';return;}const res=await fetch('/pet-company-runtime/view?visible=1
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-home-paths@deepseek-ai/schemastery@deepseek-ai/dsh-client-connection
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 桌面宠物陪伴插件:轻量关怀提醒与 Q 版角色交互,开发中。角色美术另遵循 CC BY-NC 4.0。

README

由 DeepSeek 最新模型翻译生成
dsh-pet-company 给 dsh-pet 加上几句关心:坐久了起来走走,水杯空了续一下,深夜了早点收工。默认安静,其余时间陪你慢慢写代码。 银白龙娘、橙书娘与蓝鲸女仆三套 Q 版角色预览 美术来自 fywdy,为非官方同人,采用 CC BY-NC 4.0:非商用,须署名。橙色角色按用户选择使用正常比例的阅读动作待机。 当前为开发版。已在 DSH Desktop 2.0.17 / DSH 0.2.0-rc.2 的隔离 Profile 验证官方通信、设置保存、显式关怀和云朵气泡;透明浮窗与跨屏等边界单独记录。 最新范围见 兼容性。 用户反馈后的播放器修复已做三宠顺序原生抽查,采样中未复现周期变淡或橙发变扁;源动画仍有分帧感,跨应用焦点、点击穿透和多屏等边界尚未完整验收;取证与修复范围。 它会做什么 - 久坐、喝水、连续工作与深夜提醒,分别可以关闭。 - 默认安静档每滚动小时最多一句;支持频率、静默时段和「安静一小时」。 - 审批、提问等待期间不插话,缺少 dsh-pet 或目标宠物时显示原因并保持安静。 - 「设置 → 陪伴」保存配置;「试说一句(会显示气泡)」可检查目标宠物。 - 可选 dsh-pet 0.3.7 兼容补丁 提供三色云朵、轻回弹与原桌宠页的外观设置;安装本插件不会自动改写依赖。独立演示和验证见 反馈模块。
展开完整文档(README 剩余 1 节)
dsh-pet-company

给 dsh-pet 加上几句关心:坐久了起来走走,水杯空了续一下,深夜了早点收工。默认安静,其余时间陪你慢慢写代码。

银白龙娘、橙书娘与蓝鲸女仆三套 Q 版角色预览

美术来自 fywdy,为非官方同人,采用 CC BY-NC 4.0:非商用,须署名。橙色角色按用户选择使用正常比例的阅读动作待机。

当前为开发版。已在 DSH Desktop 2.0.17 / DSH 0.2.0-rc.2 的隔离 Profile 验证官方通信、设置保存、显式关怀和云朵气泡;透明浮窗与跨屏等边界单独记录。 最新范围见 兼容性。 用户反馈后的播放器修复已做三宠顺序原生抽查,采样中未复现周期变淡或橙发变扁;源动画仍有分帧感,跨应用焦点、点击穿透和多屏等边界尚未完整验收;取证与修复范围。

它会做什么

- 久坐、喝水、连续工作与深夜提醒,分别可以关闭。
- 默认安静档每滚动小时最多一句;支持频率、静默时段和「安静一小时」。
- 审批、提问等待期间不插话,缺少 dsh-pet 或目标宠物时显示原因并保持安静。
- 「设置 → 陪伴」保存配置;「试说一句(会显示气泡)」可检查目标宠物。
- 可选 dsh-pet 0.3.7 兼容补丁 提供三色云朵、轻回弹与原桌宠页的外观设置;安装本插件不会自动改写依赖。独立演示和验证见 反馈模块。

本插件负责关怀调度,宠物窗口、动作播放、大小、位置、走动与余额显示仍由 dsh-pet 负责。本插件不调用模型、不读取键盘输入,也不采集健康数据。

开始使用

先阅读 安装与卸载:Desktop 通过应用自己的插件管理入口;已验证的 Web 路线可使用独立的自定义 profile。需要在同一 profile 安装并启用 dsh-pet。

三套角色素材位于 pet/,需单独导入 dsh-pet。安装关怀插件不会自动改写已有桌宠;也可以先对默认 main 宠物说话。

| 角色 | 目标宠物 ID | 默认待机 |
| 银白龙娘 | companion-silver | 源 idle |
| 橙书娘 | companion-orange | 源 review,1030 ms 循环 |
| 蓝鲸女仆 | companion-tide | 源 idle |

「角色」选择台词语气,「宠物 ID」选择说话目标,两者独立。

开发检查

开发检查需要 Node.js 22.13+(播放器源码回归使用 Node 内置的 TypeScript 类型擦除;运行插件的 JS 下限仍见 package.json)。核心与组件契约测试不需要安装 npm 依赖:

npm test
npm run check
npm pack --dry-run --ignore-scripts --offline

CI 检查测试、JavaScript 语法和包清单,不启动 DSH、不生成美术、不等同于 Desktop 验收。重新生成素材需要另外准备美术工具,日常运行使用已生成的视频。

许可与来源

自有插件代码、测试和构建工具采用 MIT。随包角色美术另受 CC BY-NC 4.0 的非商用限制,整个素材包不能按纯 MIT 使用;总范围见 LICENSE。

fywdy 的图集、派生透明动画与预览为 CC BY-NC 4.0;上游脚本和 JSON 的 MIT 许可不覆盖美术。角色并非任何品牌的官方形象,也未获得品牌授权、赞助或背书。本项目不宣称这些素材为自行原创手绘。

完整署名、来源与修改说明见 第三方说明、美术许可 和 上游资料。市场收录准备见 市场说明。
预览分享卡片长什么样 ↓Oliveryfaso/dsh-pet-company
分享 · DeepSeek Harness Hub
Oliveryfaso/dsh-pet-company

让桌面宠物在久坐、缺水和深夜时轻声提醒你

这是你的仓库?认领条目

回到顶部