Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/covenant-gov/pacto-app/llms.txt

Use this file to discover all available pages before exploring further.

This guide walks you through everything needed to build and run Pacto from source on Ubuntu Linux. You will install the required system packages, the Rust toolchain, Node.js, and pnpm — then clone the repo, install dependencies, and launch the app.
1

Install system packages

Update your package index and install the libraries Tauri and native Rust crates depend on:
sudo apt update
sudo apt install -y \
  build-essential \
  cmake \
  clang \
  libclang-dev \
  curl \
  wget \
  file \
  git \
  pkg-config \
  libvulkan-dev \
  libwebkit2gtk-4.1-dev \
  libxdo-dev \
  libssl-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libasound2-dev
PackagePurpose
build-essentialC/C++ compiler and build tools (gcc, g++, make)
cmakeBuild system required by native Rust dependencies (e.g. whisper-rs-sys)
clang / libclang-devRequired by bindgen to generate Rust FFI bindings during build
curl / wgetNetwork utilities for downloading
gitVersion control for cloning the repository
pkg-configHelper tool for compiling libraries
libvulkan-devVulkan headers/libraries used by Whisper acceleration on Linux
libwebkit2gtk-4.1-devWebKit rendering engine for the Tauri UI
libxdo-devX11 input simulation library
libssl-devOpenSSL development headers
libayatana-appindicator3-devSystem tray integration
librsvg2-devSVG rendering library
libasound2-devALSA audio library for sound support
2

Install Rust

Install Rust using rustup, the official Rust toolchain installer:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
When prompted, select the default installation (option 1).After installation, load Rust into your current shell session:
source "$HOME/.cargo/env"
Verify the installation:
rustc --version
cargo --version
3

Install Node.js

Install Node.js v18 or later (v20 recommended).Option A — NodeSource (quick):
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
Option B — nvm (recommended for development):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
Verify the installation:
node --version
4

Enable pnpm via Corepack

Activate pnpm using Corepack, which ships with Node.js:
corepack enable
corepack prepare pnpm@latest --activate
pnpm --version
5

Install Node dependencies

From the root of the cloned repository, install all workspace dependencies:
pnpm install
6

Set up environment and run the app

Copy the example environment file:
cp .env.example .env
# Optional: set ALCHEMY_RPC_KEY=<your_key> inside .env
Run the full desktop app (frontend + Rust backend):
pnpm tauri:dev
Or run only the frontend in the browser (no Rust backend required):
pnpm dev
The first pnpm tauri:dev can take several minutes because Cargo downloads and compiles all Rust dependencies. Subsequent builds are much faster.

Troubleshooting

Error:
error: could not find system library 'webkit2gtk-4.1'
Solution: Install the WebKit development package:
sudo apt install libwebkit2gtk-4.1-dev
Error:
error: failed to run custom build command for `openssl-sys`
Solution: Install OpenSSL development headers and pkg-config:
sudo apt install libssl-dev pkg-config
Error:
error: failed to run custom build command for `...`
Solution: Install the native build tooling used by some Rust crates:
sudo apt install cmake clang libclang-dev
Error:
error: failed to compile with Vulkan support
Solution: Install the Vulkan development libraries:
sudo apt install libvulkan-dev
Solution: Source the Cargo environment in your current shell:
source "$HOME/.cargo/env"
To make this permanent, add it to your shell profile:
echo 'source "$HOME/.cargo/env"' >> ~/.bashrc
source ~/.bashrc
Solution: Configure pnpm to operate in user space, then reload your shell:
pnpm setup
source ~/.bashrc

Build docs developers (and LLMs) love