Skip to main content
PraisonAI Desktop is a native macOS app that runs your PraisonAI agents locally with streaming chat, tool calls, approvals, MCP servers, and per-conversation memory — no browser required.
The app is a Tauri (Rust) shell that supervises a small Python engine on loopback. Chat text streams straight from that engine into the webview over 127.0.0.1 — nothing leaves your machine unless the model itself does.

Quick Start

1

Install a venv with praisonaiagents

The app looks for a local virtual environment inside the checkout. Create one and install the SDK:
2

Build the app from source

The DMG target is defined in src-tauri/tauri.conf.json (productName: "PraisonAI", identifier ai.praison.desktop, macOS 10.15+).
The PR ships no README — confirm the exact build command with the maintainer before publishing.
3

Launch and watch the startup pill

On first launch a status pill reports the engine’s state:

How It Works

The Rust shell picks a Python interpreter, proves it owns its own site-packages, spawns the engine, then confirms the announced port with a /health probe before handing it to the webview. Where the app looks for the venv, in order (src-tauri/src/main.rs): The first interpreter whose venv owns its own site-packages wins. A system Python or a mismatched venv is refused rather than guessed at.

When To Use It


Best Practices

The shell resolves the interpreter from fixed paths inside the checkout. Put your .venv at src/praisonai-agents/.venv so the app finds it without configuration.
A missing dependency surfaces as engine failed: missing dependency. Install praisonaiagents into the same venv the app resolves.
Every failure attaches the tail of the engine’s own output. Read the pill and the log viewer instead of guessing from a bare exit code.

Chat & Streaming

Messages, streaming events, tool cards, and keyboard shortcuts

Approvals & Safety

ask / smart / never modes and the per-call approval flow

Settings Reference

Every field in the settings registry

Engine & Diagnostics

Startup states, the log viewer, and common failure modes