Skip to main content
Download the app, run it, and the Python engine sets itself up on first launch. That’s it.

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.
Not sure which Mac you have? Open the Apple menu → About This Mac. “Chip” means Apple silicon; “Processor” means Intel.
1

Move it to Applications

Drag PraisonAI to Applications.
2

Open it once

Right-click it → OpenOpen. That once is enough; afterwards it launches normally.
Gatekeeper says the app is unverified or that the developer is unidentified — nothing is wrong. The app simply has no trusted signature yet.
If macOS still refuses, clear the quarantine attribute your browser added when it downloaded the file:
If you see “PraisonAI is damaged and can’t be opened”, right-click → Open will not get past it — macOS says “damaged” when a signature is invalid, not merely untrusted. This affected v4.7.2; use v4.7.3 or later.

What happens the first time you open it

The app needs a Python environment to run its engine and offers to build one: it fetches uv, 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, no provider/ 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.
To reach Anthropic, Gemini, or others, use the same pattern: a bare model id plus a Base URL for any provider that exposes an OpenAI-compatible endpoint (or a proxy such as LiteLLM Proxy). See OpenAI-compatible endpoints and LiteLLM Proxy.
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:
The setup screen offers to build the environment. If it fails, the step that failed is named along with what it printed.
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.

Install the Python SDK instead

For developers who want the library

All install options

Top-level installation index