Skip to main content

Migrate applications from /Applications to Homebrew Casks

Project description

Homebrew App Migrator

PyPI version Python versions License

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)

  1. Clone the repository:

    git clone https://github.com/chriszimbizi/brew-migrator.git
    cd brew-migrator
    
  2. 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 /Applications folder.
  • --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

  1. Scan: The tool looks at everything in your /Applications folder.
  2. Search: It asks Homebrew if there's a corresponding "Cask" for each app.
  3. Selection: You choose the correct match from a list (or let Batch Mode handle it).
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brew_migrator-0.0.2.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brew_migrator-0.0.2-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

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

Hashes for brew_migrator-0.0.2.tar.gz
Algorithm Hash digest
SHA256 05f1cf4ae78f175dee67c29c063dc38be171d42e68077be840b9795e7665206f
MD5 cdc5dba5c0c191438f23ab2018c9b473
BLAKE2b-256 3062b48f29a021479f6434ab890673ee0a807fab960c9b9caff9d2640bdca315

See more details on using hashes here.

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

Hashes for brew_migrator-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5cc25948ad1498221b0e446565c24cab21378880aa7add470bcbb6c09972500f
MD5 713117ed80da00db86adcf1a4f2f1b1b
BLAKE2b-256 be410b671c04d5669ebbd8ce3aff396a45835515f6adadaad664270b65198909

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page