一只像素狗,陪你创业。
基于 OpenClaw + 飞书 + Cursor/Claude Code 数据,驱动一只 macOS 桌面像素宠物狗,用动画和对话反映你的工作状态。自动检测运行环境,无需手动选择内核。
这只狗不是来"关心你"的 —— 它就是你。
创业者不缺建议。每个人都知道该喝水、该休息、该运动。他们缺的是三样东西:
- 被看见 — 不是被提醒,是有一个东西在默默反映"你现在的状态是这样的"。不评判,不指导,就是让你看到自己。
- 被允许 — 创业者最大的心理负担是"我不应该累"。如果狗趴下了,用户会说"不是我要休息,是我的狗需要休息"。
- 被陪伴 — 系统推送提醒像老板,狗默默跟你经历一切像朋友。
创业者有两种截然不同的心理需求:
| 需求 A:被看见 | 需求 B:被抽离 | |
|---|---|---|
| 心理机制 | "有人知道我在努力" | "让我喘口气" |
| 触发 | 右键 → 在干嘛 / 天气预报 / cron 自言自语 | 右键 → 摸摸头 |
| 内容 | 基于真实工作数据的伙伴式反馈 | 与工作完全无关的有趣短文本 |
"摸狗头"本身就暗示了一个心理模型:你在跟一只狗玩,不是在听工作周报。真正的狗被摸头会翻肚皮、甩尾巴、叼个什么东西给你看 —— 纯粹的微笑瞬间。
狗是创业伙伴,不是旁观者、数据播报员或心理咨询师:
- "我们" — 共同经历的辛苦("我们已经调了好久的前端视觉了!")
- "你" — 赞美和鼓励("你真厉害")
- "我们" — 休息建议("我们下去遛遛吧!")
狗没有独立需求。不说"我饿了"。休息提议永远是"我们一起"。
| 操作 | 效果 |
|---|---|
| 左键点击 | 心情面板(1-5 档),记录到本地数据库 |
| 右键 → 摸摸头 | 从预生成 fun-pool 随机取一条趣味文案,零延迟(需求 B) |
| 右键 → 在干嘛 | 调用 LLM 生成基于真实工作内容的伙伴式反馈(需求 A) |
| 右键 → 天气预报 | 当前天气 + 未来 3 小时预报 |
| 右键 → 换皮肤 | 10 款像素狗皮肤,hover 预览锁定皮肤 |
| 右键 → 修复连接 | 手动触发 cron 健康检查与修复 |
| 悬停 | 显示 LLM 预生成的状态描述 + 连接指示灯 |
| 拖拽 | 移动狗的位置(屏幕边界约束) |
| 点击金币 | 收集金币 + LLM 文案气泡 |
每小时 cron 完成后,桌面上弹跳掉落一枚像素金币。用户在线时点击收集,附带一段结合当前工作的文案。每 5 枚金币解锁 1 个新皮肤。
金币不是 KPI —— 是时间的痕迹。不累积压力,离线时最多存 1 枚。
每天 3 次随机时间(9:00-22:00,避开午休),狗通过飞书私聊给你写信:
"你的狗刚拜托我告诉你:我们刚才讨论排期讨论了好久,你推进了好多事情!要不要一起出去走走?"
狗有自己的人格,不是 OpenClaw 的传声筒。
每天 21:00 后自动推送一封狗视角的一天总结到飞书:
"你的狗写了今天的日记:上午一直在修前端问题,下午跟苏博文聊了很久排期。今天收集了 3 枚金币"
| 机制 | 频率 | 说明 |
|---|---|---|
| 完整分析 | 每 1 小时 | 飞书消息搜索 + LLM 情绪分析 + fun-pool 刷新 + 金币掉落 |
| 健康检测 | 启动时 | cron 心跳检查,异常自动修复 |
完全由用户自报心情决定,无 energy 公式:
| 心情 | 动画 | 标签 |
|---|---|---|
| 5 | 奔跑 | 冲冲冲! |
| 4 | 走路 | 走走走~ |
| 3 | 坐着 | 有点累了... |
| 2 | 趴着 | 歇会儿... |
| 1 | 睡觉 | zzZ... |
工作数据(消息数、prompt 数、连续工作时长)+ 用户心情两个维度作为 LLM 上下文,让文案像了解你工作情况的朋友那样说话。
"今天"从凌晨 4 点算起,适配创业者作息。
~/.创业狗/
├── status.json # cron 输出(消息数, 工作摘要, hover_text, coin_ready)
├── comfort-message.json # LLM 生成的安慰/自言自语
├── fun-pool.json # cron 预生成的 5 条趣味文案
├── daily-schedule.json # 当日狗信时间表 + 日记推送标记
├── cron-heartbeat.json # cron 执行心跳(各步骤成功/失败)
├── user-response.json # 用户交互反馈
├── activity.jsonl # Cursor/Claude Code hooks 编码活动
├── config.json # 飞书表 ID 等配置
└── dog.db # SQLite(心情 + 工作快照 + 金币 + 皮肤解锁)
三个数据源:
- 飞书 — 消息内容、消息量、日程(第一优先级)
- Cursor IDE — prompt 文本、session 时长
- Claude Code — prompt 文本、session 时长
- DeskClaw 已安装并连接飞书(OpenClaw 或 Nanobot 内核均可,Skill 自动检测)
- macOS (Apple Silicon)
OpenClaw 用户:
cp -r skill ~/.openclaw/workspace/skills/caring-startup-dogNanobot 用户:
cp -r skill ~/.deskclaw/nanobot/workspace/skills/caring-startup-dog告诉你的 Agent:
"帮我初始化 caring-startup-dog"
自动完成:创建数据目录 → 安装 Hooks → 创建飞书表 → 配置飞书 UAT(Nanobot)→ 配置 Cron → 安装桌面宠物。
Nanobot 用户注意:初始化过程中会引导你完成飞书 OAuth 授权,以启用消息搜索能力。
从 Releases 下载。
├── skill/ # Agent Skill(兼容 OpenClaw / Nanobot)
│ ├── SKILL.md # Skill 定义与操作流程(双内核自动分支)
│ ├── prompts/ # LLM Prompt 模板(情绪分析/安慰/狗信/日记)
│ └── scripts/ # 安装脚本
├── desktop-pet/ # Tauri 桌面宠物源码
│ ├── src/ # React + Phaser 前端
│ ├── src-tauri/ # Rust 后端(穿透、拖拽、光标检测)
│ └── public/sprites/ # 像素狗皮肤 + 金币素材
├── hooks/ # Cursor/Claude Code Hooks
└── docs/ # 产品文档与截图
- Skill: OpenClaw / Nanobot(自动检测) + 飞书 API + LLM
- 桌面宠物: Tauri v2 + React + Phaser 3 + Zustand + SQLite
- 窗口交互: cocoa/objc(macOS 原生 API) + setPointerCapture 拖拽 + Rust 全局光标轮询
- 像素素材: Pixel Dogs by Benvictus
- 像素字体: Zpix(中文) + Silkscreen(英文)














