Rna Agent
Getting started

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:

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 give chrome-sandbox root ownership and mode 4755.

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 --user hosting 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 start

The ./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 build

Without 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 status

More options in Background service.

On this page