# cuyan.pet **Repository Path**: daolizhe/cuyan.pet ## Basic Information - **Project Name**: cuyan.pet - **Description**: 粗盐宠物 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-27 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cuyan Pet 一个模仿 Codex 宠物动作契约的 Electron 桌面宠物。它使用透明、置顶、无边框窗口显示在桌面上,支持移动、动作切换和投喂互动。当前默认宠物资源来自 `C:\Users\daoli\.codex\pets\paimo-2`。 ## 功能 - 透明置顶桌面宠物窗口 - 使用 Codex 宠物 atlas 精灵图播放 Paimo 动画 - 拖动宠物身体移动位置 - 右键菜单和托盘菜单切换常用动作、随机轮询、投喂、报时、计时器、写加班单、写日记、荐餐、报系统状态、显示/隐藏和退出 - 拖动窗口时按左右方向自动播放移动动作 - 检测微信桌面端未读标题信号并弹出“微信有新消息” - 待机时自动汇报系统状态,包括 CPU、内存、FPS、网络延迟、网速和电源状态 - 报时、提醒、荐餐、微信和系统状态气泡会根据屏幕空间自动选择上、下、左、右位置,避免被屏幕边缘裁切 - 支持点餐、写日记、护眼和夜间休息提醒 - 全局快捷键控制常用操作 ## 动作 应用内置 9 个动作状态: - `idle`:待机呼吸和眨眼 - `running-right`:向右移动 - `running-left`:向左移动 - `waving`:挥手 - `jumping`:跳跃 - `failed`:失败/沮丧 - `waiting`:等待用户输入 - `running`:任务运行中 - `review`:审查/查看 ## 安装和运行 ```powershell npm install npm start ``` 如果 Electron 二进制下载较慢,可以先设置镜像后再安装: ```powershell $env:ELECTRON_MIRROR='https://npmmirror.com/mirrors/electron/' npm install ``` ## 脚本 ```powershell npm start ``` 启动桌面宠物。 ```powershell npm run check ``` 检查主进程、预加载脚本和渲染脚本的 JavaScript 语法。 ## 操作 - 拖动宠物身体可以移动窗口。 - 向左拖动会播放向左移动动作,向右拖动会播放向右移动动作;按住期间会保持该动作,松开后恢复原动作,方向按钮默认隐藏。 - 底部悬浮按钮栏永久隐藏,所有操作都放在右键菜单和托盘菜单里。 - “随机轮询”会随机播放动作,一个动作周期结束后自动切到下一个随机动作。 - 右键菜单和托盘菜单都可以切换动作;向左移动和向右移动只在拖动时自动触发,不显示在菜单中。 - 双击宠物命中区域会报时。 - 右键宠物本体打开系统菜单,透明空白区域会穿透到后面的窗口。 - 点击菜单里的“投喂食物”,或按 `Ctrl+Alt+F` 可以投喂。 - 点击菜单里的“报时”会在宠物上方弹出当前本地时间。 - 点击菜单里的“计时器”会弹出一个从 `00:00` 开始每秒递增的计时器,点击右上角 `x` 会关闭、停止并重置计时。 - 点击菜单里的“写加班单”或“写日记”会弹出对应提醒,点击右上角 `x` 关闭。 - 点击菜单里的“提醒配置 > 打开配置文件”可以修改定点提醒;保存后点“提醒配置 > 重新加载配置”立即生效。 - 点击菜单里的“荐餐”会从本地内置的 1000 道菜里,根据当前时间随机推荐午餐、晚餐或通用餐食。 - 点击菜单里的“报系统状态”会弹出当前 CPU、内存、FPS、网络延迟、上下行网速、功耗/电池信息。 - 宠物处于 `idle` 待机状态 30 秒后会自动报一次系统状态;持续待机时每 10 分钟自动更新一次。 - 长消息会显示更久,气泡空间不足时会自动移动到宠物侧边或下方,并临时扩大窗口承载区域防止内容被裁切。 - 每到整点会自动弹出一次当前本地时间。 - 每天 11:05 会弹出“点餐”提醒。 - 每天 17:55 和 19:55 会弹出“写日记”提醒;如果应用在 19:55 到 20:30 之间启动,也会立即显示写日记提醒。 - 每 6 分钟会弹出一次眼睛休息提醒。 - 每天 23:00 后到次日 06:00 前,每 5 分钟会弹出一次休息提醒。 - 微信桌面端窗口标题出现未读数或新消息信号时,会在宠物上方弹出提醒;信号持续存在时最多每 30 秒提醒一次。 - 全局快捷键: - `Ctrl+Alt+P`:切换下一个动作 - `Ctrl+Alt+O`:显示/隐藏宠物 - `Ctrl+Alt+F`:投喂食物 ## 提醒配置 首次打开“提醒配置 > 打开配置文件”时会自动创建 `reminders.json`。格式如下: ```json { "reminders": [ { "title": "点餐", "start": "11:05" }, { "title": "写日记", "start": "17:55" }, { "title": "写日记", "start": "19:55", "end": "20:30" } ] } ``` - `title` 是弹出的提醒文字。 - `start` 是每天触发时间,格式为 `HH:mm`。 - `end` 可选;应用在 `start` 到 `end` 之间启动时会立即显示该提醒。 - 删除某一项即可关闭对应提醒;保存后需要从菜单重新加载配置。 ## 项目结构 ```text . ├── index.html ├── package.json ├── assets │ └── pets │ └── paimo-2 # 导入的 Codex 宠物包 ├── src │ ├── main.js # Electron 主进程:窗口、托盘、快捷键、系统状态 │ ├── preload.js # 安全暴露给页面的 IPC API │ ├── renderer.js # 页面交互:动作、投喂、拖拽、提醒气泡 │ └── styles.css # 宠物造型和动画 └── README.md ``` ## 开发备注 - 宠物动作保持 Codex 宠物的 9 状态契约。 - 投喂是临时叠加互动,不会新增动作状态。 - 窗口只作为透明承载层,宠物大小固定。 - 微信提醒基于 Windows 上 WeChat/Weixin/WXWork 进程的窗口标题信号,不读取聊天内容。