The motivation: I was tired of juggling multiple Python CLI scripts, JSONL formatting, and environment issues just to run a simple LoRA fine-tune on my Mac.
Courtyard is essentially a UI wrapper around mlx-lm combined with data preparation tools. It handles:
Dataset formatting and cleaning (privacy filtering, deduplication). Local LoRA fine-tuning via MLX on Apple Silicon. An integrated chat UI for A/B testing the base model vs. the fine-tuned adapter. Exporting to GGUF or directly to an Ollama runtime. The stack is Tauri 2.x + React + Rust + Python (mlx-lm). It's fully open-source (AGPL).
Repo: https://github.com/Mcourtyard/m-courtyard
I'd love to hear your thoughts on the architecture, MLX implementation, or any edge cases you run into. Happy to answer technical questions.