Free · Open source · No subscription · Native macOS app · v0.1 beta 3

Make and edit images by chatting. Free and private, on your Mac.

Describe an image. Then say what to change. dMLX works out which image you mean, writes the prompt for you, picks a model for the job, and keeps every version. No account, no cloud, no subscription. Make as many images as you like.

v0.1.0-beta3 · 156 MB · .dmg · all releases

Apple Silicon (M1 or newer) · macOS 15 or later · 16 GB of memory · about 7–11 GB of disk for models, downloaded on first start

This is a beta. The agent can still pick the wrong image or model. Known issues

A dMLX chat. The message 'make the boat red' turns a wooden rowboat on a misty mountain lake red. The result is Image 2, edited from image 1, with versions v1 and v2.
What you can make

Ask in plain words. Get the image.

No masks, no prompt tricks. Each example is one chat with the model set to Auto, so the agent picked the model. Times are from an M5 Mac with 24 GB of memory.

remove the coffee mug
FLUX.2 Klein 4B36 s
remove the person
FLUX.2 Klein 4B40 s
remove all the text from the window
Qwen Image 2.1about 5 min
An art deco jazz poster with MIDNIGHT ECHO in gold letters.
a jazz night poster, MIDNIGHT ECHO in large gold letters
Qwen Image 2.1about 4 minPortrait
A wide bakery banner of loaves with FRESH BREAD DAILY at the top.
a bakery banner with the words FRESH BREAD DAILY
Qwen Image 2.1about 4 minLandscape
A red rowboat with version buttons v1 and v2, Variations and Crop / Draw.
make a variation
Every result keeps v1, v2, v3Nothing is overwritten. Go back to any version.
The agent

You talk. It writes the prompt.

A small agent on your Mac reads your chat and its images, and plans each message in a few seconds (about 3–10 s). Then it steps aside, so the image model gets the memory.

  1. 1

    Knows what you asked for

    A new image, an edit, or no image at all. Say "hello" or "thanks" and it just replies.

  2. 2

    Keeps track of your images

    Say "make the boat red" and it edits the boat from image 1, even if you have made other images since.

  3. 3

    Writes the prompt for you

    A full description for a new image, or a clear edit instruction. No prompt syntax to learn.

  4. 4

    Picks a model for the job

    Quick edits go to FLUX.2 Klein 4B. If you added Qwen Image 2.1, exact words in the image go to it. Your choice wins: it never overrides a model you chose.

The message 'make them match' gets a clarifying question, with Create new and Edit current buttons.

When it isn't sure, it asks one short question instead of guessing.

The teapot is edited to look like the weathered wood of the boat, using the boat as a reference.

"give the teapot the same weathered wood as the boat" · uses 1 reference image

The agenton your Mac · about 3–10 s

  1. 1

    Reads the chat

    Your message
    and the recent lines of the chat
    The latest image
    or the images you attached
    Every image
    in the chat, listed with its prompt
    The models
    it may pick, and the free memory

    e.g."make the boat red" · it sees image 2, a teapot

  2. 2

    Looks closer

    if it needs to
    Look
    opens up to 3 older images, twice at most
    Read
    the whole chat when the recent lines aren’t enough
    Resolves
    "it", "the first one", "undo the hat"
    Trusts
    what it sees over an old prompt

    e.g.looks at image 1 · a rowboat

  3. 3

    Decides and writes

    New image
    a full description, 40–120 words
    Edit
    the image to change, up to 2 references, one clear instruction, then a detailed description of the result
    Model
    on Auto, the one that fits the job, its speed and the free memory
    Or
    one short question when unsure, or a reply when you’re just talking

    e.g.edit image 1 · "Make the wooden rowboat red" · FLUX.2 Klein 4B

