Skip to main content

PraisonAI 🦞

Python Tests PyPI version

AI Dashboard & Multi-Agent Platform — deploy agents with one Python file

PraisonAIUI gives you a full-featured AI dashboard with multi-agent chat, memory, skills, sessions, and 19 admin pages — all from a single app.py. It also supports YAML-driven chat bots and static documentation sites.

Quick Start

1. Install

pip install aiui

2. Create app.py

import praisonaiui as aiui

aiui.set_style("dashboard")

@aiui.reply
async def on_reply(message):
    return f"You said: {message.content}"

3. Run

aiui run app.py

Open http://localhost:8000 — your AI dashboard is live.

YAML Chat Mode

No Python needed — define your agent in YAML:

# chat.yaml
name: My Assistant
instructions: You are a helpful assistant.
model: gpt-4o-mini
welcome: "Hi! How can I help?"
starters:
  - label: "What can you do?"
    message: "Tell me about your capabilities"
profiles:
  - name: Expert
    description: Expert mode
    icon: 🎓
tools:
  - web_search
  - calculate
features: true
datastore: json
aiui run chat.yaml

Documentation Mode

Generate a static documentation site from Markdown:

aiui init
aiui build
aiui serve

UI Styles

Six distinct UI styles, selectable via --style or aiui.set_style():

Style Flag Description Best For
Dashboard --style dashboard Multi-page admin panel with sidebar Agent management, admin dashboards
Chat --style chat Fullscreen/sidebar/floating chat Conversational AI, customer support
Agents --style agents Tabbed multi-agent playground Agent experimentation
Playground --style playground Input/output side-by-side panels Prompt testing, comparison
Docs --style docs Three-column documentation layout Documentation sites, knowledge bases
Custom --style custom User-defined layout Full control
aiui run app.py --style dashboard
aiui run app.py --style chat
aiui run chat.yaml --style agents

Python SDK API

Write app.py using import praisonaiui as aiui:

Configuration

Function Purpose Example
aiui.set_style(style) Set UI style aiui.set_style("dashboard")
aiui.set_pages(ids) Whitelist sidebar pages aiui.set_pages(["chat", "agents", "memory"])
aiui.set_branding(title, logo) Configure branding aiui.set_branding("MyApp", "🚀")
aiui.set_datastore(store) Set persistence backend aiui.set_datastore(aiui.JSONFileDataStore())
aiui.set_provider(provider) Set AI provider aiui.set_provider(aiui.get_provider())
aiui.register_agent(config) Register an agent aiui.register_agent({"agent_id": "bot", ...})
aiui.remove_page(id) Remove a page aiui.remove_page("debug")

Callback Decorators

Decorator Purpose
@aiui.reply Handle chat messages
@aiui.welcome Welcome message on connect
@aiui.goodbye Cleanup on disconnect
@aiui.starters Suggest conversation starters
@aiui.profiles Define chat profiles
@aiui.page(slug, ...) Register a custom dashboard page
@aiui.on(event) Listen for server events
@aiui.login Handle authentication
@aiui.settings User settings handler
@aiui.resume Resume interrupted sessions

Message Functions

Function Purpose
await aiui.say(text) Send a message
await aiui.stream(text) Stream a response
await aiui.stream_token(token) Stream token-by-token
await aiui.ask(question) Ask user a question
await aiui.image(url) Send an image
await aiui.audio(url) Send audio
await aiui.action_buttons(buttons) Show action buttons

UI Components

Function Purpose
aiui.layout(children) Page layout container
aiui.card(title, content) Card component
aiui.chart(data, type) Chart (bar, line, pie)
aiui.table(headers, rows) Data table
aiui.columns(cols) Multi-column layout
aiui.text(content) Text block

Full app.py Example

"""Dashboard with three agents and a custom page."""
import os
import praisonaiui as aiui

# ── Style & pages ─────────────────────────────────────────────
aiui.set_style("dashboard")
aiui.set_pages([
    "chat", "agents", "memory", "knowledge",
    "skills", "sessions", "usage", "config", "logs",
])

