Cross-platform boot OS selector for Linux, Windows, and macOS
Project description
OS Flip 🌀
A cross-platform terminal tool to view, set, and flip your default boot OS on Linux, Windows, and macOS.
✨ Overview
OS Flip is a Python-based utility to manage boot preferences across dual-boot or multi-boot systems. Whether you're switching between Linux and Windows or managing a macOS Boot Camp setup, OS Flip gives you a simple terminal UI to:
- 🔍 View bootable OS entries
- ✅ Set the default OS
- 🔁 Temporarily Flips into another OS
🖥️ Platforms Supported
- 🐧 Linux (GRUB2)
- 🪟 Windows (
bcdedit) - 🍎 macOS (
bless) — experimental
⚙️ Features
- 🧠 Auto-detects current OS
- 📜 Lists all boot entries
- ✅ Set permanent default boot entry
- 🔁 Flip OS temporarily
- 💬 Color-coded terminal UI
- 📁 Logs activity to a platform-specific log file
- 🪟 Windows
.exeversion available
📦 Installation
✅ Via pip (All Platforms)
pip install os-flip
Then run:
sudo os-flip # On Linux/macOS
os-flip # On Windows (admin)
Requires Python 3.6+
📥 Windows .exe (no Python required)
➡️ Download from GitHub Releases
Right-click → Run as Administrator May trigger SmartScreen warning (unsigned binary)
📋 Requirements
Linux:
- Python 3
- GRUB2 bootloader
os-prober,update-gruborgrub2-mkconfigsudoor root privileges
Windows:
- Python 3 (for pip version)
- Admin privileges
bcdeditaccess
macOS:
- Python 3
- Tools:
diskutil,systemsetup,bless - Run with
sudo - ⚠️ SIP and volume restrictions may apply
🚀 Example Output
____ _____ ______ _ _____ _____
/ __ \ / ____| | ____| | |_ _| __ \
| | | | (___ ___ | |__ | | | | | |__) |
| | | |\___ \ | __| | | | | | ___/
| |__| |____) | | | | |____ _| |_| |
\____/|_____/ |_| |______|_____|_|
Welcome to OS FLIP
By - AK (Your OS)
📜 Available Boot Entries:
1. Windows Boot Manager (on /dev/nvme0n1p1) (Current Default)
2. Fedora Linux
⚙️ Options:
1. Set default boot OS
2. Flip OS
3. Exit
📂 Log Location
| OS | Log File Path |
|---|---|
| Linux | /tmp/os_flip_<username>.log |
| macOS | /tmp/os_flip_<username>.log |
| Windows | %TEMP%\os_flip_<username>.log |
🧪 Tested On
| OS | Status |
|---|---|
| Ubuntu 22.04 | ✅ Confirmed |
| Fedora 40 | ✅ Confirmed |
| Windows 10/11 | ✅ Confirmed |
| macOS (Intel) | ⚠️ Experimental |
🚧 Disclaimer
⚠️ Use at your own risk. Editing bootloader configs may prevent systems from booting. Always back up and know what you're changing.
👨💻 Author
Made with ❤️ by AK MIT Licensed — attribution appreciated!
🔗 Related Links
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
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 os_flip-1.0.2.tar.gz.
File metadata
- Download URL: os_flip-1.0.2.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaecadcafdf6ca6228771f811e159e86925c740806c6bd4dc68206e738e0840d
|
|
| MD5 |
5d1b75ba7a8c82d01b22f23bcd5ca069
|
|
| BLAKE2b-256 |
09dfebc0803d7804b7af6e83561ada9b7f169d47674b5d3a6894b3674245f344
|
File details
Details for the file os_flip-1.0.2-py3-none-any.whl.
File metadata
- Download URL: os_flip-1.0.2-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78d2a617ccf04fb3582ff10cf69931245468d1190d4e29af51a8de37463c4523
|
|
| MD5 |
c12b229eef7cad9d5768fe7c71ccf819
|
|
| BLAKE2b-256 |
ee6b34ce8bba06ad90fae5c79760212b5c02f959d236a0d3a43827fdfdb5684a
|