cai/docs/tui/user-interface.md

421 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# CAI TUI User Interface
> **⚡ CAI-Pro Exclusive Feature**
> The Terminal User Interface (TUI) is available exclusively in **CAI-Pro**. To access this feature and unlock advanced multi-agent workflows, visit [Alias Robotics](https://aliasrobotics.com) for more information.
---
This guide provides a detailed overview of the CAI TUI interface components and their functions.
## Interface Overview
The CAI TUI interface is divided into several key areas:
---
## Top Bar
The top bar provides global controls and information:
- **[≡] Menu Button**: Opens the command palette for quick access to all TUI commands
- **Terminal CTR Help**: Shows current help context and available shortcuts
- **[±] Maximize**: Toggles fullscreen mode for the active terminal
- **[×] Close**: Exits the TUI application
### Command Palette
Press `Ctrl+P` or click the menu button to open the command palette, which provides:
- Quick command search and execution
- Fuzzy matching for command names
- Keyboard navigation (arrow keys, Enter)
- Recent commands history
- Command descriptions and shortcuts
Available commands include:
- `clear` - Clear terminal output
- `save` - Save current session
- `load` - Load previous session
- `export` - Export conversation
- `reset` - Reset agent context
- `help` - Show help information
---
## Sidebar
The sidebar contains four main tabs accessible via mouse click or keyboard shortcuts (`Alt+1` through `Alt+4`):
### 1. Teams Tab (`Alt+1`)
The Teams tab displays preconfigured agent teams for parallel testing scenarios:
**Team Buttons**:
- Compact labels show team composition (e.g., `#1: 2 red + 2 bug`)
- Click to apply team configuration to all terminals
- Hover to see detailed tooltip with full agent names and terminal assignments
**Tooltip Information**:
- Team number and composition (e.g., "#2: 1 redteam_agent + 3 bug_bounter_agent")
- Terminal-by-terminal breakdown:
- T1: redteam_agent
- T2: bug_bounter_agent
- T3: bug_bounter_agent
- T4: bug_bounter_agent
**Available Teams**:
- **Team 1**: 2 Red Team + 2 Bug Bounty agents
- **Team 2**: 1 Red Team + 3 Bug Bounty agents
- **Team 3**: 2 Red Team + 2 Blue Team agents
- **Team 4**: 2 Blue Team + 2 Bug Bounty agents
When you select a team:
- All terminals are reconfigured automatically
- Agent dropdowns update to reflect new assignments
- Terminal headers show the assigned agent
- Previous conversations are preserved
### 2. Queue Tab (`Alt+2`)
The Queue tab manages prompt queuing and broadcast execution:
**Queue Management**:
- View all queued prompts
- Delete individual prompts
- Clear entire queue
- Execute queue sequentially
**Broadcast Mode**:
- Toggle broadcast mode on/off
- Send prompts to all terminals simultaneously
- Queue prompts for batch execution
- Monitor execution progress
**Queue Display**:
```
[1] Scan target.com for XSS vulnerabilities
[2] Check for SQL injection in login form
[3] Test API endpoints for authorization bypass
```
### 3. Stats Tab (`Alt+3`)
The Stats tab provides real-time cost tracking and usage statistics:
**Cost Information**:
- Total session cost (all terminals combined)
- Per-terminal cost breakdown
- Token usage (input/output)
- Model pricing details
- Cost per interaction
**Usage Metrics**:
- Number of interactions
- Total tokens consumed
- Average cost per turn
- Time elapsed
- Active terminals
**Example Display**:
```
Total Cost: $0.47
═══════════════════════
Terminal 1: $0.15 (3 interactions)
Terminal 2: $0.12 (2 interactions)
Terminal 3: $0.10 (2 interactions)
Terminal 4: $0.10 (2 interactions)
Model: alias1 ($0.015/1K in, $0.060/1K out)
Tokens: 1,240 input, 6,850 output
```
**Cost Limits**:
- Set via `CAI_PRICE_LIMIT` environment variable
- Warning when approaching limit
- Automatic pause when limit exceeded
### 4. Keys Tab (`Alt+4`)
The Keys tab displays and manages API key status:
**Key Information**:
- API key provider (OpenAI, Anthropic, etc.)
- Key validity status
- Last validation time
- Rate limit information
**Key Management**:
- View masked API keys
- Test key validity
- Update keys without restarting
- Environment variable status
**Example Display**:
---
## Terminal Components
Each terminal window consists of several components:
### Terminal Header
The header bar above each terminal shows:
- **Terminal Number**: T1, T2, T3, or T4
- **Agent Name**: Currently selected agent (e.g., `redteam_agent`)
- **Model Selector**: Dropdown to change LLM model (e.g., `alias1`, `gpt-4o`)
- **Container Icon**: Indicates if agent is running in container mode
**Agent Dropdown**:
- Click to open agent selection menu
- Shows all available agents
- Hover for agent description
- Keyboard navigation supported
**Model Dropdown**:
- Click to open model selection menu
- Shows configured models (alias0, alias1, gpt-4o, etc.)
- Displays model aliases and actual names
- Updates immediately upon selection
### Terminal Output Area
The main terminal display area shows:
**Agent Responses**:
- Formatted text with Rich markup support
- Syntax-highlighted code blocks
- Tables and structured data
- Progress indicators for long operations
**Tool Calls**:
- Tool name and parameters
- Execution status (running, success, error)
- Tool output and results
- Collapsed/expanded view for long outputs
**System Messages**:
- Agent initialization
- Context resets
- Error messages
- Cost warnings
**Streaming Display**:
- Real-time token streaming for LLM responses
- Progressive rendering of tool outputs
- Live progress indicators
- Smooth scrolling
**Example Output**:
### Terminal States
Terminals can be in different visual states:
**Active State**:
- Highlighted border (accent color)
- Ready to receive input
- Cursor visible in input area
- Responds to keyboard shortcuts
**Inactive State**:
- Dimmed border
- Background operations continue
- Click to activate
- Scrollable content
**Busy State**:
- Spinner or progress indicator
- "Working..." message
- Cannot send new prompts
- Cancel option available (`Ctrl+C`)
**Error State**:
- Red border or error indicator
- Error message displayed
- Retry option available
- Can clear and continue
---
## Terminal Layouts
The TUI supports multiple layout configurations for parallel agent execution:
### Single Terminal Layout
Default view showing one terminal at full width:
**Use Cases**:
- Single-agent workflows
- Detailed analysis requiring full screen
- Learning and experimentation
**Activation**: Automatically displayed when only one terminal is needed
### Split (Two Terminal) Layout
Side-by-side view for two terminals:
**Use Cases**:
- Comparing two agent approaches
- Red team vs. Blue team parallel execution
- Different model comparison
**Activation**: Triggered when using 2 terminals or Team 3/4
### Triple Terminal Layout
Three terminals with one full-width top terminal:
**Use Cases**:
- Full team operations (Teams 1-4)
- Maximum parallel execution
- Comprehensive testing scenarios
- Multi-perspective analysis
**Activation**: Default for preconfigured teams (Team 1, 2, 3, 4)
### Scrollable Layout
For more than 4 terminals (experimental):
**Use Cases**:
- Large-scale testing
- Custom configurations
- Advanced workflows
**Activation**: Manual configuration via startup YAML
---
## Status Bar
The bottom status bar displays global information:
**Left Section**:
- **Agent**: Currently active agent name
- **Model**: Currently active model
- **Cost**: Session total cost
**Center Section**:
- **Tokens**: Total tokens used (input/output)
- **Time**: Session duration
- **Interactions**: Number of completed turns
**Right Section**:
- **Status**: Connection status, errors, warnings
- **Mode**: Current mode (broadcast, queue, normal)
- **Shortcuts**: Context-sensitive keyboard hints
**Example**:
## Input Area
The input area at the bottom provides prompt entry and management:
### Prompt Input
**Features**:
- Multi-line input support (grows with content)
- Syntax highlighting for code snippets
- Placeholder text with hints
- Character counter for long prompts
- Auto-scrolling for long text
**Keyboard Shortcuts**:
- `Enter`: Submit prompt (single-line mode)
- `Shift+Enter`: New line (multi-line mode)
- `Ctrl+Enter`: Submit multi-line prompt
- `Ctrl+U`: Clear input
- `Up/Down`: Navigate command history
### Autocompletion
The TUI provides intelligent autocompletion for:
**Commands**:
- `/clear` - Clear terminal
- `/save` - Save session
- `/load` - Load session
- `/help` - Show help
- `/agent` - Switch agent
- `/model` - Switch model
**Agent Names**:
- Type `@` to trigger agent name completion
- Fuzzy matching supported
- Shows agent descriptions
**File Paths**:
- Type `/path/` to trigger path completion
- Shows recent files and directories
- Supports tab completion
**Example**:
---
## Responsive Design
The TUI adapts to different terminal sizes:
### Minimum Requirements
- **Width**: 80 columns minimum (120+ recommended)
- **Height**: 24 rows minimum (40+ recommended)
### Adaptive Behaviors
**Small Terminals (80×24)**:
- Sidebar collapses to icons only
- Single terminal view prioritized
- Compact status bar
- Abbreviated labels
**Medium Terminals (120×40)**:
- Full sidebar visible
- Split/Triple layouts available
- Standard spacing
- Full labels
**Large Terminals (160×50+)**:
- Quad layout comfortable
- Additional information displayed
- More breathing room
- Enhanced tooltips
### Dynamic Adjustments
The TUI automatically:
- Wraps long lines in terminal output
- Truncates button labels to fit width
- Adjusts table column widths
- Scales terminal grid based on available space
- Hides non-essential UI elements when space is limited
---
*Last updated: October 2025 | CAI TUI v0.6+*