Install
The desktop app is for daily use; running from source is for development. Both connect to the same daemon.
Download
Download the latest version from the GitHub Releases page; that is the preferred way to get the installer. The buttons below fetch the direct link to the latest version and mark the one that fits your system:
Fetching the latest version…
Every file is built from the same tag by the release workflow and was started once on its own platform before publishing. SHA256SUMS.txt lists the checksums.
- macOS: the app is ad-hoc signed and not notarized. After moving it to Applications, right-click it and choose Open the first time, or run
xattr -dr com.apple.quarantine "/Applications/Rna Agent.app". - Windows (preview): unpack and run
Rna Agent.exe. The build is not code-signed, so SmartScreen asks before the first run. The background service runs while the app is open; in-app updates are not available yet. - Linux (preview): unpack and run
./"Rna Agent". On distributions that restrict unprivileged user namespaces (Ubuntu 24.04 and later), start it with--no-sandbox, or givechrome-sandboxroot ownership and mode4755.
Requirements
- Desktop builds: macOS (Apple silicon and Intel) is supported; Windows x64 and Linux x64 are previews.
- Running from source needs Node.js 22.19.0 or later. Linux can run the CLI and daemon;
systemd --userhosting has not been accepted on a real machine yet. - The address and key of a model service. For memory you can pick the built-in local memory, which needs no external service; OpenViking semantic memory has to be deployed separately with Docker, see Memory.
Desktop app
Install
Drag Rna Agent.app from the downloaded DMG into Applications and open it (Windows and Linux: see above). The app bundles Node.js, npm, the daemon and the web assets; you do not need to install Node.
First launch
The app first looks for a Rna background service you already installed (a local.rna-agent.* LaunchAgent). After verifying its identity it connects, and your existing projects and sessions appear.
Without one, it creates a private data folder under ~/Library/Application Support/Rna Agent and starts the service on a free local port. The port is stored in desktop-connection.json in the same folder, so it never takes the development port 4317.
Configure a model
Open Settings → Models and add a model service. See Models.
Closing the window does not stop background work; click the Dock icon to reopen it. Quitting only stops a service the app started itself; an external service keeps running.
Signing
The current build is ad-hoc signed. It has no Developer ID signature, no Apple notarization, and the app only checks the release notes for a new version without downloading or installing it; updating is done on the command line (see Updates and recovery). On first launch macOS may ask you to confirm under Privacy & Security.
Using the CLI from the desktop app
The app menu can copy a CLI command. It connects to the same service, so you do not need to configure model keys again:
RNA_DESKTOP_DATA="$HOME/Library/Application Support/Rna Agent" "/Applications/Rna Agent.app/Contents/Resources/app/runtime/bin/rna" chat --workspace "$PWD"The RNA_DESKTOP_DATA at the start of the command points at the desktop app's data folder so the CLI finds the same service.
From source
Start the daemon
cd prototypes/control-center
./rna startThe ./rna launcher prefers the Node 22 prepared in the workspace, otherwise the Node on PATH, and does not touch your system environment. You can set RNA_AGENT_NODE=/absolute/path/node.
Build the workbench
The daemon only serves the build output in web/dist. Build once, and again after changing UI sources; refresh the page, no daemon restart needed:
cd prototypes/control-center/web
npm ci && npm run buildWithout a build, the API and CLI still work and the page shows build instructions.
Open it
Visit http://127.0.0.1:4317. By default it listens only on 127.0.0.1 for a single trusted local user. Do not expose it to the internet.
Keep it running in the background
./rna start runs in the foreground. To keep working after the terminal closes, hand it to the user-level service manager:
./rna service start # macOS LaunchAgent / Linux systemd --user
./rna service statusMore options in Background service.