# ── Branding ──────────────────────────────────────────────────
aiui.set_branding(title="PraisonAI", logo="🦞")

# ── Agents ────────────────────────────────────────────────────
aiui.register_agent({
    "agent_id": "researcher",
    "name": "Researcher",
    "description": "Finds and summarizes information",
    "instructions": "You are a research assistant.",
    "model": os.getenv("PRAISONAI_MODEL", "gpt-4o-mini"),
    "icon": "🔬",
})

aiui.register_agent({
    "agent_id": "coder",
    "name": "Coder",
    "description": "Writes clean, well-commented code",
    "instructions": "You are a coding assistant.",
    "model": os.getenv("PRAISONAI_MODEL", "gpt-4o-mini"),
    "icon": "💻",
})

# ── Custom page ───────────────────────────────────────────────
@aiui.page("explorer", title="Explorer", icon="🔬", group="Control", order=55)
async def explorer_page():
    return aiui.layout([aiui.text("Custom page content here.")])
aiui run app.py

Dashboard Pages

All built-in pages available for set_pages():

ID Icon Group Description
chat 💬 Agent AI agent chat
channels 📡 Agent Messaging platform connections
agents 🤖 Agent Configured AI agents
skills ⚡ Agent Agent skills & plugins
memory 🧠 Agent Agent memory & knowledge
knowledge 📚 Agent Knowledge base & RAG
guardrails 🛡️ Agent Input/output safety guardrails
overview 📊 Control System health and statistics
sessions 📋 Control Conversation history
usage 📈 Control Token usage & metrics
cron ⏰ Agent Scheduled jobs
jobs 📋 Control Async agent jobs
approvals ✅ Control Execution approval queue
nodes 🖥️ Control Execution nodes & presence
eval 📊 Control Agent evaluation & accuracy
api 🔌 Control OpenAI-compatible API endpoints
config ⚙️ Settings Server configuration
auth 🔐 Settings Authentication settings
logs 📜 Settings Server logs and events
debug 🐛 Settings Debug information
telemetry 📈 Settings Telemetry data
traces 🔍 Settings Distributed traces
security 🔒 Settings Security settings
inspector 🔍 Control API endpoint debugger (footer)

CLI Commands

Core Commands

aiui init [--template docs|minimal|marketing] [--frontend]  # Create project
aiui validate [--config FILE] [--strict]                     # Validate config
aiui build [--config FILE] [--output DIR] [--minify]         # Build static site
aiui serve [--port 8000] [--reload] [--style STYLE]          # Serve site
aiui run app.py [--port 8000] [--reload] [--style STYLE]     # Run AI server
aiui run chat.yaml [--port 8000] [--style chat]              # Run YAML chat
aiui dev -e examples [--port 9000]                           # Dev dashboard
aiui doctor [--json]                                         # Diagnostics
aiui test chat|memory|sessions|endpoints|all                 # Run tests

Management Commands

# Sessions
aiui sessions list|create|get|delete|messages

# Memory
aiui memory list|add|search|clear|status|context

# Skills
aiui skills list|status|discover

# Agents & Provider
aiui provider status|health|agents

# Config
aiui config get|set|list|history

# Schedules
aiui schedule list|add|remove|status

# Approvals
aiui approval list|pending|resolve

# Workflows
aiui workflows list|run|status|runs

# Hooks
aiui hooks list|trigger|log

# Eval
aiui eval status|list|scores|judges|run

# Traces
aiui traces status|list|spans|get

# Pages
aiui pages list|ids

# Features
aiui features list|status

# Health
aiui health [--detailed]

YAML Configuration

Site Config (config.yaml in ~/.praisonaiui/)

site:
  title: "PraisonAI"
  logo: "🦞"
  theme:
    preset: "zinc"       # 22 Tailwind color presets
    radius: "md"         # none, sm, md, lg, xl
    darkMode: true

pages:
  disabled:
    - debug
    - telemetry

Static Site Config (aiui.template.yaml)

