Skip to main content

PraisonAI TUI

The PraisonAI TUI (Terminal User Interface) provides an app-like interactive experience for running AI agents directly in your terminal. Built with Textual, it offers a modern, responsive interface with streaming output, queue management, and session persistence.

Features

  • Event-loop driven UI - Always-active input, non-blocking operations
  • Multi-pane layout - Chat history, status bar, queue panel, tool execution
  • Streaming output - Token-by-token display with backpressure handling
  • Queue management - Submit multiple tasks, cancel, retry, priority ordering
  • Session persistence - Resume sessions after crashes
  • Slash commands - Quick actions like /help, /model, /cost
  • Keyboard shortcuts - Efficient navigation and control

Quick Start

# Launch the TUI
praisonai tui launch

# Or with options
praisonai tui launch --model gpt-4 --workspace ./my-project

Installation

TUI is included by default with PraisonAI:
pip install praisonai
For a minimal installation without TUI:
pip install praisonai[lite]

Architecture

The TUI is built on a clean separation of concerns:
┌─────────────────────────────────────────────────────────┐
│                    TUI Application                       │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐       │
│  │  App    │ │ Widgets │ │ Screens │ │ Events  │       │
│  └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘       │
│       └───────────┴───────────┴───────────┘             │
│                         │                               │
│  ┌─────────────────────┴─────────────────────┐         │
│  │         Event Bus / Message Queue          │         │
│  └─────────────────────┬─────────────────────┘         │
│                         │                               │
│  ┌─────────┐ ┌─────────┴─────────┐ ┌─────────┐         │
│  │ Queue   │ │ Worker Pool       │ │ Persist │         │
│  │ Manager │ │ (Agent Runners)   │ │ Layer   │         │
│  └─────────┘ └───────────────────┘ └─────────┘         │
└─────────────────────────────────────────────────────────┘

Key Components

Widgets

WidgetDescription
ChatWidgetDisplays chat history with streaming support
ComposerWidgetInput area with slash command detection
StatusWidgetStatus bar showing session, model, tokens, cost
QueuePanelWidgetQueue display with cancel/retry actions
ToolPanelWidgetTool execution status and approvals

Screens

ScreenDescription
MainScreenPrimary chat interface
QueueScreenQueue management
SettingsScreenConfiguration
SessionScreenSession browser

Keyboard Shortcuts

KeyAction
Ctrl+EnterSend message
Ctrl+CCancel current run
Ctrl+QQuit TUI
Ctrl+LClear screen
F1Show help
F2Toggle queue panel
F3Open settings
/Start slash command

Next Steps