Instructions for building Hermes IDE from source.
| Tool | Version | Install |
|---|---|---|
| Node.js | 20+ | nodejs.org |
| Rust | Pinned in rust-toolchain.toml |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
The Rust toolchain version is pinned in rust-toolchain.toml at the repository root. Running rustup show in the repo will install and activate the correct version automatically.
macOS:
xcode-select --installLinux (Debian/Ubuntu):
sudo apt-get install libwebkit2gtk-4.1-dev libgtk-3-dev libsoup-3.0-dev libjavascriptcoregtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libfuse2Windows:
Install Visual Studio Build Tools with the "Desktop development with C++" workload. Windows 10 users may also need to install the WebView2 Runtime.
git clone https://github.com/hermes-hq/hermes-ide.git
cd hermes-ide
npm cinpm run dev # Vite dev server only (frontend)
npm run tauri dev # Full Tauri app with hot-reloadnpm run tauri buildBuild artifacts are output to src-tauri/target/release/bundle/.
| Platform | Target | CI Runner |
|---|---|---|
| macOS (Apple Silicon) | aarch64-apple-darwin |
macos-14 |
| macOS (Intel) | x86_64-apple-darwin |
macos-14 |
| Linux (x86_64) | x86_64-unknown-linux-gnu |
ubuntu-22.04 |
| Linux (ARM64) | aarch64-unknown-linux-gnu |
ubuntu-24.04-arm |
| Windows (x86_64) | x86_64-pc-windows-msvc |
windows-2022 |
| Windows (ARM64) | aarch64-pc-windows-msvc |
windows-2022 |
To build for a specific target:
npx tauri build --target aarch64-apple-darwinnpm run test # Frontend tests
cd src-tauri && cargo test # Rust tests
npx tsc --noEmit # TypeScript type checkThis project follows supply chain security best practices for reproducible builds:
- Deterministic dependency resolution:
npm cireadspackage-lock.jsonexactly;Cargo.lockis committed and used bycargo buildautomatically. - Pinned Rust toolchain: The version in
rust-toolchain.tomlensures all contributors and CI use the same compiler. - Pinned CI actions: All GitHub Actions in
.github/workflows/are pinned to commit SHAs to prevent supply chain attacks via tag mutation. - Pinned CI runners: Runner images use specific OS versions (not
-latest) to avoid silent environment changes. - SLSA provenance: Release builds generate provenance attestations via
actions/attest-build-provenance, so anyone can verify that published binaries were built from the expected source in the expected CI environment.
Each GitHub release includes a SHA256SUMS.txt file. To verify a downloaded binary:
sha256sum -c SHA256SUMS.txt --ignore-missingTo verify SLSA provenance attestations:
gh attestation verify <artifact-file> --repo hermes-hq/hermes-ideSigned binaries (macOS) differ between builds because signatures are unique. To verify reproducibility, compare unsigned builds.
Hermes IDE is source-available under the Business Source License 1.1. Contributions require signing the CLA. See CONTRIBUTING.md for details.