cc-haha/docs/desktop/pets.md
程序员阿江(Relakkes) c2cd615824 docs: rebuild the documentation site around two readers
The site had drifted from the product. Every screenshot predated the
v0.5.0 UI redesign, the reading experience shipped no search and no
syntax highlighting, and a third of the pages were internal process
artefacts — migration task lists addressed to agentic workers, a
release runbook, a proposal marked "historical".

Reorganise around the only two people who read this: someone getting
the desktop app running for the first time, and someone reading the
source. Five sections replace nine — start / desktop / im / cli /
internals — and the pages that served neither reader are gone.

Site rewrite:

- Palette lifted from the desktop app's 「纸·墨·印」 themes, so the
  site and the product read as one thing. Light mirrors 纯白, dark
  mirrors 墨夜, and dark mode exists at all now.
- Fonts are self-hosted. The old @import from Google Fonts is
  unreachable from mainland China, which left every heading in a
  fallback serif; it also only requested weight 600 while the CSS
  asked for 900, so Latin and CJK in the same heading disagreed.
- Docs were shipped as one 968KB manifest downloaded on every page
  view. Split into a 32KB index plus one lazily imported chunk per
  page; the entry bundle is now 101KB gzipped.
- Add search, syntax highlighting, per-route meta with canonical and
  hreflang, a sitemap, and an error boundary. Replace the 44vh
  mobile sidebar with a drawer.
- Image dimensions are read at build time and written into the tag,
  so lazy images reserve their space instead of collapsing.

Screenshots are recaptured from a real v0.5.0 build against a clean
demo project, with tokens, QR codes and paired accounts redacted.
The previous set is deleted rather than kept alongside.

Routes follow file paths, so the restructure would have broken every
inbound link; 37 old paths redirect, in both languages. The PR policy
gate and CODEOWNERS also hardcoded docs/guide/contributing.md.

Verified: check:docs 78 pages / 323 links / 0 problems, check:policy
127 pass. Walked every route at 1440 and 390 in both themes for
overflow, contrast, keyboard reachability and focus management.
2026-07-27 17:32:41 +08:00

6.1 KiB
Raw Blame History

title nav_title description order
桌面宠物 桌面宠物 一只悬浮在桌面上的小机器人,用动作告诉你任务跑到哪了。 8

桌面宠物

一只悬浮在桌面上的小机器人。它会用动作反映本机任务的状态——在跑的时候低头忙活,等你审批的时候东张西望,出错了垂头丧气。你去做别的事时,瞄一眼就知道该不该切回来。

它只是个状态提示和跳转入口,不能替你批准权限,也不能在悬浮窗里直接提问。

打开它

宠物默认关闭。打开方式:

  1. 点侧边栏最底部的「设置」。
  2. 选「宠物」分栏。
  3. 从「内置宠物」里挑一个。
  4. 打开「显示桌面宠物」。

设置 → 宠物:四只内置宠物与外观参数

四只内置宠物

角色 它是谁
搭搭 Dada 沉稳的协作机器人,陪你把想法一块块搭起来
弧弧 Huhu 拿着铅笔和计划本的路线机器人,复杂任务也能找到出口
补补 Bubu 举着修补扳手的小机器人,最擅长发现并修好裂缝
回回 Huihui 抱着构建齿轮的小机器人,新回复一到就精神满满

换角色时已经打开的宠物窗口会立刻同步。

和它互动

桌宠悬浮在桌面上

  • 悬停 — 空闲时它会跳一下,视线跟着你的指针转。
  • 单击 — 唤起主窗口,同时挥个手。注意它只是把窗口叫出来,不会自动跳进某条会话。
  • 拖动 — 按住它挪到桌面别的位置,下次打开会尽量回到原处。
  • 右键 — 系统菜单里选「关闭宠物」。这只关掉悬浮窗,不会停掉任何任务。想再开回 设置 → 宠物。

打开「显示进行中的任务区域」后,有任务在跑时它旁边会出现一块任务面板,按状态分组:

  • 工作中 — 会话、后台任务或 Agent 正在跑。
  • 等待你处理 — 在等权限审批或其他操作。
  • 需要关注 — 最近一次运行失败了。

