一只看得懂你在忙什么的桌宠
无边框真透明的悬浮球,实时反映 Claude Code CLI 的工作状态——思考、正在跑哪个工具、在等你输入、完成、待命、离线、异常。状态由 Claude Code hooks 事件驱动,变化即达,不靠轮询猜。赛博朋克 HUD。
不只是装饰,它真的在"看"
状态由 Claude Code hooks 直接告知,不再靠轮询转录文件猜——哪个工具在跑、回合何时结束、claude 何时在等你,服务端边推边算。
被通知,不是猜
旧版每 500ms 扫一遍转录文件、靠时间阈值推断 claude 在干嘛。现在由 Claude Code hooks(PreToolUse / Stop / Notification)直接告知,再经 SSE 推送,变化即达。工作中会显示具体在跑哪个工具,而不是一律"工作中"。没装 hooks 也能用,会自动退回转录推断,只是精度下降。
运行命令 / 编辑文件 / 搜索代码 / 调用子代理…无边框真透明宿主
WinForms + WebView2,DWM 玻璃透明、始终置顶、无标题栏。WebView2 运行时 Windows 10/11 自带。
真正的透明窗口 · 不挡操作零外部依赖
Node.js 内置模块 HTTP 服务 + 系统自带 PowerShell + WebView2 运行时,无任何 npm 包。
赛博朋克 HUD
Cascadia Code + 霓虹扫描线,状态文字与界面随主题换色。
置顶 + 记忆位置
窗口位置/大小/透明度/主题/字号全部持久化,重开自动恢复。面板也可拖动——标题栏与状态区就是拖拽手柄,和球共用一套。
看得见"在等你"
claude 卡在权限确认、或停下来等你开口时,桌宠变琥珀色并提示——这是最该被提醒的时刻,旧版从状态里根本看不出来。
看得见"烧了多少"
按「本次会话 / 今日 / 累计」三档统计 token 用量、缓存命中率与上下文占用,接近上限时弹聊天软件式告警气泡。不做金额换算——模型名与单价因代理 / 第三方网关而异,猜一个数字不如不给。数据直接来自转录里每条 assistant 行的 usage,不联网、不调 API。
本次 / 今日 / 累计 三个页签
点用量瘦条或标题行的 ▤ 切到用量页,页签切换统计范围;网格展开 输入(含缓存)/ 输出 / 缓存命中 / API 调用次数 / 上下文占用。面板上还有一条常驻用量瘦条与近 7 日 sparkline,不看详情也能一眼扫过。
本次 / 今日 / 累计缓存命中率 + 上下文占用
常驻瘦条显示 ↑输入 ↓输出 CTX%,CTX 逼近上限时转琥珀 / 红。命中率偏低或上下文快满,都是同一份事实的另一面。
↑输入 ↓输出 CTX%6 条告警规则
上下文将满 / 上下文偏满 / 单回合输出偏大 / 缓存命中偏低 / 今日用量偏高 / 用量激增。由服务端边沿触发并带冷却——只在越过阈值的那一下弹一次,回落后重新武装,不会条件一直成立就一直响。
边沿触发 · 带冷却告警气泡
球上出现红点未读徽标,展开后弹出聊天气泡式提醒,最多 3 条。点卡片或一键已读即清掉红点;同一条规则再次触发才会重新点亮——红点表示"还没看过",不是"条件还成立"。
未读红点 → 展开气泡 → 一键已读一个状态,一个表情
桌宠用不同的动画 Gif 与文字,告诉你 Claude 此刻在做什么。
模型在生成(还没有工具在跑)
thinking.gif有工具在执行(面板显示工具名)
working.gif工作中(超过 30s 的长任务)
workinglong.gifclaude 在等你(权限确认 / 等你开口)
offlineandidle.gif一次任务刚完成(闪 5s)
done.gif安静待命
offlineandidle.gif未检测到 claude 进程
offlineandidle.gif最近 30s 内工具报错
errorandwaityou.gif6 套主题,一键循环切换
点「主题」按钮或按 T 循环切换,自动保存。
赛博霓虹
cyber · 默认极简白
paper终端绿
matrix暗金 OLED
gold落日橙
sunset深海蓝
ocean安装即用,三步开始
环境要求:Windows 10 / 11 · Node.js ≥ 18 · Claude Code CLI · WebView2 运行时(随 Edge 自带,Win10/11 无需另装)
双击 ClaudePet-Setup.exe
运行安装向导。向导会自动检测 Node 与 Claude,缺失会弹窗提示,并可手动指定路径。
完成向导
写入 app\runtime.ini(PATH 无关),创建桌面与开始菜单快捷方式,并挂载 hooks。
双击桌面「Claude Pet」
终端里启动 claude,右下角出现桌宠悬浮球。关闭终端后桌宠在数秒内自动退出,不留后台进程。
install.bat(自检 + 复制到 %LOCALAPPDATA%\ClaudePet + 建快捷方式 + 挂载 hooks);或从源码跑:node app/server.js 启动服务,再 host\build.bat 构建悬浮球宿主(WinForms + WebView2,系统自带 csc 编译)。
交互一览
桌面上的小窗口,操作都在直觉里。
拖动悬浮球移动桌宠位置,自动记住
拖动面板标题栏与状态区都是拖拽手柄,移到别处,自动记住
左键 / 悬停 ~1s球 → 展开全面板;「收起」回球
右键球弹出中心对称透明气泡菜单(主题 / 终端 / 置顶 / 透明度± / 退出)
T / − +循环切换主题;缩放字号与 UI(0.85–1.35)
点击告警气泡 / 红点查看未读告警并一键已读(红点表示还没看过,不是条件还成立)
双击面板桌宠聚焦 claude 终端
配置全部记住
关闭前自动保存,重开一切照旧。
主题 + 字号
服务端 app\config.json 是唯一真相(含告警阈值),GET / 直接注入首屏,无闪烁
窗口状态
位置 / 大小 / 透明度 / 置顶,存于宿主 host.json
退出即保存
beforeunload 自动再存一次,重开全部恢复;token 账本单独存在 app\usage.json,删掉会自动从转录重建
node app/server.js 启动服务,再运行 host\build.bat 构建悬浮球宿主(WinForms + WebView2,系统自带 csc 编译),详见仓库 docs/。