Packages oMLX as a macOS menubar app using venvstacks.
- macOS 15.0+ (Sequoia) — required by MLX >= 0.29.2
- Apple Silicon (M1/M2/M3/M4)
- Python 3.11+
- venvstacks:
pip install venvstacks
cd packaging
# Full build (venvstacks + app bundle + DMG)
python build.py
# Skip venvstacks build (use existing environment)
python build.py --skip-venv
# DMG only (use existing build)
python build.py --dmg-onlypackaging/
├── build/
│ ├── venvstacks/ # venvstacks build cache
│ ├── envs/ # Exported environments
│ └── oMLX.app/ # App bundle
└── dist/
└── oMLX-<version>.dmg # Distribution DMG
oMLX.app/
├── Contents/
│ ├── Info.plist
│ ├── MacOS/
│ │ └── oMLX # Launcher script
│ ├── Resources/
│ │ ├── omlx_app/ # Menubar app
│ │ ├── omlx/ # oMLX server
│ │ └── AppIcon.icns
│ └── Frameworks/
│ ├── cpython3.11/ # Python runtime
│ ├── mlx-framework/ # MLX + dependencies
│ └── omlx-app/ # App layer
| Layer | Contents |
|---|---|
| Runtime | Python 3.11 |
| Framework | MLX, mlx-lm, mlx-vlm, FastAPI, transformers |
| Application | rumps, PyObjC |
- Open the DMG file
- Drag oMLX.app to the Applications folder
- Launch the app (appears in the menubar)
- Set the model directory in Settings
- Click Start Server