Desktop app
Run runelay on your computer without Docker, or use the app as a window onto a server you already have.
The desktop app ships the same runelay server and panel as the Docker image, packaged for macOS, Windows and Linux. It can run that server on your computer, or connect to a runelay server you host somewhere else.
Install
| Platform | Download | Format |
|---|---|---|
| macOS, Apple silicon | runelay.com/download/mac | .dmg |
| macOS, Intel | runelay.com/download/mac-intel | .dmg |
| Windows, x64 | runelay.com/download/windows | .exe installer |
| Linux, x64 | runelay.com/download/linux | AppImage |
| Linux, arm64 | runelay.com/download/linux-arm | AppImage |
Each link points to the file in the latest GitHub release.
- macOS: open the
.dmgand drag runelay to Applications. - Windows: run the installer. It installs for your user only, with no options to pick.
- Linux: make the AppImage executable (
chmod +x runelay-linux-*.AppImage) and run it.
The builds are not signed by a registered publisher, so macOS and Windows may warn the first time you open the app.
First open
The app asks where runelay runs:
- This computer: the app starts its own server and opens the panel on the sign-up screen for the first account. No setup token to copy.
- A server you already have: enter its address. The app checks that the URL answers as runelay before saving it. Use
https; plainhttpis only accepted forlocalhost,127.0.0.1and.ts.netaddresses.
You can keep several servers and switch between them from Settings → Server in the panel or from the server list in the app menu. Switching restarts the app on the chosen server. If a remote server does not answer, the app offers to try again, switch back to this computer, or quit.
Updates
The app does not update itself. When a new release is out, the panel shows an update button in the rail with the release notes and a Download button. Download the new version and install it over the old one (on macOS, drag it to Applications). Your data stays.
Desktop app or server
On this computer mode, the app runs the same server binary as the Docker image, with a few differences:
| Desktop app | Server (Docker) | |
|---|---|---|
| Address | http://127.0.0.1:4312, fixed | Any PUBLIC_URL, port set by RUNELAY_PORT |
| Reachable from | This computer only | Anywhere you expose it, behind HTTPS |
RUNELAY_SECRET | Generated on first open, kept in the system keychain when one is available | Generated by the installer into .env |
Local MCP servers (command) | On. Commands like npx use the tools installed on your computer | Off by default (RUNELAY_ENABLE_STDIO), and the image has no Node |
| Updates | Download the new app | One-click from the panel with the updater service, or docker compose pull |
| Runs while | The app is open | Always |
Because the app listens on 127.0.0.1:4312, the CLI and your agents on the same computer find it without any configuration. Agents on other machines cannot reach it: for a team or several computers, self-host a server and point the app at it.
Only one runelay can hold port 4312. If a Docker install is already running there, the app asks you to stop it first. See Troubleshooting.
Where data lives
| Platform | Folder |
|---|---|
| macOS | ~/Library/Application Support/runelay |
| Windows | %APPDATA%\runelay |
| Linux | ~/.config/runelay |
The folder holds the SQLite database (data/), the server log (server.log), the app's server list (config.json) and the sealed secret (secrets.bin). When the system has no keychain, the secret is stored in secrets.json, readable only by your user. Back up the folder to keep your data.