Keep the harness
Claude Code, Codex, OpenCode, and Pi keep their own request format.
Messages · Responses · Chat Run MLX models on your Mac today. Give every coding agent one local endpoint for local and approved remote models.
Harness input
qwen3.5:9b policy + account One local endpoint. Native protocol at each edge.
The switchboard
A harness keeps its native protocol. ppmlx selects an approved model, preserves tool meaning, and returns the expected response shape.
Claude Code, Codex, OpenCode, and Pi keep their own request format.
Messages · Responses · Chat The policy checks tools, privacy, health, account, and fallback rules.
Agent IR · route policy A local MLX model or an approved provider answers the request.
local first · remote opt-in No silent tool repair. No credential reuse from another app. No fallback after output starts.
Read the decisions →Every workflow fits in one command. See the real CLI in action.
MacBook Pro M4 Pro, 48 GB. Same prompts, 3 runs averaged. All models 4-bit quantized.
Install one Python package. Run the server on your Mac. Connect through the protocol that your tool expects.
Run quantized language models on Apple Silicon with native MLX execution.
Use Chat Completions, Responses, or Anthropic Messages with one local server.
Stream tool calls to Codex, Claude Code, OpenCode, and other compatible clients.
Use local images and vectors through optional MLX packages and the same server.
Select Llama, Qwen, Mistral, Phi, Gemma, DeepSeek, and other curated MLX models.
Capture scoped events locally. Inspect the graph through CLI and MCP tools.
Experimental local memory
ppmlx can capture scoped events in a local temporal graph. It does not add hidden memory to every prompt.
The harness decides when memory can help. ppmlx enforces the read grant.
Run MLX models now. Follow the switchboard work in public.