Dave Ebbelaar vừa đẩy lên GitHub một repo tên bama, viết tắt của “Build Any Mac App”. Nó không phải app, không phải framework. Nó là một bộ agent skills: các file hướng dẫn để Claude Code, Codex, Cursor hay Gemini CLI biết cách dựng một app macOS native từ đầu tới lúc nằm trong Dock.
Cụ thể hơn, bạn mở một app mình thích, bảo agent “clone cái này thành app Mac của tôi”. Agent chụp màn hình từng màn hình của app đó, viết screen index, biến chúng thành user stories có acceptance criteria kiểm tra được, chia thành các milestone, rồi build từng story một, mỗi commit một story. Trước mỗi commit nó snapshot toàn bộ trang ở light và dark mode và chạy test.
Nó giải quyết vấn đề gì, nói thẳng
Vấn đề là agent AI viết code Swift thì được, nhưng dựng một app macOS hoàn chỉnh thì vỡ trận ở khâu tổ chức. Không ai bảo nó biết Liquid Glass là gì, SwiftData khai báo model ra sao, global hotkey đăng ký thế nào, hay chạy Instruments từ command line để đo main thread. BAMA đóng gói những mảnh kiến thức đó thành từng skill riêng, mỗi skill lo một đoạn.
Workflow không cần mở Xcode GUI. README ghi rõ “No Xcode GUI”. Bạn vẫn cần Xcode 26 trở lên để có Swift 6.2 toolchain, nhưng không bao giờ mở nó ra. Mọi thứ chạy qua build script và snapshot mode do agent điều khiển.
Vì sao repo này đang được chú ý
531 sao sau 3 ngày. Tạo ngày 24/10/2026, cập nhật 27/10/2026. Con số đó với một repo chỉ có file hướng dẫn (không có code app thật) là khá bất thường, và lý do nằm ở làn sóng agent skills đang lên.
Cái hay là BAMA không tự nghĩ ra format. Nó theo skill format và writing rules của Matt Pocock. Ý tưởng “reverse engineer bất kỳ app nào” thì lấy từ REA của morluto, và BAMA đưa ý tưởng đó lên Mac. Tức là nó đứng trên vai hai dự án đã có tiếng, dễ được tin hơn một repo lạ hoắc.
Một chi tiết khác: danh sách skill dài và cụ thể đến mức khó tin. Có skill layout-grid kiểm tra lệch lưới 4pt bằng code lint, layout probe trong snapshot mode, và grid overlay. Có skill design-from-app đo size, type, màu từ screenshot rồi so pixel từng bước cho tới khi khớp. Đây là mức độ chi tiết mà dev Mac thật sự phải làm, không phải mấy câu “hãy làm đẹp UI”.
Cài và thử nhanh
Đường nhanh nhất cho agent chung (Cursor, Gemini CLI, Copilot…) là qua skills.sh:
npx skills@latest add daveebbelaar/bama
Rồi bảo agent:
Clone my to-do app as a native Mac app.
Screenshot every screen, write the user stories, and build milestone 1.
Không biết bắt đầu từ đâu thì gõ /bama. Nó nhìn project hiện tại và chọn skill tiếp theo.
Nếu dùng Claude Code:
/plugin marketplace add daveebbelaar/bama
/plugin install bama@bama
Với Codex:
codex plugin marketplace add daveebbelaar/bama
codex plugin add bama@bama
Hoặc cài tay:
git clone https://github.com/daveebbelaar/bama.git
bama/scripts/link-skills.sh # links every skill into ~/.claude/skills and ~/.agents/skills
README cảnh báo rõ: mỗi agent chọn một route, cài hai route là mỗi skill bị cài hai lần. Yêu cầu hệ thống: macOS 26 trở lên, Xcode 26 trở lên (cho Swift 6.2), một agent hỗ trợ skills. Riêng skill clone trên app native cần computer use, tức Claude Pro hoặc Max.
Chưa biết build gì thì trong specs/ có 12 build plan cho app Mac nhỏ: window snapper, window switcher, launcher, clipboard history, screenshots, screen recorder… Tác giả tách chúng ra từ Onyx, app menu bar của chính anh. Copy một file vào thư mục trống rồi bảo agent:
Build the app in window-snapper.md with BAMA.
Ai nên dùng, dùng khi nào
Dev đã quen Mac nhưng ngại đụng AppKit bridge, permission, global hotkey. Sinh viên muốn có app macOS đầu tay mà không mất tuần mò Xcode. Indie dev muốn nhân bản một app mình thích để hiểu nó được xây thế nào. Người dùng Claude Code hằng ngày và muốn agent làm được việc lớn hơn sửa bug lẻ.
Không phù hợp nếu bạn cần app iOS, app cross-platform, hay app cần backend phức tạp. BAMA chỉ nói về native Mac, Swift và SwiftUI, dữ liệu local qua SwiftData. Cũng không phù hợp nếu máy bạn chưa lên macOS 26.
So với lựa chọn khác
Tôi chưa thử một bộ skill macOS nào tương đương để so trực tiếp. Cái gần nhất là REA của morluto, và chính tác giả thừa nhận REA là nguồn ý tưởng. Khác biệt: REA reverse engineer app nói chung, BAMA chuyên biệt cho Mac với Swift, SwiftUI, SwiftData, Liquid Glass và các tích hợp hệ thống như Shortcuts, URL schemes, menu bar, floating panel. Nếu bạn cần reverse engineer app web hay mobile thì REA đúng bài hơn.
Ưu điểm và những chỗ cần cân nhắc
Ưu điểm dễ thấy: phủ gần hết vòng đời app, từ brief, research, clone, user stories, code, design, build, test, tới ship. Mỗi commit một story, snapshot light và dark trước khi commit, tức là có kỷ luật chứ không phải “agent viết xong rồi cầu nguyện”. Có skill agent-cli tùy chọn dựng command line và MCP server để Claude Code, Codex hay script điều khiển app của bạn. License MIT, thoải mái dùng và sửa.
Chỗ cần cân nhắc. Repo mới 3 ngày, độ trưởng thành chưa kiểm chứng được, 531 sao phần lớn đến từ hype quanh agent skills. Ràng buộc macOS 26 và Xcode 26 là rào cản thật, nhiều máy dev còn ở bản cũ. Skill clone phụ thuộc computer use, mà cái đó cần Claude Pro hoặc Max, không miễn phí. Và bản chất đây là prompt, không phải thư viện: kết quả phụ thuộc nhiều vào model bạn chạy phía sau, cùng một skill trên Claude và trên một model yếu sẽ ra hai app khác nhau.
Một điểm nữa, clone app của người khác để học thì ổn, đem đi bán thì không. README không nói gì về chuyện này, nhưng đó là chuyện bạn tự chịu.
Nếu bạn đang có macOS 26, một agent xịn và một ý tưởng app Mac ấp ủ, thì 531 sao và 12 spec sẵn có là đủ lý do để clone về nghịch một buổi tối. Còn nếu máy còn ở macOS 15 thì để dành, đừng nâng cấp chỉ vì repo này. Xem thêm tại daveebbelaar/bama.
