This guide walks you through running Pacto on your local machine. By the end you will have the full Tauri v2 desktop app — SvelteKit frontend and Rust backend — running in development mode, connected to live Nostr relays and ready for local experimentation. The entire process takes under 15 minutes on a modern machine (excluding the one-time Cargo compilation step on first run).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.
Install prerequisites
Pacto requires Rust (via
After installing Rust, source the cargo environment so the toolchain is on your Verify everything is available:
rustup), Node.js 20+, and pnpm, plus a set of native system libraries consumed by Tauri and its Rust dependencies. Follow the guide for your operating system:At minimum you need:| Tool | Minimum version | Install |
|---|---|---|
| Rust / Cargo | stable (latest) | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh |
| Node.js | 20 LTS | NodeSource or nvm install 20 |
| pnpm | latest | corepack enable && corepack prepare pnpm@latest --activate |
PATH:Clone and install
Clone the repository and install Node dependencies with pnpm:pnpm reads
package.json and installs the SvelteKit frontend dependencies and the Tauri CLI into node_modules. The Rust crate (src-tauri/) is compiled separately in the next steps — pnpm install does not trigger Cargo yet.Configure environment
Copy the example environment file to create your local The Public RPC fallbacks are built in —
.env:.env.example ships with all keys commented out:ALCHEMY_RPC_KEY is optional for local development. You do not need an API key to run the app or explore the UI.Run the desktop app
Launch Pacto in Tauri development mode:Tauri compiles the Rust backend, bundles the SvelteKit frontend, and opens a native desktop window with hot-reload enabled. The Svelte UI reloads instantly on file changes; Rust changes trigger a Cargo recompile.
The first run downloads and compiles all Rust dependencies from crates.io — this is normal and can take several minutes depending on your machine and network connection. Subsequent runs are much faster because Cargo caches compiled artifacts in
src-tauri/target/.Frontend-only mode
If you are working on UI components or Svelte stores and do not need the Rust backend, you can run the SvelteKit dev server directly in a browser:http://localhost:5173) without invoking Cargo. Tauri invoke calls and backend events will not be available — commands that cross the Tauri bridge will no-op or throw — but all pure frontend work, layout, and store logic can be developed and previewed instantly.
Troubleshooting
WebKit not found (Linux)
WebKit not found (Linux)
Error:Cause: Tauri’s Linux build requires the WebKit rendering engine development package, which is not installed by default on many distributions.Fix:
OpenSSL errors
OpenSSL errors
Error:Cause: Several Rust crates link against OpenSSL at compile time and need the development headers (
libssl-dev) and pkg-config to locate them.Fix:bindgen / libclang errors
bindgen / libclang errors
Error:Cause: Some Rust crates (including those generating FFI bindings at build time) depend on
cmake, clang, and libclang-dev being available on the system.Fix:Rust not found after install
Rust not found after install
Error:Cause: Fix (permanent — add to shell profile):On macOS with zsh, replace
rustup installs Rust into ~/.cargo/bin, which is not automatically on PATH in the current shell session.Fix (current session):~/.bashrc with ~/.zshrc.