# PI Desktop System Requirements: OS, Toolchain, and Build Prerequisites

> Discover PI Desktop system requirements. Learn OS, Node.js, pnpm, and Rust prerequisites for building from source. Ensure compatibility for your development.

- Repository: [Lan/PI-Desktop](https://github.com/vastsa/PI-Desktop)
- Tags: getting-started
- Published: 2026-09-12

---

**PI Desktop requires Windows 10 or later, macOS 10.15 (Catalina) or later, or Linux with glibc 2.28 or newer, plus Node.js 18 LTS, pnpm 7+, and Rust 1.70+ to build from source.**

The `vastsa/PI-Desktop` repository packages an Electron-based frontend with a Rust backend compiled via Tauri. Understanding the PI Desktop system requirements ensures your development environment or target deployment machine can run the application without compatibility issues.

## Supported Operating Systems

The [`README.md`](https://github.com/vastsa/PI-Desktop/blob/main/README.md) Requirements section defines the minimum operating system versions necessary to run PI Desktop binaries or compile the project from source.

### Windows and macOS

- **Windows:** Windows 10 or later (including Windows Server 2016+).
- **macOS:** macOS 10.15 (Catalina) or later.

### Linux with GLibc Requirements

Linux distributions must provide **glibc 2.28** or newer, commonly found in Ubuntu 20.04 and equivalent modern distros. The repository includes `scripts/check-linux-host-glibc.mjs` to programmatically validate the host glibc version before building. Additional runtime libraries required on Linux include `libglib2.0-0`, `libgtk-3-0`, and `libnotify-4.0-0`.

## Development Toolchain Specifications

Building PI Desktop from the source code requires three core toolchain components specified across the project's root configuration files.

### Node.js Runtime and Package Manager

The [`package.json`](https://github.com/vastsa/PI-Desktop/blob/main/package.json) file in the repository root declares the Node.js constraint in its `engines` field:

- **Node.js:** Version 18 LTS or later (required for modern ES modules support).
- **pnpm:** Version 7 or newer, as implied by the workspace structure defined in [`pnpm-workspace.yaml`](https://github.com/vastsa/PI-Desktop/blob/main/pnpm-workspace.yaml).

### Rust Compiler Constraints

The backend relies on Rust crates compiled via Cargo. The [`Cargo.toml`](https://github.com/vastsa/PI-Desktop/blob/main/Cargo.toml) file specifies **Rust 1.70** or newer (`rustc` >= 1.70) as the minimum supported toolchain version.

## Bundled vs. External Dependencies

While the development toolchain requires manual installation, the **Electron** runtime is bundled within the `apps/desktop` package during the build process. End-users running prebuilt distributions do not need to install Electron separately; only developers building from source need the full toolchain.

## Verifying Your Environment

Before attempting to build PI Desktop, run the following commands to confirm your system meets the documented requirements:

```bash

# Verify Node version (must be >= 18)

node -v

# Verify pnpm version (>= 7)

pnpm -v

# Verify Rust toolchain (>= 1.70)

rustc --version
cargo --version

# On Linux, check glibc version (must be >= 2.28)

ldd --version | head -n 1

```

If any version check fails, update your toolchain using `nvm` for Node.js, `rustup` for Rust, or your distribution’s package manager for Linux libraries.

## Where Requirements Are Defined

The PI Desktop system requirements are distributed across several key files in the repository:

- **[`README.md`](https://github.com/vastsa/PI-Desktop/blob/main/README.md)** – Contains the high-level overview of supported operating systems.
- **[`package.json`](https://github.com/vastsa/PI-Desktop/blob/main/package.json)** – Defines the Node.js version constraints in the `engines` field.
- **[`pnpm-workspace.yaml`](https://github.com/vastsa/PI-Desktop/blob/main/pnpm-workspace.yaml)** – Indicates the pnpm version used for workspace management.
- **[`Cargo.toml`](https://github.com/vastsa/PI-Desktop/blob/main/Cargo.toml)** – Specifies the minimum Rust compiler version for the backend.
- **`scripts/check-linux-host-glibc.mjs`** – Validates Linux host glibc compatibility programmatically.
- **[`.github/workflows/ci.yml`](https://github.com/vastsa/PI-Desktop/blob/main/.github/workflows/ci.yml)** – The CI pipeline executes these checks automatically on every pull request.

## Summary

- **Operating Systems:** Windows 10+, macOS 10.15+, or Linux with glibc 2.28+ (e.g., Ubuntu 20.04).
- **Node.js:** Version 18 LTS minimum, as declared in [`package.json`](https://github.com/vastsa/PI-Desktop/blob/main/package.json).
- **Package Manager:** pnpm 7 or newer required for workspace compatibility.
- **Rust Toolchain:** Version 1.70+ (`rustc` and `cargo`) specified in [`Cargo.toml`](https://github.com/vastsa/PI-Desktop/blob/main/Cargo.toml).
- **Linux Libraries:** `libglib2.0-0`, `libgtk-3-0`, `libnotify-4.0-0`, and related desktop dependencies.
- **Electron:** Bundled with the application; no separate installation required for end-users.

## Frequently Asked Questions

### What are the minimum Windows requirements for PI Desktop?

PI Desktop requires Windows 10 or later to run the Electron-based client. The requirement is documented in the [`README.md`](https://github.com/vastsa/PI-Desktop/blob/main/README.md) Requirements section and validated through the project's CI pipeline in [`.github/workflows/ci.yml`](https://github.com/vastsa/PI-Desktop/blob/main/.github/workflows/ci.yml).

### Do I need to install Electron separately to run PI Desktop?

No. Electron is bundled by the project during the build process within the `apps/desktop` package distribution. Only developers building from source need the Node.js toolchain; end-users receive a standalone application.

### How do I verify my Linux system meets the glibc requirement?

Run `ldd --version | head -n 1` in your terminal to check your glibc version. Alternatively, execute the validation script `scripts/check-linux-host-glibc.mjs` included in the repository, which programmatically checks for glibc 2.28 or newer as required by the build system.

### What version of Rust is required to build PI Desktop from source?

The [`Cargo.toml`](https://github.com/vastsa/PI-Desktop/blob/main/Cargo.toml) file specifies Rust 1.70 or newer. You can verify your installation by running `rustc --version`; if your version is older, update via `rustup update` before attempting to compile the Rust backend.