我用 Swift 构建了一个桌面 Tamagotchi 猫,配备 AI 大脑——它运行在我的 macOS Doc 上
Source: Dev.to

你是否有过凌晨 2 点编码时,恨不得有人陪在身边的感觉?
认识 Murchi —— 一个可爱的桌面猫,它居住在你的 macOS Dock 上,四处走动,响应你的音乐,现在还能通过 Gemini AI 和你对话。
这是什么?
Murchi 是 macOS 的桌面 Tamagotchi。一个小动画猫,它可以:
- 🐾 像在架子上一样在 Dock 上行走
- 🎵 检测 Apple Music / Spotify 并跳舞(或者 25 % 的时间讨厌你的音乐)
- 😿 被惩罚时会跑到角落哭泣
- 🖱️ 当你拖动它时会挂在“领子”上晃动
- 💬 通过 Gemini AI 与你聊天 —— 以猫的角色进行对话
- 🐟 需要喂食、洗澡、玩耍 —— 经典的 Tamagotchi 循环
它以 =^.^= 的形式驻守在你的菜单栏,就这么活着。
技术栈(它很诡异,我却爱它)
整个应用只有 一个 Swift 文件(约 7 000 行)。没有 Xcode 项目、没有 storyboard、没有 SwiftUI。
- 纯 AppKit –
NSPanel、NSImageView、原始CGContext绘图 - SVG 字符串渲染为
NSImage– 每一帧动画都是代码中生成的 SVG - 没有精灵图、没有资源文件 – 猫完全由贝塞尔路径和十六进制颜色构成
- 重力物理、通过
CGWindowListCopyWindowInfo检测 Dock - 通过 AppleScript 检测音乐(
tell application "Spotify" to player state) - 使用 Gemini 2.0 Flash REST API 与 AI 聊天,采用
URLSession - 用 100 行的
build-app.sh构建打包——不需要 Xcode
AI 部分
这只猫有自己的性格。当你和它聊天时,Gemini 知道:
- 猫的名字、等级和进化阶段
- 当前情绪、饥饿、幸福等状态
它会用 1‑3 句带有猫叫声(“mrrrow~!”、“purrr”)的简短回复。
let systemPrompt = """
You are Murchi, an adorable kawaii desktop cat.
Your personality: playful, cute, a bit mischievous.
Keep responses SHORT. Use cat sounds like "mrrrow", "mew".
Current mood: \(stats.mood). Hunger: \(Int(stats.hunger))%.
"""
用户可以在设置中填写自己的 Gemini API 密钥,或者直接开箱即用。
整个项目由 Claude Code 完成
这个项目几乎全部是在与 Claude Code(Anthropic 的 CLI 代理)对话中完成的。我描述需求,它写代码,我测试、反馈,它再修正。
工作流示例
- 我:“我想要一只在 Dock 上走路的猫。”
- Claude:写出 2 000 行 SVG 渲染代码。
- 我:“这只猫是橙色的,应该改成桃色。”
- Claude:重写渲染器。
- 我:“现在让它能和 AI 对话。”
- Claude:在 15 分钟内加入 Gemini 集成。
仓库中的每一次提交都与 Claude 共同署名。这展示了 AI 辅助开发如何增强而非取代开发者。
试一试
它是免费、开源的,能在任何 Mac(macOS 12+)上运行:
无需 Xcode 构建——直接运行 bash build-app.sh。
如果你曾想在桌面上拥有一只会评判你音乐品味、偶尔在屏幕上“拉屎”的宠物——这就是答案。
mrrrow~! 🐱