Skip to main content
praisonai-code is the terminal-native agent CLI — install it on its own for a smaller footprint when you only need agentic commands.
The user runs a terminal prompt; praisonai-code executes the agent in-process and prints the reply. Interactive chat and code also run from praisonai-code alone — no wrapper (PR #3818):
As of PR #3818, chat and code interactive sessions now run resident inside praisonai-code — no wrapper required. pip install praisonai-code alone delivers a full interactive chat/code session on the split-pane TUI. Default run "…" and every --output text mode already ran in-process (PR #2853). When the praisonai wrapper is installed, it is still detected and the richer legacy interactive dispatch is used; the resident TUI is the fallback when the wrapper is absent.

Which install do I need?

Both praisonai-code (console script) and python -m praisonai_code call the same entry point: configure logging, register commands, then run the Typer app.

Interactive Chat & Code (resident TUI)

A single pip install praisonai-code is enough for an interactive session — the split-pane async TUI ships inside the package (PR #3818).
The wrapper is never required for the baseline TUI — it only upgrades code to the richer legacy dispatch and routes the wrapper-only helpers through their direct implementation instead of the _wrapper_bridge fallback.

Quick Start

1

Install standalone

The panel lists PraisonAI Code, PraisonAI Agents, and Python. When the full wrapper is installed, a PraisonAI Wrapper line appears as well.Use --version for a quick one-liner (package version only, no panel):
Run your first agent:
Every text mode — default run "…" and --output plain|verbose|silent|actions|json|stream|stream-json — runs standalone via the in-process Agent path. As of PR #3818, chat and code also open their resident interactive TUI standalone — the wrapper adds only the richer legacy dispatch for code and the gateway/bot channels.
2

Upgrade later if you need bots or gateway

The same praisonai-code binary keeps working. Wrapper-only commands (gateway, bot, onboard, pairing, identity, kanban, claw, dashboard) become available through the composed install.

How It Works

Text-mode run always executes in-process via the Agent path on a standalone install. When the wrapper is present, human-readable modes delegate to its handle_direct_prompt; when it is absent, they route through the in-process Agent with the matching output preset. chat and code open their resident TUI standalone (PR #3818); when the wrapper is installed, code prefers the richer legacy dispatch (PraisonAI._start_interactive_mode). Plugin discovery is vendored inside praisonai-code, so plugin-related flows keep working without the wrapper. Output presets map as plainplain, silent/default → silent, verboseverbose; silent-style presets print the final text. chat and code open their resident interactive TUI standalone (PR #3818) — pip install praisonai-code alone delivers full interactive sessions. When the praisonai wrapper is installed, code prefers its richer legacy dispatch (PraisonAI._start_interactive_mode):
The vendored _registry module means plugins work even without the wrapper installed. Version resolution reads from the praisonai-code package metadata directly, not the wrapper.

Command matrix

Three tiers decide what a command needs: fully standalone, wrapper-boosted (works standalone but gains a richer path with the wrapper), and wrapper-only (not listed without the wrapper). chat and code open their resident TUI standalone (PR #3818); code prefers the richer legacy dispatch when the wrapper is installed. Wrapper-only names stay out of --help entirely and do not load a Typer module. The 14 stub groups below are a special mixed case — their legacy entry points are wrapper-required, but native subcommands stay standalone-safe:
daemon start runs standalone in both foreground and --background modes — only the bot/gateway daemon sub-apps are wrapper-only.

Standalone limits

On a pip install praisonai-code-only install: chat, code, and every run output mode work on a praisonai-code-only install (PR #2853, PR #3818). Installing the wrapper (pip install praisonai) adds the richer legacy dispatch for code, the gateway, and channel bots — it is no longer required for the baseline interactive experience. praisonai-code doctor returns exit 0 on a healthy standalone install — wrapper-presence checks (performance_praisonai_import, acp_module, praisonai_package_structure, console_script_execution) SKIP rather than FAIL (PR #2851).

Stub command groups on standalone

Run agents standalone without the wrapper — the SDK works directly:
Fourteen command groups — agents, workflow, registry, memory, skills, hooks, rules, eval, package, templates, todo, research, commit, and call — delegate to the praisonai wrapper for their legacy entry points. On a standalone pip install praisonai-code (PR #2854) those entry points exit 1 with a single-line install hint — no Rich traceback:
The <group> name changes per command (workflow requires the full wrapper. …, registry requires the full wrapper. …, and so on).
These groups are mixed, not wholly wrapper-only. Their native subcommands keep working standalone — only the legacy delegating entry points fail fast.Run pip install praisonai to unlock the wrapper-delegating entry points, or use the native standalone-safe subcommand.

Wrapper-command loading

Wrapper-only commands (bot, gateway, pairing, identity, onboard, kanban, dashboard, claw, daemon) are Typer sub-apps whose implementations live in the praisonai wrapper. When you install praisonai-code standalone, these commands are not listed in --help and are not resolvable — get_command() returns None instead of loading a module that doesn’t exist in praisonai_code.
To use bot, gateway, pairing, identity, onboard, kanban, dashboard, claw, or daemon, install the full wrapper:

Configuration and environment

Version commands

Shows the full version panel:
Returns structured JSON:
The praisonai key is omitted when the wrapper is not installed.
Queries PyPI and returns update status:
praisonai-code version check needs outbound HTTPS to PyPI.

Best Practices

Use praisonai-code for any run "…" prompt (default or any --output mode), interactive chat/code (resident TUI, PR #3818), config, doctor, or the warm-runtime daemon — smaller install, no gateway/bot deps.
Install praisonai for the richer legacy code dispatch (PraisonAI._start_interactive_mode), Telegram/Discord/Slack bots, the WebSocket gateway, kanban/dashboard, and RunPolicy for unattended runs. Baseline interactive chat/code run standalone (PR #3818).
In dev, pip install -e src/praisonai-agents && pip install -e src/praisonai-code && pip install -e src/praisonai (this exact order) — matches the release publish order in pypi-release.yml.
from praisonai import AgentOS and from praisonai import AgentApp both work — AgentApp is a backward-compat silent alias for AgentOS. No deprecation warning is emitted.

Choose your install

Compare full wrapper, code-only, and SDK installs

Architecture

Six-package layout and dependency direction