住在窗口里的像素伙伴,陪你专注与休息
30.7/100
综合分
1
GitHub 星标
61
npm 周下载
—/5
用户评分
数据截至 2026/10/9 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-plugin-infj-petnpm 源 · dsh-plugin-infj-pet 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · ui
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 25 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-plugin-infj-pet @ 1.0.9
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 04:29:14
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 陪伴专注与休息
README
由 DeepSeek 最新模型翻译生成INFJ Sage · 老绿
一个像素风的 INFJ-A 伙伴,住在你的 DeepSeek Harness 窗口里。
只是来陪 Qiangwei 的。
这是绿老头,不是 brother:陪你专注、等你决定,也陪你安静地打个盹。
这位智者不是进度条。它会读你的智能体正在做什么——干活、等你、休息——然后用一个安静的小反应回应,很符合它的性格。六种语义状态,取自一张九宫格动画精灵图,每个姿势都表达参考卡片上 INFJ 描述的不同侧面。
你工作时,它坐着看书,翻动书页。只有你把它抱起来,它才会跑。
\---
它会做什么
|姿势|什么时候出现|表达的特质|
|静观 Observing|什么都没在跑|独处即充电 — recharged alone|
|阅读 Reading|至少有一个会话在干活,或者刚看完一轮|先看模式,再看任务 — patterns before tasks|
|共情 Empathy|有会话在等你的回答|先接住情绪 — feelings first|
|充电 Recharging|空闲超过打盹延迟|独处即充电 — the quiet half|
|受挫 Setback|一轮以报错结束|过载时向内自责 — overload turns inward|
|带我去哪儿 Carried|你拖着它的时候|理想主义的续航 — carried, not chasing|
展开完整文档(README 剩余 1 节)
INFJ Sage · 老绿
一个像素风的 INFJ-A 伙伴,住在你的 DeepSeek Harness 窗口里。
只是来陪 Qiangwei 的。
这是绿老头,不是 brother:陪你专注、等你决定,也陪你安静地打个盹。
这位智者不是进度条。它会读你的智能体正在做什么——干活、等你、休息——然后用一个安静的小反应回应,很符合它的性格。六种语义状态,取自一张九宫格动画精灵图,每个姿势都表达参考卡片上 INFJ 描述的不同侧面。
你工作时,它坐着看书,翻动书页。只有你把它抱起来,它才会跑。
\---
它会做什么
|姿势|什么时候出现|表达的特质|
|静观 Observing|什么都没在跑|独处即充电 — recharged alone|
|阅读 Reading|至少有一个会话在干活,或者刚看完一轮|先看模式,再看任务 — patterns before tasks|
|共情 Empathy|有会话在等你的回答|先接住情绪 — feelings first|
|充电 Recharging|空闲超过打盹延迟|独处即充电 — the quiet half|
|受挫 Setback|一轮以报错结束|过载时向内自责 — overload turns inward|
|带我去哪儿 Carried|你拖着它的时候|理想主义的续航 — carried, not chasing|
围绕这个核心:
* 点一下智者,它会说一句符合性格的话。
* 拖它到任何地方;它会吸附到边缘,并记住你把它放在哪儿。
* 你工作时它在看书——摊开的书,眼睛跟着书页走,安静地翻页。它从不自己来回踱步。
* 只有被抱着时才跑——把它抱起来,它就朝你带的方向跑,到屏幕边缘会转身,所以看起来永远不会像要跑出窗口。
* 右键打开设置:会话范围、大小、打盹延迟、配色、动效、空闲张望、自动提示、重置位置、收起,还有一个特质面板。
* 空闲张望——休息时,智者会用精灵图里画好的十六个头像姿势四处看看。
* 跟随 DSH 的语言、明暗主题和减弱动效偏好。
* 安装无需构建步骤,没有运行时依赖,不发起网络请求,不调用模型。
这是窗口内的伙伴,不是操作系统桌面悬浮层。
引用的话
有几条阅读台词是短引用,在界面里标注在所属台词下方——气泡里注明书名,这一页记录完整出处。它们都很短,逐条标注,用在一个非商业的伙伴里;项目不对它们主张任何权利。
|台词|出处|
|如果我进来,走进你独处的时间……我只是来给你的窗上装好玻璃,冬天的风就要来了。|《务虚笔记》 — named by the project owner; edition not yet pinned|
|死是一件不必急于求成的事。|《我与地坛》|
|太阳,他每时每刻都是夕阳也都是旭日。|《我与地坛》|
|我常觉得这中间有着宿命的味道。|《我与地坛》|
智者引用的是书名,不是作者的名字:读者要找这段话,需要的是书名,这样标注也让它停留在事实上,而不是署名。凡是无法对照已出版版本核对的句子,本项目都会如实说明——上表第一行就是这样记录的,而不是当作已确认的内容呈现。其余状态只引用标题;除这里列出的短句外,不转载任何段落。
\---
安装
1\. 从 npm 安装
包页面:npm 上的 dsh-plugin-infj-pet。
在 DSH 的插件安装页面(侧边栏 → Plugins)输入包名:
dsh-plugin-infj-pet
要锁定这个版本,用 dsh-plugin-infj-pet@1.0.1。
2\. 从 GitHub 安装
github:CN-Mg/dsh\_infj\_pet
或者指定 tag:
github:CN-Mg/dsh\_infj\_pet#v1.0.1
提交的源码里已经包含构建好的客户端 bundle,所以从 Git 安装不需要构建步骤。
3\. 从本地文件夹安装
把安装器指向这个目录的绝对路径,或者先打包:
npm pack --ignore-scripts --pack-destination artifacts
启用插件后,完全退出 DSH 再重新打开。只关窗口可能不会退出应用,而浏览器 bundle 只在启动时加载。
卸载方法:在 Plugins 页面禁用这一行,然后卸载包。
\---
使用方法
* 点击 —— 说一句台词,每次都不一样。
* 拖动 —— 换个位置;松手时靠近某条边,就会吸附到那条边上。
* 右键 —— 设置和姿势预览。
* 键盘 —— Tab 聚焦到贤者,Enter/Space 戳一下,Esc 关闭。
* 会话范围 —— All sessions 统计当前 Host 上的普通会话;This session 只跟随你正在看的那个会话。子代理会话永远不算作你的会话,所以一次委派出去的任务爆发不会看起来像你自己的工作量。
* 打盹延迟 —— 贤者保持安静多久才打瞌睡。
* 尺寸 —— 精灵图自身像素的 1×、2× 或 3×。每个尺寸都是整数倍,因为像素画按小数比例重采样会糊成一团。
完成从不靠猜
庆祝跳跃只在贤者确实看着任务运行、并且工作转为下降沿时触发。页面加载进一个已经空闲的 Host、连接断开,或者会话直接消失,都不会产生庆祝。取消和失败的回合不算成功。
\---
隐私与运行时边界
* 只读取会话身份和状态 —— 绝不读取消息内容、工具参数或对话记录。
* 不发起模型调用、不开端口、不发遥测,也不替你回答任何审批。
* 使用 DSH 已有的认证连接。
* 精灵图内嵌在 bundle 里,所以插件完全不发起网络请求。
* 偏好设置存在 localStorage 的 dsh-plugin-infj-pet:v1 下。
* 只写入自己的 DOM 节点和自己拥有的一个 元素。
* 不修改 DSH 本身,也不替换任何官方组件。
\---
兼容性
基于 DSH Desktop 0.2.x 开发,使用官方文档中的客户端插件契约:
* 客户端 bundle 通过 window.\_\_ModuleLoader\_\_.load({ id, factory }) 注册
* 占用一个 shell.overlay 插槽(id: infj-pet,order: 92)
* 注入的 shares:slots、sessions、connection、locale
* 平台模块表里只依赖 react 和 react-dom/client
Host 这一半故意不声明 inject。Cordis 的 inject 条目指定插件要等待的服务,只要该服务没提供,条目就一直挂起——所以一个永远解析不了的 inject 会让整个插件(包括浏览器那一半)都无法激活。可选的 agents 注册表改用 ctx.get('agents') 读取,缺失时返回 undefined,代价只是失去粗略的 isSubagent 提示。
DSH 迭代很快。如果未来版本改了插槽或 store 契约,sage 会安静地失败:退回到非响应式姿态,而不是把异常抛进你的会话。
\---
开发
需要 Node.js 20 或更高版本。没有依赖要安装。
npm run verify # structural checks plus 43 tests
npm test # the test suite alone
npm run check # manifest, sheet, icon, bundle-drift and locale checks
npm run build # regenerate the index, icons, bundle and offline preview
美术资源是怎么接起来的
角色是一张 PNG 精灵图:assets/sage.png,1536×2288,8×11 网格,每格 192×208。第 0–8 行是动画,第 9–10 行是十六个头像姿态,用于视线。这套布局没有写两遍:
assets/provenance/sage-validation.json the sheet's own validation report
│
├─ tools/build-sage-index.mjs ─→ assets/sage-index.json frames + gaze cells
│ assets/sage.png.b64 payload for the bundle
├─ tools/build-icons.mjs ─→ assets/icon.png plugin-manager icon
│ assets/preview.png the contact sheet above
└─ tools/build-bundle.mjs ─→ lib/client.js the shipped bundle
tools/build-sage-index.mjs 用 tools/png.mjs 测量精灵图——一个零依赖的 PNG 读取器——如果文件的 SHA-256 与验证报告里记录的哈希不符,就拒绝运行。插件靠这个证明自己发布的正是通过验证的那份美术资源。130 MB 的生成工作区不对外发布;PROVENANCE.md 说明了保留了什么、为什么。
bundle 是生成的
lib/client.js 在运行时不能用 ES import;浏览器模块加载器要的是一个自包含的 lazy-CJS 工厂。所以 bundle 由 lib/src/ 里的纯文本片段拼装而成:
lib/src/order.json the concatenation order
lib/src/header.mjs bundle header and loader registration
lib/src/constants.mjs sizes, traits, dialogue, UI strings
lib/src/helpers.mjs clamp/pick/locale/store/viewport 工具函数 lib/src/statePlan.mjs 语义状态 -> 精灵动画,以及时间参数 lib/src/artwork.mjs 图集查找、注视计算、帧几何(模板化) lib/src/sprite.mjs 运动策略与帧计时器 lib/src/behaviour.mjs 纯投影与状态转换机 lib/src/styles.mjs 样式表与生成的关键帧 lib/src/fallback.mjs 槽位注册表缺失时的直接挂载路径 lib/src/preferences.mjs 持久化偏好读取器 lib/src/componentHeader.mjs、companionHead.mjs、companionBody.mjs、panel.mjs lib/src/plugin.mjs Cordis 插件导出
改完这些文件,再跑 npm run bundle。tests/bundle.test.mjs 会重新构建 bundle,一旦 lib/client.js 与它的源文件不一致就报错,所以提交的文件永远不会漂移。
其他目录结构
lib/index.js 宿主侧:只读的回合边界监听器 cordis.patch.yml 只插入一行插件记录 locale/ 插件管理器的标题与描述 assets/ 图集、图集索引、图标、联系表 assets/provenance/ 构建用来校验图集的验证报告 PROVENANCE.md 公布了哪些美术来源,哪些没有公布 tools/ 生成器、检查器、预览构建器、PNG 读取器 tests/ Node test-runner 测试套件,带一个小型 React 测试框架
tools/sage\_contact.py 和 tools/sage\_measure.py 会把图集栅格化,方便在 DSH 之外审阅;它们依赖 Pillow,只是开发辅助工具。
设计说明
* 优雅降级。 槽位注册表缺失时回退到直接挂载 DOM;store 钩子抛错时,留下的伙伴虽然静止,但依然存在。
* 绝不捏造成功。 状态机要求先观察到上升沿,下降沿才能庆祝。
* 单一美术来源。 帧、注视单元格、图标和 bundle 全部从图集派生,每一处派生都在 CI 里重新校验。
* 只用整数像素。 每个帧偏移和缩放系数都是整数,并有测试断言,因为这样才能让画面保持锐利。
* 管好自己的节点。 除了插件自己的 style 元素和带命名空间的存储键,不做任何全局改动。
\---
致谢与许可
* 代码: MIT。
* 美术: CC BY-NC-SA 4.0 —— 可非商业性分享和改编,需署名;与代码许可分开。
* 角色由内置图像生成器根据提供的 INFJ 参考卡生成;Sage/README.md 记录了这只宠物的来源和稳定 id,Sage/prompts/ 存放生产用的提示词。
* 不打包任何字体;所有文本都使用平台 UI 字体栈。
* INFJ 和 Advocate / Counselor 是流行心理学词汇,不是临床工具。这个插件只是装饰,不评估任何人,也不隶属于任何性格测评出版商。
这是个人项目,不是 DeepSeek 官方产品。它不不代表 DeepSeek 的观点或认可。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
CN-Mg/dsh_infj_pet
住在窗口里的像素伙伴,陪你专注与休息
相关插件 · UI / 主题
破甲增强版JeffKeeping/dsh-purge-plus
dsh-purge 的非官方分支fork:适配 DeepSeek Harness 0.2.1-rc.2、破甲内核…
★ 387已汉化DeepSeek 客户端
71.9
无代码业务系统平台nocobase/nocobase
NocoBase 是什么
★ 24,804已汉化DSH
71.8
1Panel 服务器面板1Panel-dev/1Panel
全球 250 万+ 自托管用户共同喜爱。
★ 37,350已汉化DSH
71.5
工作状态行动态ccch1mneyyy/working-activity
作者:chimney@ccch1mneyyy。社区项目,非 DeepSeek 官方项目。
★ 664已汉化DSH
71.2
多模型配置管家farion1231/cc-switch
跨平台桌面一体化助手,支持 Claude Code、Codex、OpenCode、DeepSeek Harness 等工具,唯一官网 ccswitch.io
★ 151,506已汉化DSH
71.1
AI 矢量设计工具ZSeven-W/openpencil
全球首个 AI 原生开源矢量设计工具。
★ 7,027已汉化DSH
71.1
这是你的仓库?认领条目