🌟 Features
- 🚀 Fast Conversion: Convert VMs in seconds with optimized file copying
- 🔄 Config Translation: Automatically translates configuration parameters
- 📊 Progress Tracking: Real-time progress bars show conversion status
- 💾 Preserves Data: Maintains all VM data during the conversion process
📦 Installation
One-Line Install (recommended)
curl -fsSL https://raw.githubusercontent.com/aktech/tlume/main/install.sh | shThis installer automatically:
- Detects your OS and architecture
- Downloads the appropriate binary
- Installs to your PATH
- Provides setup instructions
Direct Download
Download the latest release for your platform.
From Source
# Clone the repository git clone https://github.com/aktech/tlume.git cd tlume # Build the binary go build -o tlume main.go # Optional: Move to your PATH sudo mv tlume /usr/local/bin/
🚀 Usage
Converting a VM is as simple as:
Example:
You can also specify a custom disk size with unit suffix:
tlume -disk-size 100GB macos-ventura # Set disk size to 100GB tlume -disk-size 2TB macos-ventura # Set disk size to 2TB
This will:
- Copy the Tart VM to Lume format
- Convert the configuration file
- Make the VM ready to use with Lume
Options
| Option | Description | Default |
|---|---|---|
-disk-size |
Disk size with unit (e.g., 100GB, 2TB) | 85GB |
⚙️ How It Works
tlume performs these operations:
- Locates the Tart VM in
~/.tart/vms/<machine_name> - Creates a Lume VM in
~/.lume/<machine_name> - Copies all VM files with optimized buffering
- Converts the Tart JSON config to Lume format
- Adjusts specific parameters (like OS naming from "darwin" to "macOS")
🧩 Technical Details
The conversion process preserves:
- VM hardware settings (CPU, memory, disk)
- Network configuration
- Display settings
- Machine identifiers
Disk Size
By default, tlume sets the disk size to 85GB for converted VMs. Since the Tart configuration doesn't include disk size information, this parameter needs to be explicitly set for Lume. You can modify this using the -disk-size flag if your VM requires more or less space. The value can be specified with a unit suffix (e.g., -disk-size 100GB or -disk-size 2TB), making it more intuitive to use. Supported units are B, KB, MB, GB, and TB. If no unit is specified, GB is assumed. Note that this setting only affects the configuration and doesn't resize the actual disk image.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
💖 Acknowledgments
- Tart - macOS VMs for Apple Silicon
- Lume - Lightweight macOS VM manager
- schollz/progressbar - For the awesome progress bar
