Current version: v0.11
Interactive MLX Server is a menu-driven zsh script for macOS that helps you install MLX, manage MLX-compatible models, and run an mlx-lm server from one terminal interface. This repository is currently documented as version v0.11.
It is designed for Apple Silicon users who want a guided workflow instead of manually running multiple python3 and pip commands.
- Checks whether
python3is installed and shows the current version. - Detects whether
mlx,mlx-lm, andhuggingface_hubare installed. - Checks for newer MLX package versions and offers guided updates.
- Uses
~/.cache/huggingfaceas the original default model location unless you change it. - Lets you switch to
~/MLX-Modelsor set a custom folder for downloaded models. - Downloads MLX-compatible Hugging Face models with progress output.
- Detects whether a downloaded model is compatible with the MLX text-generation server.
- Lets you choose a model to run with the MLX server.
- Starts and stops the MLX server from the script menu.
- Shows runtime status, including CPU use, memory usage, and best-effort macOS GPU stats.
- Removes downloaded models from the menu.
- Completely uninstalls the MLX stack and server tools if needed.
- Prompts to stop the MLX server when quitting if it is still running.
- macOS on Apple Silicon
zshpython3- Internet access for package installs, update checks, and model downloads
- MLX-compatible Hugging Face model repositories for server use
Clone or copy the project files into a folder, then run:
chmod +x interactive-mlx-setup.zsh
./interactive-mlx-setup.zshIf you prefer, you can also run:
zsh interactive-mlx-setup.zshTypical first-use flow:
- Launch the script.
- Let it check
python3,mlx, andmlx-lm. - Choose whether to keep
~/.cache/huggingface, switch to~/MLX-Models, or enter a custom model folder. - Select the download menu option when you want to add a model.
- Paste a Hugging Face model name when prompted.
- Choose a compatible server model and start the MLX server.
Example:
./interactive-mlx-setup.zshTo find MLX-compatible models, visit mlx-community models.
When the script asks for a Hugging Face URL or repo id, copy the model name from Hugging Face and paste it directly into the prompt.
Example model name:
mlx-community/Llama-3.2-3B-Instruct-4bit
Example interaction:
Choose an option: 5
Hugging Face URL or repo id (q to quit): mlx-community/Llama-3.2-3B-Instruct-4bit
You can paste either:
- A full Hugging Face URL
- A repo id such as
mlx-community/Llama-3.2-3B-Instruct-4bit
When launched, the script will guide you through:
- Checking the local
python3installation. - Detecting MLX package status.
- Installing or updating
mlx,mlx-lm, andhuggingface_hub. - Choosing a model storage folder.
- Listing existing model downloads.
- Downloading new MLX-compatible models from Hugging Face.
- Validating whether a model can be used by the MLX server.
- Starting, stopping, and monitoring the MLX server.
The script currently includes these menu actions:
- Show Python and MLX status
- Install or update MLX
- Set model folder
- Show downloaded models
- Download MLX model from Hugging Face
- Choose model for MLX server
- Start MLX server
- Show running server details
- Stop running server
- Remove downloaded model
- Completely uninstall MLX and server
qto quit
- Not every MLX-converted model is usable with the
mlx-lmtext-generation server. - Embedding-style models such as
bgefamilies are useful for retrieval or embeddings, but they are not valid chat/completion server models. - For server use, choose supported text-generation or instruct models such as Llama, Qwen, Gemma, Mistral, and other model families supported by your installed
mlx-lmversion.
- The script uses
python3explicitly for macOS compatibility. - The original default model folder is
~/.cache/huggingface. - On startup, the script offers
Yto use~/MLX-Models,Nto keep~/.cache/huggingface, orCto enter a custom path. - Memory output is shown in a human-readable format.
- GPU stats on macOS are best-effort and come from
ioreg, so they may vary by system and OS version. - The script stores local configuration and server state in
~/.interactive-mlx-setup/when possible, with a local fallback if needed. - The script accepts
qin prompts and can also ask whether to stop the running MLX server before quitting.
interactive-mlx-setup.zshMain interactive script.README.mdUsage and feature overview.LICENSEMIT license for free use and modification.GitWorkflow.mdSeparate Git and GitHub publishing notes..gitignoreIgnore rules for local state and machine-specific files.
Git and GitHub upload instructions have been moved to GitWorkflow.md so the main README stays focused on usage.
- Script workflow built around MLX and
mlx-lm - Script header note states it was generated and edited with the Codex App