Install
Packaged beta (recommended for testers)
Section titled “Packaged beta (recommended for testers)”- Open Releases and download the zip for your OS and CPU.
- Unzip it somewhere convenient (Applications, Desktop, or a beta folder). On macOS you can drag Robot Studio.app into Applications yourself.
- Launch the app — do not start a Python process by hand. Keep the unzipped folder together (Windows / Linux need
backend/next to the binary). - Quitting the app stops the embedded backend sidecar.
| Platform | Artifact | How to open |
|---|---|---|
| macOS | Robot Studio.app (inside the zip) |
Double-click the app. First launch after unzip is often blocked by Gatekeeper — see macOS: app blocked after unzip below. |
| Windows | RobotStudio/RobotStudio.exe (inside the zip) |
Double-click the executable. If Windows reports missing MSVCP140.dll / VCRUNTIME140.dll, install the Visual C++ Redistributable (x64) once, then retry. |
| Linux x64 | Robot-Studio-*-linux-x64.zip → RobotStudio/ |
Double-click robot-studio.desktop (first time: right-click → Allow Launching), or run ./robot_studio. Optional once: ./install-desktop-launcher.sh to add it to the app menu. Uninstall: ./uninstall.sh (add --purge to also delete ~/.robot-studio). |
| Linux arm64 | Robot-Studio-*-linux-arm64.zip → RobotStudio/ |
Same as Linux x64. Use this zip on Apple Silicon / ARM VMs (uname -m → aarch64). An x64 zip shows Exec format error on ARM. |
How Release zips are produced
Section titled “How Release zips are produced”Pushing a v* tag (for example v0.1.0) runs Actions → Package Desktop and attaches each platform zip to that GitHub Release. Prefer those Release assets for testers — they stay available and do not require Actions access.
Maintainers can also run Actions → Package Desktop → Run workflow and download workflow artifacts for a one-off build (artifacts expire; use Releases for lasting distribution).
Local packaging (must run on that OS — no cross-compile):
make package-macos # → dist/macos/Robot Studio.appmake package-windows # → dist/windows/RobotStudio/ (run on Windows)make package-linux # → dist/linux/RobotStudio/ (run on Linux; zip tagged x64 or arm64)make package # package for the OS you are onmacOS: app blocked after unzip
Section titled “macOS: app blocked after unzip”Beta builds are not notarized. After you unzip and double-click Robot Studio, macOS may show “Robot Studio” Not Opened and refuse to launch.
- Open System Settings → Privacy & Security.
- Scroll to the Security section. You should see “Robot Studio” was blocked to protect your Mac.
- Click Open Anyway, then confirm Open on the follow-up prompt.
You only need this once per download. If the blocked message is missing, try opening the app again from Finder first, then return to Privacy & Security.
Same steps are under Troubleshooting.
Linux host packages
Section titled “Linux host packages”On Ubuntu/Debian, creating a project environment also needs the host venv package once: sudo apt install python3-venv (or python3.XX-venv if the error names a version). Source Control needs host Git: sudo apt install git. See Troubleshooting.
App data lives under ~/.robot-studio.
Run from source (developers)
Section titled “Run from source (developers)”Supported desktop targets when developing from the repository: macOS, Windows, and Linux (Flutter desktop). This path is for contributors — not the packaged beta download.
Prerequisites
Section titled “Prerequisites”- Flutter 3.x with desktop enabled (
macos,linux, orwindows) - Python 3.11+
- Git (for Source Control features)
- Optional: uv for faster backend installs
One-time setup
Section titled “One-time setup”From the repository root:
make setup # backend virtualenv + flutter pub getEveryday loop (two terminals)
Section titled “Everyday loop (two terminals)”- Start the backend:
make backend # API on http://127.0.0.1:8765- Start the UI:
make run # flutter run on this OSCheck health anytime:
make healthThe UI connects to http://127.0.0.1:8765. When that backend is already healthy, the app will not spawn a sidecar.
Override device or port if needed: make run DEVICE=linux · make backend PORT=8766.
What’s in this build
Section titled “What’s in this build”See RELEASE_NOTES.md in the repository.

