Desktop app
The desktop app is a native window around the web app. It is built with Tauri 2, and its source lives inapps/desktop. It adds no screens and no behavior of its own. Everything you see in the window is the web app.
The app is an early shell. It has no native commands, no tests, and no release. CI checks its formatting and lint. Use the web app in a browser for day-to-day work.
Run it in development
Install the dependencies of both apps, then start the desktop app fromapps/desktop:
bun run dev runs tauri dev. Tauri first starts the web app’s dev server with bun run --cwd ../web dev, then opens the window at http://localhost:5173 with hot module replacement. The web app’s dev server proxies the API to the Gateway in your CLI profile, so the window needs no setup of its own. The web app README describes that proxy and its settings.
The first run compiles the Rust crate in src-tauri. Your machine needs Rust and the Tauri prerequisites for its operating system.
Build it
Build the app fromapps/desktop:
bun run build runs tauri build. The bundle targets are app and dmg, so the build produces a macOS application and disk image. Other systems need other targets in src-tauri/tauri.conf.json. The build is not signed or notarized.
The built app does not contain the web app. Its window loads https://gateway.orbit, the web app that the Gateway already serves. So the machine that runs it must be a WireGuard peer of the fleet and must trust the Orbit root certificate, as a browser must. Open the app lists those requirements.
Window and permissions
The window and its permissions come from the Tauri configuration insrc-tauri.
src-tauri/tauri.conf.json holds these settings, and src-tauri/capabilities/default.json holds the permissions.
Limits
The app is a shell only, with these limits.- The app registers no Tauri commands.
- Native work such as installing the Orbit root certificate or setting up local DNS is not built. Use
orbit gateway:trustand thednscommands instead. - The app works only while the Gateway is reachable. It has no offline mode.
- CI checks only the Rust shell’s formatting and lint. It builds no bundle.
- No workflow publishes the app.