Skip to content

Back to the catalog

Gökdeniz Gülmez (@ActuallyIsaak) on X
x.comthread

Gökdeniz Gülmez (@ActuallyIsaak) on X

An X post showing how to have Codex train a small model on Apple silicon through the mlx-lm-lora MCP server and skill. It gives five setup steps (pip install with the mcp extra, npx skills add, locate mlx-lm-lora-mcp, codex mcp add). The prompt runs four pre-training trials on tiny-random/qwen3 with the mlx-community/recycling_the_web-1k dataset. Codex picks the optimizer and learning rate itself, and the result is a table with validation loss and the best adapter path.

TL;DR Shows how to wire mlx-lm-lora's MCP server and skill into Codex so it runs and compares small pre-training trials on Apple silicon.
Document

What it claims

Gökdeniz Gülmez (@ActuallyIsaak) shows OpenAI Codex running small pre-training experiments on Apple silicon through the MCP server and agent skill that ship with mlx-lm-lora. In the example, Codex pre-trains tiny-random/qwen3 four times on mlx-community/recycling_the_web-1k. It chooses the optimizer and hyperparameters for each trial, then reports which trial reached the lowest validation loss.

How to use it

Setup is five steps. The commands below are verbatim from the post.

python3 -m pip install -U "mlx-lm-lora[mcp]"
npx skills add Goekdeniz-Guelmez/mlx-lm-lora --skill mlx-lm-lora -a codex -g
which mlx-lm-lora-mcp
codex mcp add mlx-lm-lora -- {path}

{path} is the output of which mlx-lm-lora-mcp. The fifth step is to start chatting with Codex.

The prompt fixes these constraints across all trials:

  • Model: tiny-random/qwen3.
  • Dataset: mlx-community/recycling_the_web-1k.
  • Task: pre-training, run as a single SFT recipe.
  • 100 steps, global batch size 8, context length 128.

Codex may change only the optimizer, learning rate and schedule. Each trial uses a different seed and is evaluated on a held-out slice.

The prompt limits Codex to the mlx-lm-lora MCP server and skills, with no other training stack. It has two stop conditions:

  • If the model does not resolve, Codex asks the user before continuing.
  • If the MCP server cannot satisfy a fixed constraint, Codex stops and reports it.

The requested output is a table with one row per trial. Its columns are optimizer, learning rate, schedule, seed, final train loss, and validation loss or perplexity. Codex also returns the best trial's config and its saved adapter path.

Limits

The post's text contains no results. Any trial table, loss values, chosen optimizers, run times or hardware details would be in the attached video, which is not transcribed. tiny-random/qwen3 is a tiny model trained for 100 steps at context length 128, so the example shows the agent workflow working, not usable model quality. The post names no Codex version, no mlx-lm-lora version and no minimum Mac hardware.

Organisations named here

  • MLX Community
  • Apple
  • Goekdeniz-Guelmez
  • mlx-community/recycling_the_web-1k
  • tiny-random/qwen3

Technologies named here

  • mlx-lm-lora
  • Qwen3
  • Codex
  • mlx-lm-lora-mcp
  • npx skills
  • MLX
  • Model Context Protocol
  • LoRA
  • npm
  • Hugging Face
  • Python

Techniques named here

  • Agent-driven hyperparameter search via MCP
  • Pre-training with SFT recipe on Apple silicon