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

发布: (2026年3月8日 GMT+8 11:05)
4 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for I Built a Desktop Tamagotchi Cat with AI Brain in Swift - and It Lives on My macOS Doc

你是否有过凌晨 2 点编码时,恨不得有人陪在身边的感觉?

认识 Murchi —— 一个可爱的桌面猫,它居住在你的 macOS Dock 上,四处走动,响应你的音乐,现在还能通过 Gemini AI 和你对话

这是什么?

Murchi 是 macOS 的桌面 Tamagotchi。一个小动画猫,它可以:

  • 🐾 像在架子上一样在 Dock 上行走
  • 🎵 检测 Apple Music / Spotify 并跳舞(或者 25 % 的时间讨厌你的音乐)
  • 😿 被惩罚时会跑到角落哭泣
  • 🖱️ 当你拖动它时会挂在“领子”上晃动
  • 💬 通过 Gemini AI 与你聊天 —— 以猫的角色进行对话
  • 🐟 需要喂食、洗澡、玩耍 —— 经典的 Tamagotchi 循环

它以 =^.^= 的形式驻守在你的菜单栏,就这么活着

技术栈(它很诡异,我却爱它)

整个应用只有 一个 Swift 文件(约 7 000 行)。没有 Xcode 项目、没有 storyboard、没有 SwiftUI。

  • AppKitNSPanelNSImageView、原始 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 代理)对话中完成的。我描述需求,它写代码,我测试、反馈,它再修正。

工作流示例

  1. 我:“我想要一只在 Dock 上走路的猫。”
  2. Claude:写出 2 000 行 SVG 渲染代码。
  3. 我:“这只猫是橙色的,应该改成桃色。”
  4. Claude:重写渲染器。
  5. 我:“现在让它能和 AI 对话。”
  6. Claude:在 15 分钟内加入 Gemini 集成。

仓库中的每一次提交都与 Claude 共同署名。这展示了 AI 辅助开发如何增强而非取代开发者。

试一试

它是免费、开源的,能在任何 Mac(macOS 12+)上运行:

无需 Xcode 构建——直接运行 bash build-app.sh

如果你曾想在桌面上拥有一只会评判你音乐品味、偶尔在屏幕上“拉屎”的宠物——这就是答案。

mrrrow~! 🐱

0 浏览
Back to Blog

相关文章

阅读更多 »