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.
As of praisonai-code 0.0.45 (PR #2853), default run "…" and run --output plain|verbose|silent "…" route in-process on a standalone pip install praisonai-code — the same Agent path used by --output actions|json|stream|stream-json. Only chat and code still require the praisonai wrapper.

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.

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. chat and code (interactive TUI) still need the wrapper.
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. Only chat and code fall to the install-hint branch. 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 raise the install hint on a standalone install:
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-required (listed on a standalone install but needs the wrapper at runtime), and wrapper-only (not listed without the wrapper). Wrapper-required commands are listed in --help but fail fast with an install hint when the wrapper is missing. 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: For interactive terminal UX (chat, code), install the wrapper: pip install praisonai. Default run and every --output text mode already work standalone. 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), config, doctor, or the warm-runtime daemon — smaller install, no gateway/bot deps.
Install praisonai for interactive chat/code, Telegram/Discord/Slack bots, the WebSocket gateway, or kanban/dashboard.
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