schemaVersion: 1

site:
  title: "My Docs"
  theme:
    preset: "blue"
    darkMode: true

content:
  docs:
    dir: "./docs"

templates:
  docs:
    layout: "ThreeColumnLayout"

Theme Presets

22 Tailwind color presets with automatic dark/light mode:

zinc slate stone gray neutral red orange amber yellow lime green emerald teal cyan sky blue indigo violet purple fuchsia pink rose

Environment Variables

Variable Purpose Default
OPENAI_API_KEY OpenAI API key —
PRAISONAI_MODEL Default model gpt-4o-mini
AIUI_DATA_DIR Data directory ~/.praisonaiui
AIUI_CONFIG Config file path aiui.template.yaml
AIUI_OUTPUT Build output dir aiui

Architecture

Dashboard Mode:                        Docs Mode:
app.py  →  aiui run  →  Server         aiui.template.yaml  →  aiui build  →  aiui/
               ↓                                                                ├── index.html
         http://localhost:8000                                                  ├── docs/*.md
         ├── /api/chat/ws (WebSocket)                                           ├── ui-config.json
         ├── /api/pages                                                         └── assets/
         ├── /api/agents
         ├── /sessions
         └── /ui-config.json

Development

git clone https://github.com/MervinPraison/PraisonAIUI.git
cd PraisonAIUI
pip install -e .[dev]
pytest tests -v

License

MIT © Praison Limited

Metadata

Release files for aiui 0.3.146

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aiui 0.3.146
File Size Uploaded
aiui-0.3.146.tar.gz 6.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for aiui 0.3.146
File Interpreter ABI Platform
aiui-0.3.146-py3-none-any.whl Python 3 none any Details

Total release size: 8.3 MB

Release files / aiui-0.3.146.tar.gz

Download URL aiui-0.3.146.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
2c52820a96b2a04ae4169fd389bfd370ab7ea496281ac7c2af9b903ce287a947
BLAKE2b-256 checksum
How to use checksums
4b96677bdf2f3e47d1604f9bdbca7baf1af82bc28412810eabd1d543a86ceb56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / aiui-0.3.146-py3-none-any.whl

Download URL aiui-0.3.146-py3-none-any.whl
Size 2.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
d549e7f527c53e5ffeb4bdd4630afbdaf90cb5c4b70f43474e82802baafcf8a2
BLAKE2b-256 checksum
How to use checksums
b0086076b5af6a05b5a46805ad193526089486ec9e167b3c764927a7a06dd5dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.15 {"installer":{"name":"uv","version":"0.12.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.3.146 This release

2 release files

0.3.99

2 release files

0.3.98

2 release files

0.3.97

2 release files

0.3.96

2 release files

0.3.95

2 release files

0.3.94

2 release files

0.3.93

2 release files

0.3.92

2 release files

0.3.91

2 release files

0.3.90

2 release files

0.3.89

2 release files

0.3.88

2 release files

0.3.87

2 release files

0.3.86

2 release files

0.3.85

2 release files

0.3.84

2 release files

0.3.83

2 release files

0.3.82

2 release files

0.3.81

2 release files

0.3.80

2 release files

0.3.79

2 release files

0.3.78

2 release files

0.3.77

2 release files

0.3.76

2 release files

0.3.75

2 release files

0.3.74

2 release files

0.3.73

2 release files

0.3.72

2 release files

0.3.71

2 release files

0.3.70

2 release files

0.3.69

2 release files

0.3.68

2 release files

0.3.67

2 release files

0.3.66

2 release files

0.3.65

2 release files

0.3.64

2 release files

0.3.63

2 release files

0.3.62

2 release files

0.3.61

2 release files

0.3.60

2 release files

0.3.59

2 release files

0.3.58

2 release files

0.3.57

2 release files

0.3.56

2 release files

0.3.55

2 release files

0.3.54

2 release files

0.3.53

2 release files

0.3.52

2 release files

0.3.51

2 release files

0.3.50

2 release files

0.3.48

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page