bama - 把喜欢的应用重建为原生 Mac 应用的 Agent 技能集
bama 是一套面向 AI 编程 Agent 的技能集,用 Swift 与 SwiftUI 把一款你喜欢的应用重建为原生 macOS 应用:先截图拆解界面,再写成带验收标准的用户故事,最后按里程碑逐个提交实现。本文介绍其维护状态、技能分工、安装入口与运行前置条件。
bama 是一套面向 AI 编程 Agent 的技能集(skills),目标是把一款你喜欢的应用重建为自己的原生 Mac 应用。据项目说明,整个流程由 Agent 驱动:先打开目标应用并逐屏截图,整理出界面索引;再把界面转写成带可勾选验收标准的用户故事,并按里程碑拆分;最后每个提交实现一个故事,提交前在浅色与深色模式下对每个页面做快照并运行测试。技术栈为 Swift 与 SwiftUI,数据保存在本地,全程不需要打开 Xcode 图形界面。它适合已经使用 Claude Code、Codex、Cursor、Gemini CLI 等支持 skills 的 Agent、希望以「复刻一个现成应用」作为练手或起步方式的 macOS 开发者。
维护者与状态
仓库由 daveebbelaar 维护,地址为 github.com/daveebbelaar/bama。仓库创建于 2026-10-24,最后一次提交在 2026-10-29,属于非常新的项目。截至 2026-10-29,仓库获得 702 个星标。事实表显示该项目尚无正式 release,因此目前没有版本号可循,使用时应以仓库主分支内容为准。
主要能力
据项目自述,bama 把工作拆成若干阶段,每个阶段对应一个技能,由入口技能 bama 负责判断当前进度并调用合适的技能;不确定从哪开始时可以直接输入 /bama,它会查看项目并挑选下一步。主要技能按阶段分布如下:
- 起步:
app-brief把一个想法整理成一页纸的简报;new-mac-app从模板生成可运行的应用,包含 Swift package、SwiftData、构建脚本、快照模式与 git 配置。 - 规划:
research用并行的研究 Agent 分别处理市场、用户、功能、设计与 macOS API;clone借助 computer use 或浏览器截取目标应用的每个界面并写出界面索引;user-stories产出按里程碑组织、带可勾选验收标准的待办清单。 - 编码:
swift-swiftui覆盖 Swift 6 并发、状态管理、SwiftData、AppKit 桥接与编译器报错处理;os-integrations处理全局快捷键、菜单栏、浮动面板、窗口控制、屏幕捕获、Shortcuts、URL scheme、CLI 与权限;performance主张先测量再修复,关注主线程、GPU 合成、图像与命令行调用 Instruments;improve-architecture在应用变大后定位热点,每次提交只重构一步并证明行为未变;agent-cli为可选技能,提供命令行与 MCP server,让 Claude Code、Codex 和脚本能够驱动你的应用。 - 设计:
ux-design在写代码前确定命名、流程、每个功能的呈现方式(内联、popover、sheet、窗口)、文案与无障碍;mac-design涉及 Liquid Glass、布局、工具栏、菜单、键盘、字体与深色模式;design-system让用户在设置中选择强调色,并统一为一套 token 与一页规则;layout-grid使用 4 pt 网格,并通过代码 lint、快照模式下的布局探针与网格叠加来检查错位;design-kit强调做自己的部件而非直接套用 Apple 的,包含三层 token、字体、图标集、每个部件的每种状态、自定义窗口外观与部件画廊;design-from-app从截图重建目标应用的外观,测量尺寸、字体与颜色后逐像素比对;app-icon以 Icon Composer 文件形式产出 Liquid Glass 图标并检查各种外观。 - 交付:
build-and-verify负责构建、安装、在浅色与深色下快照每个页面并查看结果;test-mac-app使用 Swift Testing、应用内自测与可供 Agent 驱动的调试桥;improve-loop按待办逐故事提交,直到某个里程碑完成。
此外,仓库的 specs/ 目录据称包含 12 份小型 Mac 应用构建方案,例如窗口吸附、窗口切换器、启动器、剪贴板历史、截图、录屏等,均拆解自维护者自己的菜单栏应用 Onyx。可以把其中一份复制到空文件夹,再让 Agent 按该方案构建。
使用入口
仓库地址:daveebbelaar/bama。
据 README,安装方式按 Agent 选择其一,同时使用两条路线会导致每个技能被安装两次。通用方式是借助 skills.sh:
npx skills@latest add daveebbelaar/bama
也可以只安装单个技能,例如 --skill=clone。Claude Code 通过插件市场安装:
/plugin marketplace add daveebbelaar/bama /plugin install bama@bama
Codex 使用对应的插件命令;其他支持 skills 的 Agent 走 skills.sh 路线。手动方式则是克隆仓库后运行 bama/scripts/link-skills.sh,把技能链接到 ~/.claude/skills 与 ~/.agents/skills。安装完成后即可向 Agent 下达类似「把这个待办应用克隆成原生 Mac 应用,截图每个界面,写出用户故事,并完成里程碑 1」的指令。
许可与限制
项目采用 MIT 许可证。运行前置条件据 README 包括:macOS 26 或更高版本;Xcode 26 或更高版本以提供 Swift 6.2 工具链(但无需打开它);一个支持 skills 的 Agent,如 Claude Code、Codex、Cursor、Gemini CLI;若要对原生应用执行 clone 技能,还需要 computer use 能力(README 提到 Claude Pro 或 Max)。这些版本要求较为激进,旧系统与旧工具链环境无法直接使用。项目自述还说明其思路来自 morluto 的 REA: Reverse Engineer Anything,技能格式与写作规则参考 Matt Pocock 的 skills 与 writing-for-agents。需要提醒的是,复刻他人应用的外观与交互涉及知识产权与商标边界,README 未对此作出说明,使用者应自行判断适用场景。