让大肥鱼在像素小屋里自主生活,随时观察她的日常
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add bearyluo/dsh-dafeiyu-room该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 30 处,展示前 30 条)
- 发起网络请求lib/client.js:86
useEffect(()=>{const controller=new AbortController();fetch(base+'settings',{signal:controller.signal}).then(r=>{if(!r.ok)throw Error('无法读取小屋设置');retu - 发起网络请求lib/client.js:89
try{const response=await fetch(base+'locations?q='+encodeURIComponent(query),{signal:AbortSignal.timeout(15000)}),result=await response.json();if(!res - 发起网络请求lib/client.js:94
const response=await fetch(base+'settings',{method:'POST',headers:{'Content-Type':'application/json','X-Room-Settings-Token':settings.csrfToken},body: - 读取本地文件bin/room-viewer.mjs:19
if(existsSync(configPath)&&!args.includes('--rotate-key'))token=JSON.parse(readFileSync(configPath,'utf8')).token; - 读取本地文件bin/room-viewer.mjs:19
if(existsSync(configPath)&&!args.includes('--rotate-key'))token=JSON.parse(readFileSync(configPath,'utf8')).token; - 写入本地文件bin/room-viewer.mjs:20
if(!/^[ -]{43}$/.test(token||'')){token=randomBytes(32).toString('base64url');mkdirSync(dirname(configPath),{recursive:true});writeFileSync(configPat - 写入本地文件bin/room-viewer.mjs:20
if(!/^[ -]{43}$/.test(token||'')){token=randomBytes(32).toString('base64url');mkdirSync(dirname(configPath),{recursive:true});writeFileSync(configPat - 读取本地文件bin/room-public-viewer.mjs:15
let config=existsSync(configPath)?JSON.parse(readFileSync(configPath,'utf8')):{}; - 读取本地文件bin/room-public-viewer.mjs:15
let config=existsSync(configPath)?JSON.parse(readFileSync(configPath,'utf8')):{}; - 写入本地文件bin/room-public-viewer.mjs:16
if(!/^[ -]{43}$/.test(config.token||'')){config.token=randomBytes(32).toString('base64url');mkdirSync(dirname(configPath),{recursive:true});writeFile - 写入本地文件bin/room-public-viewer.mjs:16
if(!/^[ -]{43}$/.test(config.token||'')){config.token=randomBytes(32).toString('base64url');mkdirSync(dirname(configPath),{recursive:true});writeFile - 执行外部命令来自配置/变量bin/room-public-viewer.mjs:22
const child=spawn(command,childArgs,{windowsHide:true,stdio:['ignore','pipe','pipe']}); - 写入本地文件bin/room-public-viewer.mjs:27
writeFileSync(join(dirname(configPath),'public-access.json'),JSON.stringify({origin,pairing,provider,startedAt:new Date().toISOString(),temporary:true - 读取本地文件src/runtime.js:8
const pluginVersion=JSON.parse(readFileSync(new URL('../package.json',import.meta.url),'utf8')).version; - 写入本地文件src/runtime.js:18
mkdirSync(dirname(statePath),{recursive:true});this.lockPath=statePath+'.lock'; - 读取本地文件src/runtime.js:19
if(existsSync(this.lockPath)){ - 读取本地文件src/runtime.js:20
const pid=Number(readFileSync(this.lockPath,'utf8')); - 删除本地文件src/runtime.js:22
if(alive)throw Error('另一个宿主正在使用这份小屋状态');unlinkSync(this.lockPath); - 写入本地文件src/runtime.js:24
const fd=openSync(this.lockPath,'wx');writeFileSync(fd,String(process.pid));closeSync(fd); - 读取本地文件src/runtime.js:27
const saved=statePath&&existsSync(statePath)?JSON.parse(readFileSync(statePath,'utf8')):null; - 读取本地文件src/runtime.js:27
const saved=statePath&&existsSync(statePath)?JSON.parse(readFileSync(statePath,'utf8')):null; - 写入本地文件src/runtime.js:102
save(){if(!this.statePath)return;this.advance();const temp=this.statePath+'.tmp';writeFileSync(temp,JSON.stringify({schema:1,body:this.sim.snapshot(th - 写入本地文件src/runtime.js:102
save(){if(!this.statePath)return;this.advance();const temp=this.statePath+'.tmp';writeFileSync(temp,JSON.stringify({schema:1,body:this.sim.snapshot(th - 读取本地文件src/runtime.js:103
close(){this.weather?.close();if(this.lockPath&&existsSync(this.lockPath))unlinkSync(this.lockPath);this.lockPath=null;} - 删除本地文件src/runtime.js:103
close(){this.weather?.close();if(this.lockPath&&existsSync(this.lockPath))unlinkSync(this.lockPath);this.lockPath=null;} - 读取本地文件src/http.js:41
const bytes=readFileSync(join(web,relative)); - 读取本地文件src/mobile-viewer.js:39
try{const bytes=readFileSync(apkPath);res.writeHead(200,{'Content-Type':'application/vnd.android.package-archive','Content-Disposition':'attachment; f - 读取本地文件src/mobile-viewer.js:49
try{const bytes=readFileSync(join(web,relative));res.writeHead(200,{'Content-Type':relative.endsWith('.png')?'image/png':relative.endsWith('.html')?'t - 发起网络请求src/mobile-viewer.js:62
const response=await fetch(url,{redirect:'error',signal:AbortSignal.timeout(4000)}); - 发起网络请求web/camera.js:181
const started=Date.now(),response=await fetch('./state',{cache:'no-store',headers:token?{'Authorization':'Bearer '+token}:{},signal:AbortSignal.timeou
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools@deepseek-ai/dsh-llm给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
大肥鱼 / DeepSeek Harness 像素小屋插件与安卓悬浮伴侣 · Preview
README
由 DeepSeek 最新模型翻译生成大肥鱼的小屋 · Preview
让原来的大肥鱼在像素小屋里生活。你继续在宿主聊天,她自主决定坐床沿、看手机、吃喝、读书、整理、烤火或睡觉;小屋窗口是可以拖动、缩放的观察画面。
小屋与庭院的桌面观察画面
当前版本:0.6.4-preview.1,公开测试预览版。 下载安装包 · 反馈问题
可以做什么
- 主模型通过 room_observe 和 room_plan 安排屋内生活。本地引擎负责寻路、坐卧、家具遮挡、道具和持续动画。
- DSH 里有可拖动的小房子入口,展开为可移动、缩放的摄像头浮窗。
- 时间按配置时区同步;天气按用户选择的城市查询。庭院有昼夜、雨、雪和雾等表现。首次示例城市为北京。
- 原宿主的工作工具运行时,她会去电脑前;闹钟镜像原宿主投递到当前会话的定时任务。
- 安卓伴侣提供小屋预览和其他应用上方的浮窗。同一局域网连接,手机无需安装 DSH。
- 主会话离线或断线时显示床上睡姿,标记为「本地休息画面」;重连后恢复真实状态。这个显示不会改写模型计划。
第一版以屋内生活为范围;商店、种地、钓鱼和完整户外世界尚未实现。
兼容范围
宿主接口按 DeepSeek Harness SDK 0.2.1-rc.5 开发,目标为 QCYTSN/dsh-dafeiyu。源码使用 Node.js 24.9 或以上。
展开完整文档(README 剩余 1 节)
大肥鱼的小屋 · Preview 让原来的大肥鱼在像素小屋里生活。你继续在宿主聊天,她自主决定坐床沿、看手机、吃喝、读书、整理、烤火或睡觉;小屋窗口是可以拖动、缩放的观察画面。 小屋与庭院的桌面观察画面 当前版本:0.6.4-preview.1,公开测试预览版。 下载安装包 · 反馈问题 可以做什么 - 主模型通过 room_observe 和 room_plan 安排屋内生活。本地引擎负责寻路、坐卧、家具遮挡、道具和持续动画。 - DSH 里有可拖动的小房子入口,展开为可移动、缩放的摄像头浮窗。 - 时间按配置时区同步;天气按用户选择的城市查询。庭院有昼夜、雨、雪和雾等表现。首次示例城市为北京。 - 原宿主的工作工具运行时,她会去电脑前;闹钟镜像原宿主投递到当前会话的定时任务。 - 安卓伴侣提供小屋预览和其他应用上方的浮窗。同一局域网连接,手机无需安装 DSH。 - 主会话离线或断线时显示床上睡姿,标记为「本地休息画面」;重连后恢复真实状态。这个显示不会改写模型计划。 第一版以屋内生活为范围;商店、种地、钓鱼和完整户外世界尚未实现。 兼容范围 宿主接口按 DeepSeek Harness SDK 0.2.1-rc.5 开发,目标为 QCYTSN/dsh-dafeiyu。源码使用 Node.js 24.9 或以上。CLI 的 npm 包入口为 @deepseek-ai/dsh(本版对应 0.2.1-rc.5),而不是 @deepseek-ai/dsh-cli。 插件沿用原主 Agent、原聊天、人格和记忆,通过独立的环境上下文和身体工具接入。它不配置第二个模型客户端。其他性格、记忆和思考插件可以共同安装,但尚未逐一验证第三方分支;保留相同服务接口与客户端插槽的分支才有接入基础。宿主的记忆总结插件仍可能记录小屋通知和工具调用。 安卓要求 Android 8 / API 26 以上,目标 API 35;系统悬浮权限、ROM 后台限制和横竖屏表现需要真机验收。iOS 没有本项目的跨应用浮窗,可使用手机网页。 电脑安装 1. 在 Releases 下载 dsh-dafeiyu-room-0.6.4-preview.1.tgz。它是宿主插件;APK 是手机伴侣,二者用途不同。 2. 使用宿主 CLI 安装到所用的 profile。以下以桌面端为例: dsh plugin --profile desktop add "D:/Downloads/dsh-dafeiyu-room-0.6.4-preview.1.tgz" dsh 需为该宿主版本提供的 CLI;若不在 PATH,请使用宿主安装目录的命令入口。浏览器客户端使用对应的 web profile。 3. 通过宿主插件管理重载,或正常关闭后重新打开 DSH。进入原聊天,小房子入口会出现在页面上。 城市与时区在 DSH 插件设置里修改。天气来自 Open-Meteo,数据按 CC BY 4.0 署名使用;默认免费 API 适用于其非商业服务条款,商业部署需自行配置符合服务条款的方案。空闲生活默认:用户消息后空闲 2 分钟、两次决策至少相隔 10 分钟、每天最多 12 次自主唤醒;睡眠计划未结束时不会被日常通知唤醒。一次唤醒可能包含多个模型步骤。 安卓浮窗:同一 Wi-Fi 1. 为宿主插件配置本机观察端口 viewerPort: 8796。保留宿主原有配置结构,在此插件的 config 中加入该项并重载。可参考 配置示例。 2. 在电脑准备一个独立目录,安装下载的插件包,再启动只读中继: mkdir cabin-viewer cd cabin-viewer npm init -y npm install --ignore-scripts "D:/Downloads/dsh-dafeiyu-room-0.6.4-preview.1.tgz" npx --no-install dsh-room-viewer --lan --apk "D:/Downloads/dafeiyu-room-android-0.6.4-preview.1.apk" 3. 手机与电脑连接同一 Wi-Fi,打开终端打印的完整连接。下载安装 APK,再回到网页点「打开安卓悬浮窗」。在应用内保存连接、允许悬浮权限,点击「开启悬浮小屋」。 首次配对后保存在应用私有存储,后续直接打开应用即可。拖动小房子移动,点一下展开;拖动画面移动浮窗,右下角缩放,右上角放大或收起。通知栏或应用内可关闭。 电脑、DSH 和中继服务需要保持运行才能同步。安装页能打开但人物离线时,先检查 DSH 的原会话与本机 8796 观察端口。多网卡可用 --host 指定本机私有 IPv4。 完整连接包含只读凭证,请勿贴到公开 Issue。 普通 HTTP 只适合可信局域网;应用只接受字面 RFC1918 私有 IPv4 的 HTTP,以及有效 HTTPS 配对。没有自动开启的公网入口。故障处理见 连接说明。 Token 与数据 看画面、播放动画、离线睡姿和天气轮询不调用模型。额外模型用量来自环境说明、状态、两个工具,以及空闲自主决策。 按 DeepSeek 官方 V4 分词器对合成状态离线测算,普通工具模式下约增加 1,500 输入 Token / 模型请求。原输入为 5,000 / 10,000 / 20,000 Token 时,对应约 30% / 15% / 7.5% 输入增幅。它不是全天总费用增幅:自主唤醒会携带宿主上下文、工具回合可能继续请求,缓存和输出也影响费用。详见 测算方法。 房间状态保存在当前用户的 .dsh/storages/dsh-dafeiyu-room/。手机中继只输出动画与必要生活状态,移除会话和工具调用编号、闹钟任务标题及模型错误详情。原宿主权限仍由原宿主管理。 开发与构建 npm ci --ignore-scripts npm test npm pack --ignore-scripts 不调用模型的本地验收:npm run preview;终端打印只监听回环地址的画面入口。完整安卓构建和签名说明见 构建文档。本仓库保留预览与动作验收脚本;它们不包含在宿主 npm 包中。 预览版边界 - 已运行宿主集成、状态隔离、HTTP、动画、生活、天气与离线显示的自动检查,以及安卓配对/资源检查和 APK 签名校验。 - 安卓原生首页与系统浮窗尚未完成完整真机回归;欢迎反馈 S15 等设备的权限、拖动、旋转和后台表现。 - 像素姿态、家具接触和遮挡仍在打磨;此版不承诺所有动作细节最终定稿。 - 其他 SDK 版本、记忆/思考分支未逐一通过兼容性验收。 - SDK 0.2.1-rc.5 自身固定了旧 Zod。本仓库开发树已修复,但装入宿主后并不替宿主升级该依赖;详见依赖说明。 - 预览 APK 使用本地开发签名,私钥不在仓库中;自行构建的签名可能不同。 请在反馈中提供宿主版本、插件版本、安卓型号、操作步骤和去掉凭证的截图。查看更新记录 许可与素材 代码使用 Apache-2.0。大肥鱼形象参考的 MIT 许可、生成素材来源和哈希见 第三方说明 与 素材记录。没有打包《星露谷物语》原游戏文件;本项目与其官方无关联。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
bearyluo/dsh-dafeiyu-room
让大肥鱼在像素小屋里自主生活,随时观察她的日常
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这是你的仓库?认领条目