Remuda
A desktop app for running, testing and tuning your local Ollama models. Chats on the left, the loaded model in the top bar, the Modelfile one click away.
What it is
Ollama is a good runtime with a terminal-shaped workflow: getting a model to behave means bouncing
between ollama list, ollama run, ollama show, and a Modelfile
in another editor — a round trip slow enough that most people try one system prompt and settle.
Remuda closes that loop in one window: load a model, chat to test it, edit its Modelfile beside
the chat, save. Remuda rebuilds the model through ollama create and reloads it, so
your very next message uses the change.
Then it makes the loop worth running more than once. Every save is snapshotted and diffable. Two configurations can answer the same prompt side by side on a pinned seed, so you're reading the change and not sampling noise — and a benchmark does the same across a whole set of prompts, so the verdict stops resting on the one example you happened to try. If a model claims tool support, you can find out whether it actually emits well-formed calls.
Nothing leaves your machine. Remuda is a client for the Ollama you already run on
127.0.0.1.
Ollama runs separately. Remuda owns no models and runs no inference itself. It talks to
an Ollama server you start yourself — by default http://127.0.0.1:11434 — and if it
can't reach one, it says so plainly rather than pretending to work.
Install
brew install --cask magna-nz/tap/remuda
That pulls in magna-nz/homebrew-tap on the
way through, so there's no separate brew tap step. The build is unsigned — no Apple
Developer program — so the cask clears the quarantine flag as part of the install, and the app just
launches.
brew upgrade --cask remuda # move to the latest release
brew uninstall --cask remuda # remove it
Remuda needs Ollama itself, installed and running:
brew install ollama
ollama serve
Requirements: macOS 12+ on Apple Silicon.
What you get
| Load pane | Every installed model, with tuned variants grouped under their base.
Pick a Modelfile, hit Load, watch real progress. Eject hands the memory back without waiting
out keep_alive. |
|---|---|
| Chat | Saved sessions that remember the model they ran on, and offer to load it again rather than silently swapping. Streaming replies, cancel, and a warming indicator. |
| Modelfile editor | A form for the common fields, synced both ways with the raw text, which stays the source of truth. Save or Save as…, plus a history of every save and restore. |
| Compare | Run two Modelfile configurations against the same prompt, side by side, on a pinned seed — sequentially, so each lane's tokens per second still means something. |
| Benchmark | One saved set of prompts, run against several configurations at once — two models against each other, or one model under two Modelfiles. One row per prompt, one column per lane, every answer on the same pinned seed. It shows what differs and never scores a lane. |
| Tool playground | For models that claim tool support: write schemas, chat against them, and see every tool call validated field by field — wrong type, not in enum, unknown key, missing. The verdict is the feature, not the pretty-printing. |
| Memory readout | The VRAM/RAM split for whatever is loaded, and a fit predictor that estimates whether a model and context length will fit before you load it. |
| Pull | Per-layer progress, cancel and retry, plus a curated list of popular models with the installed ones marked. |
| Per-reply stats | Generation and prompt-eval tokens per second, load time, total time, and context used, under every reply. |
| Leave with it | Copy any reply as the curl or ollama run
that produced it, promote a good answer straight into SYSTEM, or re-roll holding
the seed — or changing only the seed. |