Agent Critter 🐱

🌏 English · 中文
跨平台支持: macOS 和 Windows 11 已测试。
Agent Critter 是一个 Claude Code 桌宠插件 —— 一只实时展示你的 AI 编程助手工作状态的小精灵。支持 Petdex 社区 2700+ 精灵,一键切换。透明窗口、可拖拽、可缩放。
预览
安装
前置条件
通过插件市场安装(推荐)
# 添加 marketplace
/plugin marketplace add github.com/Jedeiah/agent-critter
# 安装插件
/plugin install agent-critter@agent-critter
# 重载插件
/reload-plugins
或通过交互菜单安装:
- 在 Claude Code 中输入
/plugin
- 选择 Marketplaces → Add Marketplace
- 输入
Jedeiah/agent-critter
- 回到 Plugins,找到
agent-critter,选择 Install
- 输入
/reload-plugins
安装后桌宠自动启动。
从 Release 安装
从 Releases 下载对应平台的插件包,解压后运行:
# macOS
./bin/agent-critter --daemon
# Windows
bin\agent-critter.exe --daemon
从源码构建
cargo build --release
# 打包插件(可选)
bash scripts/build-plugin.sh # macOS / Linux
# 或
.\scripts\build-plugin.bat # Windows
使用说明
桌宠启动后会以透明窗口形式悬浮在屏幕最上层,实时反映 Claude Code 的工作状态。
交互方式
| 操作 |
效果 |
| 单击宠物 |
随机互动文案 + 动作(挥手 / 跳跃 / 等待 / 审查) |
| 双击宠物 |
显示当前会话数和状态气泡 |
| 拖拽 |
移动桌宠位置(拖拽背景区域) |
| 右键 |
打开功能菜单 |
右键菜单
| 切换宠物 / 市场 / 安装 |
大小 / GitHub / 退出 |
 |
 |
右键桌宠弹出全屏菜单(分上下两部分):
🐾 切换宠物
├─ Boba / Dwight / ... ← 已安装的宠物,点击切换
├──────────────────────
🔍 大小 x1.0 [−] [+] ← 缩放 0.5x ~ 1.5x
├──────────────────────
🌐 浏览市场找名字 ← 打开 Petdex 合集页面
📥 [输入框] 装 ← 输入名字安装新宠物
🎲 随机 ← 随机安装一个宠物
├──────────────────────
⭐ Star on GitHub ← 打开项目主页
× 退出 ← 关闭桌宠
安装更多宠物
内置宠物市场,无需 Node.js:
# 右键菜单中直接输入名字安装,或点"随机"
# 也可用命令行(需 Node.js):
npx -y petdex install <宠物名字>
支持 Petdex 社区 2700+ 精灵,浏览合集:https://petdex.dev/collections
状态映射
Claude Code 的状态变化会自动切换桌宠动画:
| AI 状态 |
宠物动画 |
说明 |
| 空闲 |
😴 呼吸待机 |
无活动时,30s 后概率触发闲时互动,2h 后自动休眠 |
| 工作中 |
🏃 左右奔跑 |
处理用户请求、执行工具调用时 |
| 等待确认 |
⏳ 等待 |
权限请求、弹窗确认时 |
| 工具异常 |
🔍 审查中 |
工具调用失败、限流时 |
| 严重错误 |
💥 崩溃 |
认证失败、账单错误、模型不存在时 |
Hook 事件
Claude Code 通过以下 hook 事件驱动桌宠状态:
| Hook 事件 |
映射状态 |
触发时机 |
SessionStart |
session_start |
会话开始 / 压缩完成 |
PerCompact |
running |
压缩真正开始 |
UserPromptSubmit |
running |
用户提交 prompt |
PreToolUse |
running |
工具调用前 |
PostToolUse |
running |
工具调用后 |
PermissionRequest |
need_confirm |
权限请求 |
Notification |
idle / need_confirm |
通知消息 |
Stop |
idle |
停止 |
StopFailure |
tool_error / error_final |
停止失败 |
PostToolUseFailure |
tool_error / stop |
工具调用失败 |
SessionEnd |
session_end |
会话结束 |
所有 hook 配置见 hooks/hooks.json。
架构
Claude Code Hooks ──TCP(7890)──▶ StateMachine ──evaluate_script()──▶ WebView
(JSON) (多会话) (瞬时推JS) (CSS动画)
| 层 |
技术 |
| 窗口 |
wry + tao(macOS WKWebView / Windows WebView2) |
| 渲染 |
CSS background-image + JS setTimeout 逐帧 |
| 状态机 |
Rust StateMachine(多会话优先级合并) |
| Hook |
TCP JSON(Claude Code plugin hooks) |
| 精灵 |
Petdex 8×9 spritesheet(webp) |
多会话优先级
多个 Claude Code 会话同时运行时,桌宠取最高优先级状态:
ErrorFinal > ToolError > NeedConfirm > Running > Idle
配置
所有配置持久化在 ~/.agent-critter/data/:
| 文件 |
内容 |
说明 |
position |
x\ny |
窗口位置(像素坐标) |
pet-slug |
boba |
当前选中的宠物 slug |
pet-scale |
1.0 |
缩放比例(0.5 ~ 1.5) |
首次启动默认显示在屏幕右下角。
宠物存储
桌宠扫描以下目录加载已安装的宠物精灵:
| 目录 |
说明 |
~/.codex/pets/<name>/ |
主目录(自动创建) |
~/.petdex/pets/<name>/ |
旧版 Petdex 兼容目录 |
每个宠物一个文件夹,内含 spritesheet.webp(或 .png)即可。
卸载
/plugin uninstall agent-critter
如需完全清理数据:
rm -rf ~/.agent-critter
故障排除
| 问题 |
解决方法 |
| 桌宠不显示 |
pkill agent-critter 后重启 Claude Code |
| 端口 7890 被占用 |
pkill agent-critter 或更换端口 |
| 宠物图片不显示 |
检查 ~/.codex/pets/<name>/spritesheet.webp 是否存在 |
| Windows 白线/边框 |
自动处理,如仍有问题请提 Issue |
路线图
致谢
许可证
MIT
评论