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 macOS. You will install Xcode Command Line Tools, required Homebrew packages, configure environment variables for bindgen and OpenSSL, install the Rust toolchain, Node.js, and pnpm — then install dependencies and launch the app.
WebKit is provided by macOS itself, so no webkit2gtk package is required. Whisper acceleration uses Metal on macOS, so no Vulkan package is needed either.
1

Install system dependencies

Install the Xcode Command Line Tools (Apple’s compiler and linker toolchain):
xcode-select --install
If Homebrew is not already installed, install it now:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install the packages required by Tauri and native Rust crates:
brew update
brew install cmake llvm pkg-config openssl@3 git wget
Package / ToolPurpose
Xcode Command Line ToolsApple compiler and linker toolchain required for native builds
HomebrewPackage manager used to install macOS dependencies
cmakeBuild system required by native Rust dependencies (e.g. whisper-rs-sys)
llvmProvides clang and libclang needed by bindgen
pkg-configHelper tool for finding and linking native libraries
openssl@3OpenSSL headers/libraries for crates that need SSL development files
git / wgetSource control and download utilities
2

Set environment variables for clang/bindgen and OpenSSL

Homebrew installs llvm and openssl@3 into non-standard paths that the compiler and pkg-config do not find automatically. Add these exports to your shell profile:
echo 'export PATH="$(brew --prefix llvm)/bin:$PATH"' >> ~/.zshrc
echo 'export LIBCLANG_PATH="$(brew --prefix llvm)/lib"' >> ~/.zshrc
echo 'export PKG_CONFIG_PATH="$(brew --prefix openssl@3)/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
source ~/.zshrc
If you use bash instead of zsh, replace ~/.zshrc with ~/.bash_profile (or ~/.bashrc) in every command above.
3

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
4

Install Node.js

Install Node.js v18 or later (v20 recommended).Option A — Homebrew:
brew install node@20
Option B — nvm (recommended for development):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
source ~/.zshrc
nvm install 20
nvm use 20
Verify the installation:
node --version
5

Enable pnpm via Corepack

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

Install Node dependencies

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

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 run tauri:dev
Or run only the frontend in the browser (no Rust backend required):
pnpm dev
The first pnpm run tauri:dev can take several minutes because Cargo downloads and compiles all Rust dependencies. Subsequent builds are much faster.

Troubleshooting

Error:
error: linker `cc` not found
Solution: Install Xcode Command Line Tools:
xcode-select --install
Error:
error: failed to run custom build command for `...`
Solution: Ensure native build tools are installed and that LIBCLANG_PATH and PATH are exported correctly:
brew install cmake llvm
echo 'export PATH="$(brew --prefix llvm)/bin:$PATH"' >> ~/.zshrc
echo 'export LIBCLANG_PATH="$(brew --prefix llvm)/lib"' >> ~/.zshrc
source ~/.zshrc
Error:
error: failed to run custom build command for `openssl-sys`
Solution: Install OpenSSL and expose it to pkg-config:
brew install openssl@3 pkg-config
echo 'export PKG_CONFIG_PATH="$(brew --prefix openssl@3)/lib/pkgconfig:$PKG_CONFIG_PATH"' >> ~/.zshrc
source ~/.zshrc
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"' >> ~/.zshrc
source ~/.zshrc
Solution: Configure pnpm to operate in user space, then reload your shell:
pnpm setup
source ~/.zshrc

Build docs developers (and LLMs) love