What's on your mind?

Runs entirely on this Mac. Models can make mistakes.
{s}

Models

OpenAI Chat Completions

POST
/v1/chat/completions
Streaming and non-streaming · tool calling · JSON mode · vision (when supported)
POST
/v1/completions
Legacy text completions

OpenAI Responses

POST
/v1/responses
Stateful responses with tool calling · stream/non-stream · vision
POST
/v1/responses/compact
Compact a conversation into a round-trippable opaque blob
GET
/v1/responses/{id}
Retrieve a stored response envelope
DEL
/v1/responses/{id}
Delete a stored response
WS
/v1/responses
WebSocket transport · per-connection store-false cache · sequential turns

Anthropic Messages

POST
/v1/messages
Claude SDK / Claude Code compatible · stream & non-stream · tool use · thinking blocks

Ollama

POST
/api/chat
Ollama chat · NDJSON stream (default on) · tool calls · images · think
POST
/api/generate
Ollama completion · templated or raw
GET
List local models (ollama list)
POST
/api/show
Model details, template and parameters
GET
Models currently resident in memory
POST
/api/pull
Download a model from Hugging Face · NDJSON progress
GET
Version string (clients probe this to detect an Ollama server)
POST
/api/embed
Embeddings, current shape (input string or array)
POST
/api/embeddings
Embeddings, legacy shape (prompt)

Embeddings & utilities

POST
/v1/embeddings
Vector embeddings (encoder-only models)
POST
/tokenize
Tokenize a string
POST
/detokenize
Detokenize an id sequence

Media generation

POST
/v1/images/generations
FLUX.2, Krea & Mage-Flow text-to-image · img2img + instruction edit · runtime LoRA · base64 PNG
POST
/v1/images/edits
OpenAI-compatible image editing · multipart form · one or more reference images + an instruction
POST
/v1/audio/speech
Qwen3-TTS (zero-shot voice cloning) or Kokoro (54 blendable voices) · WAV
POST
/v1/audio/music-generations
ACE-Step text-to-music · 48 kHz stereo WAV
POST
/v1/video/generations
LTX-Video or MiniMax-H3 · text / image / audio → video with its own soundtrack · frames + PCM
POST
/v1/3d/generations
Hunyuan3D-2.1 · one photo → GLB mesh · optional PBR texturing

Model management

POST
/v1/load-model
Load a discovered model, or register + load one by absolute path
POST
/v1/unload-model
Free a model's memory now
POST
/v1/models/rescan
Pick up models added to the model folders since startup
GET
Configured upstream chat providers (~/.mlx-serve/providers.json) and whether each answered its last probe
POST
/v1/providers/reload
Re-read providers.json and re-probe now

Discovery

GET
OpenAI models list (id, capabilities, context length) — this console's model picker
GET
llama.cpp-style server props (chat template, memory)
GET
Liveness probe
GET
Prometheus metrics, text exposition format (enable with --metrics)
GET
Metrics as JSON — drives the Monitor panel (enable with --metrics)

Quick start

curl http://localhost:{d}/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{"model":"your-model-id","messages":[{"role":"user","content":"hello"}]}'