Migrate applications from /Applications to Homebrew Casks
Project description
Homebrew App Migrator
A retro-styled CLI tool to migrate manually installed macOS applications from /Applications to Homebrew Casks.
Why this tool?
If you've ever bought a new Mac and spent hours manually downloading .dmg files, dragging them to /Applications, and trying to remember everything you had installed, this tool is for you.
Homebrew is the gold standard for managing software on macOS, but it only works if your apps are installed as "Casks." Most people have a mix of apps they downloaded from websites and apps installed via Homebrew.
The Power of the Brewfile
Once your apps are migrated to Homebrew Casks using this tool, you can run:
brew bundle dump
This generates a Brewfile (like this example). This single file is like a "save game" for your entire Mac setup. On a new machine, you just run brew bundle and every single app is automatically installed for you in minutes.
Features
- Retro UI: A terminal-based interface that feels like an old-school computer system.
- Intelligent Search: Automatically finds the correct Homebrew Cask for your installed apps.
- Dry Run Mode: Safe simulation mode to see what would happen without making any changes.
- Migration History: Remembers what you've already migrated, skipped, or failed.
- Batch Mode: Quick-install the best matches for all your apps at once.
- Paginated Results: Easily browse through multiple search results.
Installation
Via PyPI (Recommended)
Install the latest stable version directly from PyPI:
pip install brew-migrator
From Source (Development)
-
Clone the repository:
git clone https://github.com/chriszimbizi/brew-migrator.git cd brew-migrator
-
Install in editable mode:
pip install -e .
Usage
After installation, you can run the tool using the brew-migrator command:
brew-migrator [OPTIONS]
Options
--dry-run: (Highly Recommended) Simulate the migration without making any changes.--list-apps: List all applications found in your/Applicationsfolder.--app "AppName": Process a specific application by name.--batch: Run in batch mode (automatically install the top match).--retry-skipped: Retry apps that were previously skipped.--reset-history: Clear the migration history file.
Examples
Safe Simulation:
brew-migrator --dry-run
List all apps:
brew-migrator --list-apps
Run in batch mode:
brew-migrator --batch
How it Works
- Scan: The tool looks at everything in your
/Applicationsfolder. - Search: It asks Homebrew if there's a corresponding "Cask" for each app.
- Selection: You choose the correct match from a list (or let Batch Mode handle it).
- Log: The tool records the migration in a JSON history file to prevent double-work.
Project Structure
.
├── LICENSE
├── README.md
├── pyproject.toml
└── src
└── brew_migrator
├── cli.py
├── core
│ ├── brew.py
│ └── history.py
└── ui
└── console.py
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brew_migrator-0.0.2.tar.gz.
File metadata
- Download URL: brew_migrator-0.0.2.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05f1cf4ae78f175dee67c29c063dc38be171d42e68077be840b9795e7665206f
|
|
| MD5 |
cdc5dba5c0c191438f23ab2018c9b473
|
|
| BLAKE2b-256 |
3062b48f29a021479f6434ab890673ee0a807fab960c9b9caff9d2640bdca315
|
File details
Details for the file brew_migrator-0.0.2-py3-none-any.whl.
File metadata
- Download URL: brew_migrator-0.0.2-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cc25948ad1498221b0e446565c24cab21378880aa7add470bcbb6c09972500f
|
|
| MD5 |
713117ed80da00db86adcf1a4f2f1b1b
|
|
| BLAKE2b-256 |
be410b671c04d5669ebbd8ce3aff396a45835515f6adadaad664270b65198909
|