DocsReference
Building from source
Compile Rusty IDE yourself on macOS, Windows or Linux.
Most people should install the signed DMG. Build from source if you want to hack on Rusty, or to try it on a platform that has no published build.
Note
Only macOS builds are published and verified. Windows and Linux packaging exists, but those builds are unverified, and the Windows builds are not code-signed.
Prerequisites
All platforms need:
- Node.js 20.19+ or 22.12+
- Rust (stable toolchain)
- A sibling checkout of
rusty-core, the Rust agent engine
rusty-ide depends on rusty-core by relative path, so Cargo does not fetch it. It has to exist on disk next to the IDE repository:
some-parent-dir/
rusty-ide/ <- https://github.com/traian18/rusty-ide
rusty-core/ <- https://github.com/traian18/rusty-core
Any cargo or npm run tauri command fails with an unresolved path dependency error if rusty-core is missing.
Platform requirements
| Platform | Requirement |
|---|---|
| macOS | Xcode Command Line Tools: xcode-select --install |
| Windows | Microsoft C++ Build Tools (MSVC v143 and a Windows 10/11 SDK) |
| Linux | System libraries, below |
On Debian or Ubuntu:
sudo apt install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev
For Fedora, Arch and openSUSE package names, see BUILD.md in the repository.
Install dependencies
Once, from inside rusty-ide:
npm install
npm install --prefix ../rusty-core/sdk/typescript
Tip
On npm 10.9.8, adding or updating a dependency with a plain
npm installcan fail withCannot read properties of null (reading 'edgesOut'). Use a newer npm for that command instead:npx --yes npm@11 install <package>.npm ciis not affected.
Run in development
npm run tauri dev
Build the app
The same command works on every platform:
npm run tauri build
It compiles the TypeScript SDK from the sibling rusty-core, typechecks and bundles the frontend with Vite, then compiles the Rust app in release mode and bundles it.
To build one specific bundle:
# macOS: DMG only
npm run tauri build -- --bundles dmg
# Linux
npm run tauri build -- --bundles deb
npm run tauri build -- --bundles rpm
# Windows
npm run tauri build -- --bundles nsis
npm run tauri build -- --bundles msi
Output
| Platform | Location |
|---|---|
| macOS app | src-tauri/target/release/bundle/macos/Rusty-IDE.app |
| macOS DMG | src-tauri/target/release/bundle/dmg/ |
| Windows | src-tauri/target/release/bundle/nsis/ and bundle/msi/ |
| Linux | src-tauri/target/release/bundle/deb/ and bundle/rpm/ |
An AppImage is not published because the bundled agent runtime trips the AppImage tooling. You can build one yourself with --bundles appimage.
Provider runtimes
The Codex and GitHub Copilot runtimes are not part of the installers. On first sign-in Rusty downloads only that provider's native package into its app data folder and verifies its checksum first. No system Node.js or npm is needed at runtime.
Signing on macOS
The macOS bundle configuration signs with the maintainer's Developer ID identity, and releases are notarized in CI. A local release build on macOS therefore expects signing to be set up: an APPLE_SIGNING_IDENTITY and, for notarization, an App Store Connect API key. RELEASING.md in the repository describes what CI does. For day-to-day development, npm run tauri dev does not need any of this.
Verify your changes
npm run verify
This runs the type checks, the theme usage check, the frontend tests, a production build and the Rust tests.
Notes for Windows and Linux
- Windows. The installers are not code-signed, so SmartScreen shows an "unknown publisher" warning on first launch: choose More info → Run anyway.
- Linux. Install the
.debwithsudo apt install ./Rusty-IDE_<version>_amd64.debor the.rpmwithsudo dnf install ./Rusty-IDE-<version>-1.x86_64.rpm. - WSLg (WSL2). If the window is black, force the software fallbacks:
WEBKIT_DISABLE_COMPOSITING_MODE=1 WEBKIT_DISABLE_DMABUF_RENDERER=1 rusty-ide.