Download
Grab the latest build from the Releases page, then pick the file for your platform:There is no universal build. Each download targets one architecture, and a wrong-arch download fails when you launch it — not when you install it, which is a worse place to find out. Match the file to your machine using the table above.
Which download do I need?
Follow the branch for your machine.Open it
The builds are unsigned, so each OS shows a warning the first time. Here’s the one-time click for yours.- macOS
- Windows
- Linux
Not sure which Mac you have? Open the Apple menu → About This Mac. “Chip” means Apple silicon; “Processor” means Intel.If macOS still refuses, clear the quarantine attribute your browser added when it downloaded the file:
1
Move it to Applications
Drag PraisonAI to Applications.
2
Open it once
Right-click it → Open → Open. That once is enough; afterwards it launches normally.
What happens the first time you open it
The app needs a Python environment to run its engine and offers to build one: it fetchesuv, installs a pinned CPython, creates a virtual environment, and installs praisonaiagents into it. Nothing is installed system-wide, and nothing is written inside the app itself — everything lives in one folder.
The folder appears as soon as you open the app; the ≈500 MB environment lands inside it once you click Get started.
On later launches the app also checks the venv against the shipped requirement and re-runs the install once if it drifted (the system tray reads
Engine: updating… while it runs). This is why a fix in praisonaiagents reaches you on the next launch instead of requiring you to delete the venv by hand.
To remove the app completely, uninstall it and delete that folder.
Which models work in the desktop app
The desktop app runs any plain OpenAI-compatible model id (a bare name, noprovider/ prefix); to reach a different endpoint, keep the bare id and set a Base URL override in Settings.
What the rejection message means
Saving a slashed id in Settings → Model returns this:The model id ”…” needs the LiteLLM provider path, which this build does not include. Use a plain OpenAI-compatible model id without a provider prefix (for example gpt-4o-mini); to reach another endpoint, keep the bare id and set a Base URL override.This build ships a lean Python engine without the LiteLLM provider extra. Slashed provider ids need that extra. The remedy is a bare id plus an optional Base URL — not a re-install, and not
pip install in your own Python, since the app manages its own environment.
Reach Ollama or another local endpoint
1
Enter the bare model name
In Settings → Model, type
llama3.2 — not ollama/llama3.2.2
Set the Base URL
In the Base URL field, enter
http://localhost:11434/v1 (Ollama’s OpenAI-compatible endpoint).3
Save
The picker accepts it, and turns route to your local server.
This constraint applies to the desktop app’s lean environment only — the Python SDK reaches Anthropic, Gemini, and others via the
llm extra. A future desktop build may ship that extra, at which point slashed ids work automatically; the app already reports the capability on GET /health ({ …, "litellm": false }), so no user action is needed when it changes.If it will not start
The window shows the reason and the engine log. Two common ones:No usable Python
No usable Python
The setup screen offers to build the environment. If it fails, the step that failed is named along with what it printed.
Engine did not report ready in time
Engine did not report ready in time
The first import of the ML stack is slow on a cold machine. Give it a minute; if it persists, the Engine log in the sidebar has the traceback.
Signing status
The builds are intentionally unsigned today: signing needs an Apple Developer ID on one side and a hardware-backed certificate or a hosted signing service on the other, and shipping builds you can open past a warning is better than shipping none. Signed builds are a planned improvement.
Related
Install the Python SDK instead
For developers who want the library
All install options
Top-level installation index

