Configuration¶
Configuration lives at two distinct layers: the installer layer (controlled by environment variables and interactive prompts) and the app layer (the Settings panel inside MLX Training Studio). The installer does not manage app-internal settings.
Installer configuration¶
Environment variables¶
All MLX_TS_* variables can be set in your shell or exported from a script. They are read at runtime — the installer never writes a config file of its own.
| Variable | Description | Default | Example |
|---|---|---|---|
MLX_TS_NONINTERACTIVE | Set to 1 to skip all interactive prompts and accept defaults. | (unset) | MLX_TS_NONINTERACTIVE=1 |
MLX_TS_SOURCE_DIR | Directory where the upstream source is cloned. | ~/Library/Application Support/MLX Training Studio/source | MLX_TS_SOURCE_DIR=/opt/mlx-lm-gui |
MLX_TS_INSTALL_DIR | Parent directory for the installed .app. | /Applications | MLX_TS_INSTALL_DIR="${HOME}/Applications" |
MLX_TS_REF | Git ref (commit SHA, branch, tag) to check out after cloning. Empty string tracks HEAD. | (empty — tracks HEAD) | MLX_TS_REF=a3f9c21 |
MLX_TS_LIB_DIR | Path to the installer's lib/ directory. Set automatically by the Homebrew shim. | (auto-resolved relative to bin/) | (rarely needed manually) |
Unattended / CI installs
Combine variables for a fully automated install with no prompts:
Interactive prompts¶
When running interactively (TTY detected, MLX_TS_NONINTERACTIVE not set), mlx-training-studio install asks three questions:
- Source directory — where to clone
stevenatkin/mlx-lm-gui. - Install location —
/Applications(choice 1) or~/Applications(choice 2). - Git ref — leave blank to track HEAD, or enter a commit SHA / tag.
Pressing Enter at each prompt accepts the shown default.
App-internal configuration¶
The app stores all its settings in macOS user preferences (via UserDefaults). You interact with them through the Settings panel — the installer has no knowledge of or control over them.
Settings panel fields¶
| Field | Purpose |
|---|---|
| Python Interpreter | Absolute path to the Python 3.12+ binary the app will use for training. |
| Hugging Face Token | Read token for downloading gated models from the Hub. |
| llama.cpp path | Optional — path to llama.cpp for GGUF export. |
| Virtual Environment | Controls for creating the venv, installing mlx-lm-lora, and running the smoke test. |
See First Run for a guided walkthrough of the Settings panel.
Training job YAML configurations¶
Each training job in the app is backed by a YAML configuration file. The app's Configuration Preview pane shows the current YAML:
Screenshot from upstream stevenatkin/mlx-lm-gui · Apache-2.0
A typical training config YAML looks like:
model: Qwen/Qwen2.5-0.5B-Instruct
data: ~/datasets/my-finetune-data
batch_size: 4
lora_parameters:
rank: 8
alpha: 16
dropout: 0.05
target_modules:
- q_proj
- v_proj
num_epochs: 3
learning_rate: 1.0e-4
These YAML files are reusable — you can export a config from the app, version it in your own repository, and re-import it for reproducible training runs. The installer does not read, write, or modify these files.
Note
The location of stored training configs is managed by the app itself, typically inside ~/Library/Application Support/MLX Training Studio/. The installer manifest at that location is a separate file (manifest.json) and does not interfere with the app's configs.