Meld
Docs menu
start here

The desktop app

Since version 1.9.0 “Unbound”, Meld is a standalone desktop app. You download a folder, run Meld, and that is the whole install: no Python to set up, no repository to clone, no terminal. Deleting the folder removes it. This page explains what actually runs, where it lives, and the safety rails built into it.

Why an app at all

Meld started as a Python project you launched from a command line. That worked for people who already had Python, and quietly failed for everyone else. A world render is also a long job, often hours, and a browser tab is a fragile place to babysit one: close the tab and you lose sight of the run, put the machine to sleep and you lose the run itself.

The app fixes both. It carries its own Python runtime and its own copy of the Arnis generator, so the target machine needs nothing installed. And the work does not live in a window at all, so closing the window stops nothing.

How it works

A tray app

Meld starts in the system tray with no console and no taskbar button. Clicking the tray icon shows or hides the status bar; the full interface opens from the tray menu as its own application window (no tabs, no address bar). Quitting is the tray’s Quit and nothing else, so a stray click can never kill a render six hours in. If you prefer the old behaviour, MELD_UI=browser or the tray’s “Open in browser” serves the same interface to your browser.

The floating status bar

The status bar is a small frameless strip that floats above other windows: one coloured block per worker (idle, queued, fetch, prepare, build in gold, save, merge, failed), the current task, an ETA, CPU / RAM / disk readouts, and an optional two-minute history graph. It has no close box on purpose, so it cannot be dismissed by reflex; its own right-click menu hides it, and its position, opacity and hidden state are remembered.

Built-in safety rails

Updates with a way back

Meld keeps itself current. It notices a new release, downloads and verifies it, and switches over only after the new version has proven it starts, keeping the old folder so you can go back. Removing an old build is a separate, explicit action, and it refuses any folder that contains your projects. The generator inside is one binary in a folder Meld owns, so it updates on its own schedule too: downloads are checked against the release checksum, and a release without one is refused rather than trusted.

The releases themselves are gated. Since the 1.9.0 desktop arc, every build must pass a headless-browser console check before it ships. The gate went in after a one-line script bug shipped with every static check green and left half the interface dead; a real browser run catches what static checks cannot.

How to use it

  1. Grab the archive for your OS from the latest release and extract it anywhere.
  2. Run Meld. The builds are unsigned, so the OS will warn you once: on Windows, SmartScreen shows “Windows protected your PC”, click More info, then Run anyway. On macOS, use System Settings, Privacy & Security, Open Anyway.
  3. The tray icon appears and the interface opens. Draw an area, press Generate; the full walkthrough is in the quickstart.
  4. Minimise everything and watch the status bar. When the run finishes, the world folder is ready for your saves or for the one-click server.

There is also a single-file build (one 64 MB executable that unpacks the generator on first launch) if you want one file rather than a folder, and shortcut scripts for the Start menu, macOS Applications and a Linux .desktop entry ship in the packaging/ folder.

Running from source (optional)

The app is the recommended path, but the repository still works the old way: clone it, pip install -r requirements.txt, then python meld_launch.py. Python 3.10 or newer. The launcher fetches the right generator binary on first run, and pip install osmium enables offline .pbf baking from source (the app ships with it built in).

Next: choose a scale for your first world, or see how the parallel generation the status bar is showing actually works.