One window for the harnesses on this computer - run Claude Code, Codex, and the other harnesses side by side. A Rust daemon on this machine; a desktop console (Tauri 2 + React 19) for everything else.
Grab the latest installer from Releases (Windows 10+, MSI or the NSIS setup exe). The installers are unsigned - SmartScreen will ask; choose More info > Run anyway.
Or, from a terminal with Node 18.17 or newer:
npm install -g @morewebs/openremote
openremoteThat installs a launcher, not the app. The first openremote downloads the
portable build from the current release (about 28MB, into
%LOCALAPPDATA%\moreweb\openremote\<release>\), checks it against the
release's own checksums, and starts it; later runs use that copy and need no
network, and openremote --update moves to a newer release. It is the same
binary the installer carries, under the same identity, so whichever way you
install it you get the same chats, settings and paired phone. Windows x64
only for now - openremote --help says so, and names the installer for
macOS and Linux. The package itself is npm/; docs/release-channels.md
says how a release publishes it.
Every release carries the same file names on every platform, so
releases/latest/download/<name> keeps working across versions:
| Platform | What to download | State |
|---|---|---|
| Windows 10+ | OpenRemote-Setup-x64.exe (NSIS) or OpenRemote-Setup-x64.msi; OpenRemote-windows-x64.exe is the portable build the npm launcher fetches |
Supported, and the platform the desktop shell is developed on |
| Linux x64 | OpenRemote-x86_64.AppImage or OpenRemote-amd64.deb; openremote-daemon-linux-x86_64 is the daemon a Cloud machine runs |
Supported |
| macOS, Apple silicon and Intel | OpenRemote-universal.dmg |
Early: ad-hoc signed, not notarized |
| Android | OpenRemote-universal.apk, also shipped as OpenRemote_<version>_universal.apk |
The phone app |
None of it is signed by a certificate anyone pays for. Windows shows
SmartScreen (More info > Run anyway), macOS wants Open Anyway, and no Linux
distribution packages it yet. Each file's hash is in SHA256SUMS, and the
Windows portable pair has its own SHA256SUMS-portable-windows-x64.
src/+src-tauri/- the console (Vite + React 19), frameless Tauri 2 shelldaemon/- the Rust workspace that wraps the harness CLIs and serves the console
Console (port 5175):
npm install
npm run dev # browser only
npx tauri dev # desktop shell (Windows tested)The desktop shell runs the daemon as a sidecar; stage its binary first (and after daemon changes):
npm run daemon # debug daemon; OR_RELEASE=1 for releaseTo run the daemon yourself (the console's first-run steps can connect to it by address):
cd daemon && cargo runIt prints READY 127.0.0.1:<port> on stdout; all logs go to stderr. Its
data dir is ~/.openremote (override with OPENREMOTE_DATA_DIR), and the
bearer token lives in ~/.openremote/token.
Tests:
npm test # console tests: 1155 when this line was last checked
node scripts/check-tab-acl.mjs # what the desktop webview's capabilities grant
cd daemon && cargo test --locked # unit + e2e (drives the fixture agent)The first two run from the repo root and take no arguments. The console
suite covers the rules behind each view and reads a few source files for
the wiring only a browser could show; the daemon suite drives a real
sidecar. Two further gates, cd daemon && cargo fmt --all --check and
cd daemon && cargo clippy --all-targets --locked -- -D warnings, are red
in this tree on eight unformatted files and three lints, none of them in
the shell, so read their output before blaming your own change. AGENTS.md
lists both.
Local chats never leave the computer and need no account. Cloud mode joins your own computers - your laptops, a home server, a VPS - through your moreweb account: chats run on whichever one you pick and are copied to all of them, end to end encrypted. moreweb's relay only ever forwards ciphertext and stores no chats.
Add a Linux machine from Cloud > Machines > Add a machine: it gives you a one-time command that installs OpenRemote as a background service and joins it to your Cloud. To try Cloud mode without moreweb, run the stand-in and point the daemon at it:
cd daemon && cargo run -p fake-cloud # prints the OPENREMOTE_* exportsOpenRemote is licensed AGPL-3.0-only - see LICENSE.
- Windows first: frameless window with a custom titlebar (Segoe MDL2 glyphs). Dark theme, Inter (+ Geist Mono for technical content), one cool accent and one green.
PickerMenu.jsxis the one dropdown engine everywhere; modals all share thedv-modalfamily (Esc / backdrop / X to close).- Harness names and marks belong to their owners; OpenRemote is not affiliated with them.
- Everything above is checked by the commands under Tests: if a claim here and a command's output disagree, the command is right.