The image jobafter the plan

  1. 4

    Checks the plan

    plain code
    Images
    exist in the chat; an edit has one; 3 at most
    Models
    it wasn’t offered are ignored
    Retry
    a plan that fails is sent back once, with the reason
    Still unusable
    it asks you instead of guessing

    e.g.image 1 exists · edit is possible

  2. 5

    Makes the image

    Unload
    the agent leaves memory first
    Memory check
    loads the model all at once, in phases, or piece by piece
    Not enough
    it doesn’t start: Retry, or Try anyway
    Result
    a new image, or a new version of one

    e.g.Image 3 · edited from image 1

One message, start to finish. The agent makes the choices; plain code only refuses what can’t run.
Memory check

It checks memory first, not after your Mac slows down.

Before each image job, dMLX checks how much memory is free. If memory is tight, it loads the model piece by piece. If there still isn't enough, it tells you and doesn't start the job. Tested on a simulated 16 GB Mac; see the known issues.

Private and offline. After the models download, every step runs on your Mac. No account, no cloud.
Clear about limits. It tells you what a model needs and what is free, and lets you decide whether to try anyway.
Free, with no subscription. No credits and no per-image fees. Your Mac does the work.
How dMLX controls memory →
Crop / Draw

Point at it. Then say what to change.

When words aren't enough, crop to the area you care about, circle what to change, then attach it and say what to do. Ask it to remove your marks too. Your original image is never changed.

The crop frame around a white teapot.
1 · CropKeep only the area you care about.
A red circle painted around the teapot, with one stray line.
2 · PaintMark the area to change.
The stray line erased; the circle remains.
3 · EraseRemove a wrong mark. Only paint is erased.
The teapot now has a blue and white floral pattern and no red marks.
4 · Ask"paint a blue and white floral pattern where I circled, and remove the red marks"
Local API

Plug it into your own tools.

The engine serves an OpenAI-compatible images API on your Mac. Point any app or coding agent that speaks /v1/images at it, with no per-image fees. To run it on its own, use a clone of the repo.

Engine API reference →
# from a clone of the repo: run the engine without the app
cd engine && uv run dmlx serve --port 8642

# make an image
curl localhost:8642/v1/images/generations \
  -H 'content-type: application/json' \
  -d '{"prompt": "a rowboat on a lake at dawn",
       "size": "1024x1024"}'
Models

Let Auto choose, or pick your own.

Start with the recommended models. Add more from inside the app, or paste a Hugging Face link. dMLX checks that it can run the model, shows the size and license, and then downloads it.

Image models

Run through mflux on MLX

ModelGood atDownload
FLUX.2 Klein 4BThe default. New images and edits, about 20–40 s per image.4.6 GB
Z-Image TurboNew images with more photographic detail.5.9 GB
Qwen Image 2.1Experimental. Best for exact words; about 4 min per image; needs about 9.5 GB free, so it is often refused on 16–24 GB Macs. Non-commercial license.10.6 GB

Also addable: FLUX.2 Klein 9B, FLUX.3 Klein, Z-Image base, ERNIE Image Turbo, MOSS Image, Boogu Image Turbo, Iris 3B Turbo and Krea 2 Turbo. Some of these take minutes per image.

Agent models

Measured on an M5 Mac with 24 GB of memory, 2026-11-01. Default: Qwen3-VL 8B with 24 GB or more, Ministral 3 3B below that.

ModelDownloadPeak memoryPer message
Qwen3-VL 8B5.8 GB6.2 GBabout 7 s
Qwen3.5 9B6.0 GB6.8 GBabout 7.5 s
Ministral 3 3B2.8 GB4.2 GBabout 5.5 s
Qwen3-VL 4B3.1 GB3.7 GBabout 3.5 s
Get started

Free to download. Three steps to your first image.

Step 1

Download and install

Open the downloaded .dmg and drag dMLX onto the Applications folder.

Step 2

Open it the first time

The beta is not notarized yet. Right-click the app, choose Open, then click Open in the dialog.

Step 3

Pick your models

On first start, dMLX recommends an image model and an agent for your Mac and shows the download size (about 7–11 GB). After that download, it works offline, with no account to create.