# AiPet **Repository Path**: PYDCry/AiPet ## Basic Information - **Project Name**: AiPet - **Description**: 使用kimi2.6开发的cli桌面精灵 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-03 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🐾 Kimi Pet > 为 Kimi Code CLI 用户打造的桌面陪伴精灵 ![Difa](img/difa.png) ## 项目简介 **Kimi Pet** 是一款受 Codex Pet 启发的桌面悬浮精灵,以像素风格的「蒂法」形象呈现。她能实时感知 Kimi CLI 的任务状态,在需要审批、任务完成或出错时主动向你发出提示。 ## 核心特性 - 🎭 **桌面悬浮** — 无边框透明窗口,始终置顶,不干扰工作 - 📡 **状态感知** — 实时监控 Kimi CLI 会话、任务、审批状态 - ⏱️ **快速审批检测** — D+G 混合策略,FAST 工具 0.5~1.5 秒、Shell 3~6 秒识别审批 - 🔔 **主动提示** — 审批请求、任务完成、执行错误时主动唤起注意 - ✨ **像素动画** — 多状态动画 + 粒子特效,情绪表达丰富 - 🖱️ **自由拖拽** — 可拖动到屏幕任意位置,支持边缘吸附 - ⚙️ **可配置** — 缩放、透明度、通知、音效等均可调节 - 🔔 **系统托盘** — 右下角托盘图标,右键菜单支持显示/隐藏、设置、重置位置、退出 - 📦 **一键打包** — 支持打包为 Windows 安装包 (.exe) 和免安装绿色版 (.zip) ## 技术栈 | 层级 | 技术 | |------|------| | 前端展示 | Electron 36 + Canvas 2D + CSS | | 状态监控 | Python 3.11 + websockets + psutil | | 通信 | WebSocket (本地 39271 端口) | | Win32 API | koffi (强制恢复无边框窗口样式) | ## 快速开始 ### 环境要求 - Node.js 18+ - Python 3.11+ - Windows 10/11 ### 安装依赖 ```bash # Node.js 依赖 npm install # Python 依赖(已创建虚拟环境) .\.venv\Scripts\pip install websockets psutil oracledb ``` ### 开发运行 ```bash # 方式 1:同时启动前后端 npm run dev # 方式 2:分别启动 # 终端 1:Python 监控服务 .\.venv\Scripts\python src\monitor\kimimon.py # 终端 2:Electron 前端 npx electron . ``` ### 快捷键 | 快捷键 | 功能 | |--------|------| | `Ctrl + Shift + K` | 显示/隐藏精灵 | | `Ctrl + Shift + 1~9, 0` | 调试切换精灵状态 | ## 精灵状态 | 状态 | 触发条件 | 视觉效果 | |------|----------|----------| | `idle` | 空闲 | 自然呼吸浮动 | | `thinking` | AI 推理中 | 单图 + 思考氛围 | | `typing` | 代码生成 / 工具执行中 | 模拟打字动态 | | `waiting` | 等待用户审批 | 脉冲放大 + 金色 `!` | | `success` | 任务完成 | 跳跃 + ✨ 星星粒子 | | `error` | 执行错误 | 摇头 + ✖️ 粒子 | | `sleep` | 长时间空闲 | 半透明 + `Zzz` 飘起 | | `running` | 任务推进中 | 动态跑动姿态 | ## 项目结构 ``` AiPet/ ├── product/ # 打包产物(免安装绿色版) │ └── Kimi Pet.zip ├── dist2/ # electron-builder 输出目录 │ ├── Kimi Pet Setup 1.0.0.exe # 安装包 │ └── win-unpacked/ # 免安装版目录 ├── docs/ │ ├── DESIGN.md # 设计文档 │ └── ASSETS.md # 资源文档 ├── assets/ │ ├── sprites/ # 精灵动画图集 │ └── tray-icon.png # 托盘图标 ├── src/ │ ├── main/ # Electron 主进程 │ │ ├── main.js │ │ ├── windowManager.js │ │ └── trayManager.js │ ├── renderer/ # Electron 渲染进程 │ │ ├── index.html │ │ ├── renderer.js │ │ ├── spriteEngine.js │ │ ├── particleSystem.js │ │ ├── bubbleUI.js │ │ └── style.css │ └── monitor/ # Python 监控服务 │ ├── kimimon.py # 主入口 & 状态机 │ ├── log_reader.py # wire.jsonl 读取 & D+G 审批检测 │ ├── websocket_server.py# WebSocket 广播 │ ├── state_watcher.py # Kimi CLI 进程监控 │ ├── db_reader.py # Oracle 数据库读取(备用) │ └── event_detector.py # 事件检测器 ├── scripts/ │ ├── dev.js # 开发启动脚本 │ └── process_sprites.py # 精灵图集处理脚本 ├── img/ │ └── difa.png # 精灵原始立绘 ├── package.json └── README.md ``` ## 配置项 右键托盘图标 → **设置**,可调整: - **缩放倍率** (0.5x ~ 2.0x) - **不透明度** (30% ~ 100%) - **提示通知** 开关 - **提示音效** 开关 - **勿扰模式** 开关 - **边缘吸附** 开关 配置保存在 Electron 的用户数据目录中。 ## 审批检测原理(D+G 混合策略) Kimi CLI 的审批请求通过 `RootWireHub` 发送给客户端,不会写入 `wire.jsonl` 记录。因此 Kimi Pet 采用 **D+G 混合策略** 间接推断审批状态: - **G 方案** — 识别会触发审批的高风险工具:`StrReplaceFile`、`WriteFile`、`TaskStop`、`Shell` - **D 方案** — 通过 `ToolCall.id` 与 `ToolResult.tool_call_id` 配对,检测未响应的工具调用,结合动态超时阈值推断 `waiting` ### 超时阈值 | 工具类型 | 阈值 | 说明 | |----------|------|------| | FAST(StrReplaceFile / WriteFile / TaskStop) | 0.5s | 执行极快(<0.1s),0.5s 未响应即推断为审批 | | Shell 普通命令 | 3.0s | 一般命令执行不会这么久,超过即推断为审批 | | Shell 长命令(黑名单 / timeout>30) | 5.0s | 安装/构建等命令本身耗时长,放宽阈值避免误报 | | 黑名单命令 | ∞ | `npm install`、`docker build`、`gradlew` 等不计入审批推断 | **无需修改 Kimi CLI 本体**,独立进程运行,低侵入。 ## 打包分发 ```bash # 打包 Windows 安装包 + 免安装版 npm run build:win # 打包产物 # dist2/Kimi Pet Setup 1.0.0.exe — 安装包 # dist2/win-unpacked/ — 免安装版目录 # product/Kimi Pet.zip — 免安装版压缩包 ``` 打包后的应用已内置 Python 虚拟环境 (`.venv`),**目标电脑无需安装 Python**。 ## 开发计划 - [x] Phase 1 — 项目骨架 + 悬浮窗口 - [x] Phase 2 — 精灵渲染引擎 + 粒子系统 - [x] Phase 3 — Python 状态监控 + WebSocket - [x] Phase 4 — 审批气泡 + 设置面板 - [x] Phase 5 — 系统托盘 + 右键菜单 - [x] Phase 6 — 打包分发 (.exe 安装包 + 绿色版) - [x] Phase 7 — D+G 审批检测方案 + 延迟优化 - [ ] Phase 8 — 多帧动画图集(将单图扩展为多状态动画) ## 致谢 - 灵感来源:OpenAI Codex Digital Pet - 精灵形象:`difa.png`(像素风格蒂法立绘) --- *Kimi Pet — 让你的命令行不再孤单。*