Skip to main content
PraisonAI Chat is a modern chat UI for your agents with streaming replies, tool-call visualization, and session history.
from praisonaiagents import Agent

agent = Agent(name="chat-ui", instructions="Help users in the PraisonAI Chat interface.")
agent.start("Explain what you can do in this session.")
The user types in PraisonAI Chat; the agent streams replies with tool calls and session history visible in the UI.

Quick Start

1

Install the chat extra

pip install praisonai[chat]
2

Launch the UI

praisonai chat
Opens at http://localhost:8000. Use --port 3000 for a custom port.
3

Or start programmatically

from praisonaiagents import Agent
from praisonai.chat import start_chat_server

agent = Agent(
    name="Assistant",
    instructions="You are a helpful AI assistant."
)

start_chat_server(agent=agent, port=8000)

Features

Multi-Agent Support

Seamlessly interact with multiple AI agents in a single interface

Tool Visualization

See agent tool calls and their results in real-time

Streaming Responses

Real-time streaming of agent responses

Session Management

Persistent sessions with full history

Multi-Agent Chat

from praisonaiagents import Agent
from praisonai.chat import start_chat_server

# Define multiple agents
researcher = Agent(
    name="Researcher",
    role="Research specialist",
    instructions="You research topics thoroughly."
)

writer = Agent(
    name="Writer", 
    role="Content writer",
    instructions="You write clear, engaging content."
)

# Start chat with multiple agents
start_chat_server(agents=[researcher, writer], port=8000)

Configuration

ChatConfig Options

from praisonai.chat import start_chat_server, ChatConfig

config = ChatConfig(
    host="0.0.0.0",      # Host to bind to
    port=8000,           # Port number
    debug=False,         # Enable debug mode
    auth_enabled=False,  # Enable authentication
    session_id=None,     # Custom session ID
)

start_chat_server(config=config)

Environment Variables

VariableDescriptionDefault
PRAISONAI_CHAT_PORTServer port8000
PRAISONAI_CHAT_HOSTServer host0.0.0.0
CHAINLIT_HOSTHost the UI binds to (drives auth mode)127.0.0.1
CHAINLIT_USERNAMEUsername for authenticationadmin
CHAINLIT_PASSWORDPassword for authenticationadmin
PRAISONAI_ALLOW_DEFAULT_CREDSAllow admin/admin on external bind (unsafe)false
CHAINLIT_AUTH_SECRETAuth secret for sessionsAuto-generated

Security

The chat UI enforces bind-aware authentication — stricter security when bound to external interfaces.
InterfaceSecurity ModeCredentials
Loopback (127.0.0.1, localhost)Permissiveadmin/admin allowed
External (0.0.0.0, LAN, public)StrictCustom credentials required
Using default admin/admin credentials on external interfaces will cause a UIStartupError unless PRAISONAI_ALLOW_DEFAULT_CREDS=1 is set (demo only).
# Safe for external deployment
export CHAINLIT_USERNAME=myuser
export CHAINLIT_PASSWORD=mypass
praisonai chat --host 0.0.0.0

Bind-Aware Authentication

Complete security configuration guide

UI Features

Chain of Thought Visualization

The chat interface displays agent reasoning steps, showing how agents arrive at their responses.

Tool Call Panel

When agents use tools, the UI displays:
  • Tool name
  • Input arguments
  • Tool output/results
  • Execution time

Session History

  • Automatic session persistence
  • Resume previous conversations
  • Export chat history

Integration with PraisonAI Agents

PraisonAI Chat integrates seamlessly with the full PraisonAI agent framework:
from praisonaiagents import Agent, Task, AgentTeam
from praisonaiagents.tools import internet_search

researcher = Agent(
    name="Researcher",
    role="Research specialist",
    tools=[internet_search]
)

writer = Agent(
    name="Writer",
    role="Content writer"
)

# Define tasks
research_task = Task(
    description="Research {topic}",
    agent=researcher,
    expected_output="Research findings"
)

write_task = Task(
    description="Write article based on research",
    agent=writer,
    expected_output="Article content"
)

# Create the agents system
agents = AgentTeam(
    agents=[researcher, writer],
    tasks=[research_task, write_task]
)

# The chat UI will automatically detect and use these agents

Upstream Updates

PraisonAI Chat is based on Chainlit, an excellent open-source framework. We maintain compatibility with upstream updates. To sync with upstream improvements:
cd PraisonAIChat
make sync-upstream

How It Works


Best Practices

Validate prompts and tools in chat before adding multi-agent complexity. One well-instructed agent is easier to debug than a team.
Use streaming so users see progress during tool calls and multi-step reasoning instead of waiting for a full response.
Configure session storage when users return across visits. Ephemeral sessions are fine for local dev only.
Install praisonai[chat] in CI and production with a pinned version so the UI and SDK stay compatible.

License

PraisonAI Chat is licensed under the Apache 2.0 License. See THIRD_PARTY_NOTICES.md for attribution.

Chat with your documents by grounding replies in PDF content.

Persist conversation history so users can resume chats across visits.