v1.0.0 · MIT · macOS / Windows / Linux

一只随你的代码呼吸的桌面宠物。

Seelie 是一款 10MB 的原生桌面伴侣,监听 UDP,响应你的 AI 编程工具发出的每一个事件。任选其一:能提示能动的角色伙伴,或是脉搏跟着会话起伏的 ICU 风格心电监护仪。

两种显示模式Character/ECG
§02 — 宠物状态机

完整的人设,不是闪屏画面。

七个持续态 + 一个 walking overlay。Working 在工具间隙保持不变,Failed 叠层结束后回到 Working,Greeting 仅在 Idle 时触发 —— 事件爆发时不会粗暴打断。

01
Idle 空闲
无任何活动
02
Greeting 问候
仅从 Idle 触发
03
Thinking 思考
prompt.submitted
04
Working 工作中
tool.before
05
Reviewing 审阅
子 agent / 审阅
06
Failed 失败
叠层,自动恢复
07
Celebrating 庆祝
叠层,自动恢复
+ Walking 行走
动作层
Grace timer 宽限计时器. 持续态不会瞬切。两次 tool.before 之间的短暂间隔不足以掉出 Working —— 3 秒宽限计时器让角色保持角色感。
§03 — 多供应商 TTS

让你的宠物开口。

提示可以朗读出来。四家云服务任选,无需重启即可热切换,粘贴任意 voice ID —— 系统音、克隆音、内测音都行。音频本地缓存,重复播放瞬时回放。

设置 · TTS⌘ ,
服务商阶跃星辰 StepFun
Token••••••••••••••••••••
音色cixingnansheng
模型step-tts-mini
✓ 已合成 · 412 ms · 已缓存
本地语音缓存
  • 100 MB LRU 上限
  • SHA-256 键控(provider, voice, model, options, text)
  • 切换音色 / 模型时自动失效
§04 — Features

做给长期使用的人

启动那一刻就能感受到的八件事

01

17 个规范事件

session.start、tool.before、tool.failed、prompt.submitted、file.edited…… 每一个都驱动一段动画、一条提示或一次心电跳动 —— 没有 gateway 专属逻辑。

02

三套动画引擎

Lottie 60 fps 矢量角色动画,Live2D Cubism 处理表现力丰富的模型,sprite-sheet 兜底兼容 Clippy 时代的老角色包。

03

主动提示引擎

30 秒滑动窗口上的模式匹配器,识别编码行为后给出上下文建议,每种类型 5 分钟冷却。

04

空闲 < 10 MB

原生 Qt6/C++,没有 Electron。UDP 监听 + 动画引擎 —— CPU 和电池都察觉不到它的存在。

05

.codex-pet 拖拽即用

原生解析 openai/skills 的 hatch-pet 产物 .codex-pet。把文件丢进窗口 —— Seelie 直接读取 8×9 atlas(192×208 cells)并渲染,无需任何转换。

06

全局快捷键

默认 Ctrl+Shift+O 从任何地方显示或隐藏宠物,可在设置中重新映射,全屏应用下同样有效。

07

游戏模式

检测到全屏应用就识趣让开 —— 退出全屏自动恢复。再也没有挡在 boss 战前面的宠物。

08

运行时多语言

中英双语,从设置面板热切换。界面、提示、菜单即时更新 —— 不重启,不闪烁。

§06 — Protocol

与框架无关的 IPC

换行符分隔的 JSON over UDP。支持 Claude Code、Codex、OpenCode、Kimi,以及任何能写 socket 的工具。

默认 127.0.0.1:52847。一套协议,17 个事件,任意工具,任意语言。

Shellecho {"type":"event","source":"claude-code","event":"session.start"} | nc -u 127.0.0.1 52847
§07 — Integrations

复制粘贴的集成

Claude Code、OpenCode、Codex、Kimi 的 hook 配置,外加一个适配任何工具的原始协议

~/.claude/settings.json
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "seelie-gateway --source claude-code --event session.start"
      }]
    }],
    "PreToolUse": [{
      "hooks": [{
        "type": "command",
        "command": "seelie-gateway --source claude-code --event tool.before"
      }]
    }],
    "PostToolUse": [
      {
        "matcher": "Write|Edit|MultiEdit|NotebookEdit",
        "hooks": [{
          "type": "command",
          "command": "seelie-gateway --source claude-code --event file.edited"
        }]
      },
      {
        "hooks": [{
          "type": "command",
          "command": "seelie-gateway --source claude-code --event tool.after"
        }]
      }
    ],
    "Stop": [{
      "hooks": [{
        "type": "command",
        "command": "seelie-gateway --source claude-code --event session.end"
      }]
    }]
  }
}

先全局安装 gateway:npm install -g @eastlake/seelie-gateway。确保 Seelie 正在运行且 gateway 在 PATH 中(fnm / nvm 用户见 README 包装脚本)。

AI agents查看安装技能 →
§08 — 1.0.0 安全审计

悄悄硬化。

端到端审计在 1.0.0 关闭了一打潜伏问题 —— 用户大多不会察觉,但都值得发版。

01ZIP 路径穿越.opk 归档无法逃出 pack 根目录
02音频解码上限50 MB 天花板 —— 恶意头无法 OOM
0330 秒 HTTP 超时TLS 卡死不会拖垮 TTS 引擎
04FBO 尺寸钳制Live2D 帧尺寸限制在 [1, 4096]
05配置写入去抖500 ms 合并拖动期间的写盘风暴
06Manifest 大小上限从中央目录分配前 10 MB 天花板
§09 — Setup

三步获得快乐

Step 01

安装

macOS、Windows、Linux 原生安装器

Step 02

连接

在 AI 工具里加一条 hook —— Seelie 自动通过 UDP 连接

Step 03

享受

看宠物随你发出的每一个事件呼吸

§10 — ECG Mode

心电监护模式

与角色宠物互斥的第二种显示模式

在「设置 → 模式」中选择此模式。ICU 风格的机箱将取代角色出现在桌面上,并响应每一个网关事件:session.start / tool.before 时心率上升,tool.failed 与 session.error 时红色边框闪烁警报;静默 20 秒便会进入心搏停止状态——直到下一个事件抢救回来。

ECG Monitor
HR 72 BPM
触发一个网关事件

停手 20 秒,看患者一路心搏停止。

§11 — FAQ

有问题?

§12 — Download

让你的桌面活过来。

免费、MIT、10 MB、无遥测。下载对应平台版本,加一个 hook 即可。

下载 Seelie