mindfork 0.18.0 — a day on a real Mac
mindfork 0.18.0 is out. Since 0.15.0 mindfork has had a macOS build, tested on GitHub's Apple Silicon runners. Those have no screen, so how the app looks and how its keys arrive had never been seen. For this release it ran for a day on a rented Mac mini (M4, 24 GB), first on macOS 26 and then on macOS 15.
What worked
- The three installs. The one-line script took 2 seconds, Homebrew 9, and
cargo installbuilt it in about 3 minutes. - Local models on Metal.
mindfork setupdownloaded llama.cpp's Metal build, and the server was ready 5 seconds after start. Gemma 4 E4B read a prompt at about 400 tokens a second and wrote at about 30. - Ollama and LM Studio were found and offered at the first start. On a Mac, LM Studio's app is called Bionic. Its MLX models were found too.
- The rest: the Python sandbox, notes found by meaning, a chat's folder opened in Finder, speech, an image pasted from the clipboard, and the lock that keeps a second copy from starting.
What it found, fixed in this release
- Terminal.app before macOS 26 has no 24-bit colour. The full colour mode was unreadable there: the dark background was never painted, light text sat on white, and a row came out bright green. mindfork now draws there in the 256 colours that Terminal.app has. Everywhere else nothing changes.
- LM Studio's MLX models refuse a long message in their own words.
mindfork showed the refusal as a bare error. It now says the conversation no
longer fits, gives the way out (
/compact, or a new chat), and quotes the server. - A stopped request held the engine for about 4 seconds. mindfork had been suggesting a smaller batch after the first message. On Metal that setting costs only about 1 % of prompt speed, and the wait drops to about 1 second. So on a Mac the engine now starts with it.
install.sh --fromwith an archive a browser downloaded. The script used to start the quarantined binary to check it, and then waited on macOS's question. It now installs without starting it and tells you how to clear the mark. Safari unpacks the.gzby itself, and the script now says so and gives the download it can check.
The keys, terminal by terminal
The day's keys were recorded with a new command, mindfork keys. It prints
each key you press as mindfork receives it, and what the input box does with
it.
- Terminal.app:
- a line break is
Ctrl+J(the input box's footer says so); - Option+←/→ move by words;
- Home, End and Page Up/Down need
Shift, because Terminal.app keeps them for its own scrolling.
- a line break is
- iTerm2 and Ghostty:
- a line break is
Shift+Enter; - Option+Backspace erases a word.
- a line break is
- Ghostty sends Cmd+→ as
Ctrl+E, and in mindforkCtrl+Edeletes the last exchange; your message goes back to the input. Turn on Confirm regenerate / delete in Settings → Interface, or turn those keys off in Ghostty's config (the lines).
macOS stays a preview until more Macs have run it. If a key does nothing in your
terminal, run mindfork keys, press it, and put the lines in an
issue: they show what your
terminal sent.
Your data
Nothing in the data's format changes, and no step runs at the start.
The full list is in the
changelog;
downloads are on the
releases page, and
cargo install mindfork builds the same version from
crates.io.