Brew Migrator 🍺
Port your /Applications to Homebrew Casks with a Charm-powered TUI.
scan → match → select → install
Built with Bubble Tea, Bubbles, Lip Gloss, and Huh.
Features
- Live scanning — real-time table updates as apps are matched to casks
- Smart auto-selection — score >90 → ⭐ near perfect pre-checked, 50–90 → 🤔 maybe unchecked, <50 → ❓ questionable unchecked
- Keyboard-driven —
↓↑ navigate, space toggle, enter confirm
- Progress bars — animated installation with gradient progress
- History — persistent JSON-backed migration history
- All Charm — unified design system with lipgloss styling, spinners, borders, and huh confirmations
Quick start
# Install
go install github.com/ahmetyilmaz/brew-migrator@latest
# Or build from source
git clone https://github.com/ahmetyilmaz/brew-migrator.git
cd brew-migrator
go build -o bin/brew-migrator .
./bin/brew-migrator
Requires: macOS + Homebrew
How it works
- Scan — discovers every
.app bundle in /Applications
- Match — runs
brew search --cask for each app, scores candidates by name similarity
- Select — presents an interactive checkbox list;
↓↑ to move, space to toggle
- Install —
brew install --cask with a live progress bar
- History — browsable record of every migration attempt
Visual design
| Screen |
Description |
| Menu |
Styled menu with cursor, live plan/history counts |
| Scan |
Live-updating table, spinner, status badges |
| Select |
Checkbox list with quality emoji indicators |
| Install |
Gradient progress bar, real-time result log |
| Summary |
Success/fail breakdown |
| History |
Table of past migrations, sorted newest first |
Thresholds
| Score |
Label |
Auto-selected |
| >90 |
⭐ near perfect |
✅ |
| 50–90 |
🤔 maybe |
❌ |
| <50 |
❓ questionable |
❌ |
| no match |
⏭ skipped |
❌ (disabled) |
Architecture
main.go — program entry, tea.NewProgram
tui.go — all TUI screens (menu, scan, select, install, summary, history)
styles.go — lipgloss colour palette and reusable style definitions
brew.go — Homebrew ops, app scanner, fuzzy matching, scoring, history
Tech stack
- Bubble Tea — Elm-architecture TUI framework
- Bubbles — table, spinner, progress, viewport, help components
- Lip Gloss — terminal styling
- Huh — confirmation dialogs