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:

ArtifactFilenameSelf-updates
AppImageStrado-<version>.AppImageYes, in place
Debian packagestrado_<version>_amd64.debNo

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.

stabledev
How it runsthe installed appnpm start or npm run desktop
State~/.strado~/.strado-dev
HTTP77777877
CDP port92229322
NameStradoStrado 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.

Where to go next