点任务行会唤起主窗口并跳到那条会话。权限还是要在主窗口里批。关掉这个开关的话,有活跃任务时只保留一个数字角标,点角标能再展开。

外观参数

  • 宠物大小 — 96 到 192 像素之间。
  • 播放动画 — 关掉之后宠物还在,只是不动了。想要安静一点又不想彻底关掉时用它。
  • 显示进行中的任务区域 — 见上。
  • 默认收起 — 平时只露宠物,需要时再展开任务面板。

做一只自己的

点「你的宠物」右边的「添加宠物」。所有图片都在你自己的电脑上处理,不会上传,也不消耗对话额度。

不管选哪种做法都要先填三个字段:宠物 ID(只用小写字母、数字和中间的连字符,比如 moon-cat)、显示名称宠物描述

做法一:用一张现成的图

最省事,大概一分钟。选一张背景透明的静态 PNG 或 WebP应用会给它加上呼吸和上下浮动的轻动画。

这种宠物不会跑、不会挥手、不会跟着鼠标转头。想要完整动作,用下面两种。

做法二:让 AI 画一张动作表

大概十分钟,需要一个能画图的 AI。弹窗里已经准备好一段完整提示词和一张对照模板点「复制这段提示词」就能直接发给 AI只要把开头「角色」那两行换成你想要的样子。

要画的是一张 8 列 × 9 行的动作表,每格一个动作帧:

内容 用到的格数
1 待机:站着不动,轻微呼吸起伏 6
2 向右跑:完整跑步循环,始终朝右 8
3 挥手:抬手打招呼 4
4 跳跃:下蹲 → 起跳 → 落地 5
5 失败:沮丧、垂头、叹气 8
6 等待:东张西望、原地踱步 6
7 工作:低头忙碌 6
8 视线上半圈:从正上方转到接近正下方 8
9 视线下半圈:从正下方转回接近正上方 8

「向左跑」不用画,应用会把第 2 行水平镜像自动补出来。最后两行懒得画也行,重复待机的第一帧就好,只是它不会跟着鼠标转头。

图出来以后对着弹窗里的模板检查三件事:背景是透空的不是白底、横 8 格竖 9 行、九行里从头到尾是同一只。不对就让 AI 重画,或者说「角色保持不变,只重画第 2 行」。

做法三:我已经有动作图了

已经画好了就走这条,跳过教程直接填表选图。校验规则和做法二完全一样。

尺寸不用自己算

选图之后应用会在本地把它整理成运行时需要的图集:按 8 列 × 9 行切格、等比缩放、把角色在格子里居中、镜像补出向左跑的一行,再补齐其余行。

所以长宽不必是某个精确数值AI 常出的 1024 × 1152 之类都能用,比例接近 8:9 时效果最好。已经是 1536 × 2288 的成品图集会原样保留,不会被重新缩放。

图片本身要满足:静态 PNG 或 WebP动图不行、长宽都在 324096 像素之间、总像素不超过 16,777,216、文件不超过 8 MB。

:::warning 最常见的失败是白底。白底导出的图在桌面上会变成一个方块,应用会直接拒绝导入。让 AI 重新导出透明背景的 PNG或者用抠图工具去掉背景。 :::

存在哪、怎么删

自定义宠物包在 ${CLAUDE_CONFIG_DIR:-~/.claude}/cc-haha/pets,设置页底部有「打开文件夹」按钮。每只宠物一个独立子目录,里面是 pet.json 和图片。

界面上目前没有删除按钮。要删的话:先在设置页选回一只内置宠物,点「打开文件夹」,只删掉目标宠物那个子目录,回设置页点「刷新」。不要删整个 petscc-haha 目录。

手工改过的 pet.json 或替换过的图片可能过不了校验,无效的包会被跳过并在设置页提示。

边界

宠物只在桌面端跑H5 页面里看不到它。退出应用或电脑休眠后它不会继续工作。窗口置顶、拖动和多显示器的行为受各操作系统限制。