Two model families. LoRA adapters. Image-to-image. Custom styles.
mere.run image generate --prompt "a portrait in oil paint style"
Images. Video. 3D. Audio. Chat. Just enough. Nothing more.
Let your agent download the DMG, mount it, install the app, expose the CLI in your home directory, add the optional use-mere-run skill, pull the starter image model, and open the first generated PNG.
~/.local/bin/mere.run.use-mere-run skill is copied.You are helping me install mere.run locally on this Mac.
Rules:
- Do not use sudo.
- Do not edit shell profiles unless I ask.
- Prefer user-local install paths.
- Stop and explain if the download or DMG mount fails.
Steps:
1. Download the latest DMG to a temporary folder:
work_dir="$(mktemp -d)"
dmg_path="$work_dir/mere-run.dmg"
curl -fL "https://mere.run/releases/v0.5.1/mere-run.dmg" -o "$dmg_path"
2. Mount the DMG, or reuse it if it is already mounted:
hdiutil attach -nobrowse -readonly "$dmg_path"
volume=""
for candidate in "/Volumes/mere.run" /Volumes/mere.run* /Volumes/MereRun* "/Volumes/Mere Run"*; do
if [ -d "$candidate" ] && [ -x "$candidate/.mere-run/install.sh" ]; then
volume="$candidate"
break
fi
done
if [ -z "$volume" ]; then
echo "Mounted the DMG, but could not find the mere.run volume."
hdiutil info
exit 1
fi
3. Verify the mounted volume contains MereRun.app plus .mere-run/install.sh:
test -d "$volume/MereRun.app"
test -x "$volume/.mere-run/install.sh"
4. If /Applications/MereRun.app is missing, copy the app there:
if [ ! -d "/Applications/MereRun.app" ]; then
ditto "$volume/MereRun.app" "/Applications/MereRun.app"
else
echo "/Applications/MereRun.app already exists. Leaving it in place."
fi
If the copy is denied, tell me to drag MereRun.app to Applications, then continue with CLI and skill setup.
5. Install the CLI to ~/.local/bin/mere.run:
mkdir -p "$HOME/.local/bin"
MERERUN_INSTALL_BIN_DEST="$HOME/.local/bin/mere.run" "$volume/.mere-run/install.sh"
6. Install the bundled use-mere-run Codex skill if it exists:
skill_source=""
for candidate in "$volume/MereRun.app/Contents/Resources/skills/use-mere-run" "$volume/.mere-run/skills/use-mere-run"; do
if [ -d "$candidate" ]; then
skill_source="$candidate"
break
fi
done
if [ -n "$skill_source" ]; then
mkdir -p "$HOME/.codex/skills"
rm -rf "$HOME/.codex/skills/use-mere-run"
ditto "$skill_source" "$HOME/.codex/skills/use-mere-run"
fi
7. Verify the CLI:
"$HOME/.local/bin/mere.run" --help
"$HOME/.local/bin/mere.run" model capabilities --recommended
8. Pull the starter image model:
"$HOME/.local/bin/mere.run" model pull image-zimage-nano
9. Generate and open the first image:
"$HOME/.local/bin/mere.run" image generate --model image-zimage-nano --prompt "a ceramic mug in soft morning light on a walnut desk" --width 1024 --height 1024 --steps 8 --seed 2026 --output "$HOME/Desktop/mere-first-image.png"
open "$HOME/Desktop/mere-first-image.png"
At the end, tell me where the app, CLI, skill, model store, downloaded DMG, mounted volume, and image are.
Every image generated locally on Apple Silicon. No cloud. No waiting.
Images, video, music, voice, chat, code, OCR, embeddings, and local API serving — everything runs locally on Apple Silicon.
Two model families. LoRA adapters. Image-to-image. Custom styles.
mere.run image generate --prompt "a portrait in oil paint style"
Text-to-video and image-to-video. Native LTX pipeline on Metal.
mere.run video generate "timelapse of clouds over peaks"
Generate tracks, remix, cover vocals. ACE-Step with lyrics and BPM.
mere.run music generate "upbeat groove" --bpm 120
122B-parameter LLM running locally. Code generation. Multi-turn.
mere.run text chat --prompt "explain diffusion models"
Text-to-speech with voice cloning. Save and reuse voice profiles.
mere.run speech synthesize "Hello world" --output hello.wav
Transcribe and translate audio. Streaming ASR. Timestamps.
mere.run speech transcribe recording.wav --backend auto
List capabilities. Pull managed models. Inspect installs. Repair manifests.
mere.run model capabilities
Describe images. Extract text. Caption datasets for training.
mere.run vision inspect photo.jpg "what is this?"
OpenAI-compatible endpoint. Drop into Cursor, VS Code, any client.
mere.run api serve --engine text-chat-gemma4
Every capability at your fingertips. One command away.
Mere is a first-class tool for AI agents. Claude Code, Cursor, and any OpenAI-compatible client can invoke every capability — image generation, video, music, TTS, chat — through a single CLI or API endpoint. Your Mac becomes an AI compute layer that both you and your agents share.
The public Mere CLI can now orchestrate this runtime for Mere apps. It resolves an existing mere.run binary, builds from source, or installs a verified DMG, then pulls the local models requested by an app.
mere setup mere-run prepares the runtime.mere setup mere-run models --app media pulls Media's ASR and embedding models.Mere is a single Swift CLI. Every Mac app — yours or one your agent vibe-codes mid-conversation — can drop it in via Process. Spark, below, is a real SwiftUI app. Claude wrote it in one prompt.
empty state · resolves mere.run on $PATH
image-klein-nano · 1024×768 · on this Mac
import Foundation import AppKit enum MereClient { static func generate(prompt: String) async throws -> NSImage { let bin = URL(fileURLWithPath: "/usr/local/bin/mere.run") let out = URL(fileURLWithPath: NSTemporaryDirectory()) .appendingPathComponent("spark-\(UUID().uuidString.prefix(8)).png") let proc = Process() proc.executableURL = bin proc.arguments = [ "image", "generate", "-m", "image-klein-nano", "-p", prompt, "-W", "1024", "-H", "768", "-s", "8", "-o", out.path, ] try proc.run() proc.waitUntilExit() guard proc.terminationStatus == 0, let img = NSImage(contentsOf: out) else { throw MereError.generationFailed } return img } }
Near-zero operating cost. No cloud. No subscription fatigue.
No server. No upload. No telemetry. Your prompts are yours.
MIT licensed. Built in Prince Edward Island. For the people who keep the world running.
From a single creative seed — a 1950s American roadside diner, just before midnight, in heavy rain — Mere generated text, a photograph, open-vocabulary object detection and segmentation, narration, a full-production song with lyrics, two cinematic videos, working Swift code, and embeddings. All locally on a MacBook. In about four minutes.
"The door exhales a draft of ozone and wet asphalt, yielding to a sanctuary of humming neon and scorched lard. Inside, the air is a thick, amber suspension of tobacco smoke and percolating coffee…"
$ mere.run text chat --prompt "describe a 1950s diner…"
Native LTX pipeline on Metal. Text-to-video from the same scene description.
Animated directly from the generated photograph — steam, headlights, jukebox glow.
Full vocal production. Vintage rockabilly, brushed snare, twangy reverb-soaked Telecaster, doo-wop backing vocals, a soft tenor sax solo. Written and arranged from a single prompt + lyrics file.
Synthesized in a deep documentary voice, then transcribed with timestamps. Round-trip never leaves the machine.
/// Computes the Mandelbrot set for a given grid of complex points. func generateMandelbrotSet( width: Int, height: Int, bounds: ComplexPlaneBounds = .default, maxIterations: Int = 100 ) -> [[Int]] { var mandelbrot: [[Int]] = .init(repeating: .init(repeating: 0, count: width), count: height) let xStep = (bounds.right - bounds.left) / Double(width - 1) let yStep = (bounds.bottom - bounds.top) / Double(height - 1) for y in 0..<height { for x in 0..<width { let cx = bounds.left + Double(x) * xStep let cy = bounds.top + Double(y) * yStep mandelbrot[y][x] = iterate(cx: cx, cy: cy, max: maxIterations) } } return mandelbrot }
The same image fed back into Mere's vision stack: open-vocabulary object grounding with pixel-perfect masks.
$ mere.run vision ground hero.png --query "waitress"
Three sentences embedded locally. The two diner-related sentences cluster together; the cat sits alone.