Install
Strado is a desktop app over a local Node server. macOS is the primary
platform; Linux builds exist as an AppImage and a .deb.
Requirements
- Node 20 or newer
- git 2.40 or newer
Packaged builds ship their own Node runtime for the server, so Node matters most when you run Strado from source. git is always yours.
macOS
Download the arm64 disk image and drag Strado.app into /Applications.
Artifacts are named Strado-<version>-arm64.dmg and served from
https://api.strado.io/v1/download/<file>. The current version is published
in the release feed at https://api.strado.io/v1/release.
Builds are signed with a Developer ID certificate and notarized by Apple, so they open on first launch with no Gatekeeper prompt to work around. You can check any copy yourself:
spctl -a -vvv -t install /Applications/Strado.app
That reports source=Notarized Developer ID. If it reports anything else, the
copy you have did not come from api.strado.io — download it again rather than
clearing its quarantine attribute.
Linux
Two artifacts, built for x64:
| Artifact | Filename | Self-updates |
|---|---|---|
| AppImage | Strado-<version>.AppImage | Yes, in place |
| Debian package | strado_<version>_amd64.deb | No |
The AppImage updater downloads the new build, verifies its sha256, and
renames it over the running file. A .deb install cannot swap its own files
(they are root-owned), so it shows a Download button instead and you reinstall
by hand with sudo dpkg -i.
AppImage runs need FUSE. Without it, start the file with
--appimage-extract-and-run; some distributions also need --no-sandbox.
Updates
The app polls the release feed roughly every 15 minutes. When it sees a newer version it downloads the artifact, verifies the published sha256, swaps the app, and relaunches. A release can be marked mandatory, in which case the app shows a blocking modal rather than a prompt in the sidebar.
Verification is fail-closed: a download whose hash does not match is discarded and retried later, never installed.
Running from source
From a checkout of the repo:
npm install
npm start
npm start builds the web app and the server and serves the UI at
http://localhost:7877. For the Electron shell over the same server:
npm run desktop
Both scripts set STRADO_PROFILE=dev, which is a separate instance from an
installed Strado — separate state directory, separate ports, separate app
identity. It starts empty, so you add your repos to it once.
| stable | dev | |
|---|---|---|
| How it runs | the installed app | npm start or npm run desktop |
| State | ~/.strado | ~/.strado-dev |
| HTTP | 7777 | 7877 |
| CDP port | 9222 | 9322 |
| Name | Strado | Strado Dev |
STRADO_HOME, STRADO_CONFIG_DIR, PORT and STRADO_CDP_PORT override the
profile individually.
Heads up
The profile comes from the npm scripts, not from detection. Running
electron . inside packages/desktop bypasses them, leaves
STRADO_PROFILE unset, and you get the stable profile — ~/.strado, port
7777 — which collides with an installed Strado if both are running.
For frontend work, npm run dev runs the dev-profile server on 7877 and Vite
with HMR on 7778.