Skip to content

Fix: just setup omits mlx-audio/mlx-lm install on Apple Silicon#681

Open
august-hill wants to merge 1 commit into
jamiepine:mainfrom
august-hill:fix/just-setup-mlx-audio
Open

Fix: just setup omits mlx-audio/mlx-lm install on Apple Silicon#681
august-hill wants to merge 1 commit into
jamiepine:mainfrom
august-hill:fix/just-setup-mlx-audio

Conversation

@august-hill
Copy link
Copy Markdown

@august-hill august-hill commented May 20, 2026

Problem

A fresh just setup on Apple Silicon produces a venv missing the mlx_audio module. Any MLX model load — e.g. downloading Whisper for dictation — then fails with:

ModuleNotFoundError: No module named 'mlx_audio'

In the app this surfaces as a model download that appears to stall on "Connecting to download…": the background download task raises immediately, but the progress UI is never moved off its initial state, so it looks like a hung/slow download rather than an error.

Root cause

backend/requirements-mlx.txt intentionally excludes mlx-audio — from 0.3.1 it declares transformers>=5.x, which conflicts with the transformers<=4.57.6 cap in requirements.txt. That file's own comment says to install it separately with pip install --no-deps mlx-audio==0.4.1, pointing to .github/workflows/release.yml.

release.yml does exactly that. But setup-python in the justfile — the path every contributor and local builder uses — installs requirements-mlx.txt and stops. Release builds get mlx-audio; local dev/build setups silently do not.

Fix

Add the two --no-deps installs to the Apple Silicon branch of setup-python, mirroring release.yml:

pip install --no-deps mlx-lm==0.31.1
pip install --no-deps mlx-audio==0.4.1

Windows setup-python is unaffected (no MLX path). One file changed (justfile).

Testing

On an M-series Mac, after applying the fix:

  • python -c "import mlx_audio, mlx_lm" succeeds.
  • The whisper-turbo model (openai/whisper-large-v3-turbo, 1.62 GB) downloads and loads:
    INFO: Marked whisper-turbo as complete
    INFO: MLX Whisper model turbo loaded successfully
    

Note on the PR checklist

CONTRIBUTING.md asks contributors to update CHANGELOG.md, but CHANGELOG.md's header states it is compiled automatically and must not be edited manually. I left it untouched accordingly — flagging the doc inconsistency in case the checklist wording should be revisited.

Summary by CodeRabbit

  • Chores
    • Updated Python environment setup for Apple Silicon systems to install specific package versions with enhanced dependency management, preventing potential runtime conflicts.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 20, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b9bd2a10-f7a2-4b92-a69d-6e439f1afe50

📥 Commits

Reviewing files that changed from the base of the PR and between b35b909 and 36e7868.

📒 Files selected for processing (1)
  • justfile

📝 Walkthrough

Walkthrough

The justfile now explicitly pins and installs MLX packages (mlx-lm==0.31.1 and mlx-audio==0.4.1) using pip install --no-deps on Apple Silicon systems during the setup-python target, avoiding dependency conflicts and runtime issues.

Changes

MLX Package Installation for Apple Silicon

Layer / File(s) Summary
MLX pip installs with fixed versions
justfile
Added two --no-deps pip install steps for mlx-lm==0.31.1 and mlx-audio==0.4.1 within the existing Apple Silicon branch of setup-python, guarded by existing MLX checks and including explanatory comments about avoiding dependency conflicts and missing runtime dependencies.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • jamiepine/voicebox#482: Implements the same MLX workaround to avoid transformers dependency conflicts for pinned mlx-lm and mlx-audio packages.
  • jamiepine/voicebox#506: Addresses mlx-audio STT dependency gaps by explicitly adding miniaudio to work with --no-deps installs of the same pinned packages.

Poem

🐰 Silicon arm embraces MLX with care,
No-deps installs guard dependencies fair,
Version pinned to 0.31, audio too,
Apple's Apple keeps the workflow true! 🍎

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main fix: adding missing mlx-audio and mlx-lm installations for Apple Silicon in the justfile setup process.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant