See an app you like. Rebuild it as your own native Mac app.
Agent skills that take a native macOS app from idea to your Dock.
Swift and SwiftUI. Local data. No Xcode GUI.
Quick start · How it works · Skills · Specs · Install
Quick start
npx skills@latest add daveebbelaar/bama
Then ask your agent:
Clone my to-do app as a native Mac app.
Screenshot every screen, write the user stories, and build milestone 1.
Not sure where to start? Type /bama. It looks at your project and picks the next skill.
How it works
1. Clone Your agent opens the app you like and screenshots every screen. It writes a screen index. |
2. Plan It turns the screens into user stories with checkable acceptance criteria, in milestones. |
3. Build It builds one story per commit. Before each commit it snapshots every page in light and dark mode and runs the tests. |
Skills
| Stage | Skill | What it does |
|---|---|---|
| Start | bama | Router: finds where you are and calls the right skill |
| app-brief | Turns an idea into a one-page brief | |
| new-mac-app | A working app from a template: Swift package, SwiftData, build script, snapshot mode, git | |
| Plan | research | Parallel researcher agents: market, users, features, design, macOS APIs |
| clone | Screenshots every screen of any app with computer use or a browser, writes a screen index | |
| user-stories | A backlog with checkable acceptance criteria, in milestones | |
| Code | swift-swiftui | Swift 6 concurrency, state, SwiftData, AppKit bridges, compiler errors |
| os-integrations | Global hotkeys, menu bar, floating panels, window control, screen capture, Shortcuts, URL schemes, CLI, permissions | |
| performance | Measure, then fix: main thread, GPU compositing, images, Instruments from the command line | |
| improve-architecture | Finds hot spots as the app grows and refactors one step per commit, with behavior proven unchanged | |
| agent-cli | Optional: a command line and MCP server, so Claude Code, Codex, and scripts can drive your app | |
| Design | ux-design | Names, flow, where each feature opens (inline, popover, sheet, window), words, and accessibility, before code |
| mac-design | Liquid Glass, layout, toolbars, menus, keyboard, type, dark mode | |
| design-system | Native look with an accent color people pick in Settings, then one set of tokens and one rules page | |
| layout-grid | A 4 pt grid with checks that fail on misalignment: a code lint, a layout probe in snapshot mode, and a grid overlay | |
| design-kit | Your own parts, not Apple's: three token layers, type, an icon set, every part in every state, custom window chrome, and a parts gallery | |
| design-from-app | Rebuilds the look of an app you like from its screenshots: measures sizes, type, and colors, then compares pixel by pixel until it matches | |
| app-icon | A Liquid Glass icon written as an Icon Composer file, checked in every look | |
| Ship | build-and-verify | Build, install, snapshot every page in light and dark, look at them |
| test-mac-app | Swift Testing, an in-app self-test, a debug bridge an agent can drive | |
| improve-loop | Works through the backlog one story per commit until a milestone is done |
Specs
Not sure what to build? specs/ has 12 build plans for small Mac apps: a window snapper, a window switcher, a launcher, clipboard history, screenshots, a screen recorder, and more. I took them apart from Onyx, my own menu bar app. Copy one into an empty folder and tell your agent:
Build the app in window-snapper.md with BAMA.
Install
Pick one route per agent. Two routes install every skill twice.
Claude Code
/plugin marketplace add daveebbelaar/bama
/plugin install bama@bama
Codex
codex plugin marketplace add daveebbelaar/bama
codex plugin add bama@bama
Any other agent (Cursor, Gemini CLI, Copilot, and more)
Uses skills.sh. Install all skills, or one with --skill.
npx skills@latest add daveebbelaar/bama -a <agent>
npx skills@latest add daveebbelaar/bama --skill=clone
By hand
git clone https://github.com/daveebbelaar/bama.git
bama/scripts/link-skills.sh # links every skill into ~/.claude/skills and ~/.agents/skills
Requirements
- macOS 26 or later
- Xcode 26 or later, for the Swift 6.2 toolchain (you never open it)
- An agent that supports skills: Claude Code, Codex, Cursor, Gemini CLI
- For
cloneon native apps: computer use (Claude Pro or Max)
Credits
- The idea and the "any" promise come from REA: Reverse Engineer Anything by morluto. REA showed that an agent can reverse engineer any app. BAMA takes that idea to the Mac.
- Skill format and writing rules follow Matt Pocock's
skills and his
writing-for-agentsskill. - Works well with SwiftUI Pro by Paul Hudson and SwiftUI Expert by Antoine van der Lee.