Terminal User Interface (TUI)
Orchestrator's Terminal User Interface provides rich, interactive components for monitoring screenplay analysis, GPU cluster status, and workflow orchestration. Built with Bubble Tea and Lip Gloss, the TUI delivers a modern, visually appealing command-line experience with real-time updates and keyboard-driven navigation.
Overview
The TUI system provides interactive terminal interfaces for all major Conduct operations. Rather than simple text output, users receive real-time dashboards, progress bars, tables, and visualizations that update dynamically as operations proceed.
All TUI components share a consistent design language with unified color schemes, keyboard shortcuts, and layout patterns, ensuring a cohesive user experience across different commands and contexts.
Architecture
The TUI architecture follows the Bubble Tea framework's Model-View-Update pattern:
Core Components
| Component | Package | Purpose |
|---|---|---|
| Dashboard | tui/dashboard |
Main status overview with system health and recent activity |
| Progress | tui/progress |
Real-time coverage analysis progress tracking |
| Beat Sheet | tui/beatsheet |
Visual screenplay structure analysis display |
| GPU Monitor | tui/gpu |
Lambda Labs cluster monitoring and metrics |
| Table | tui/table |
Sortable, filterable data tables |
State Management
Each TUI component maintains its own state through the Bubble Tea Model interface, handling user input, timer ticks, and external data updates. Components communicate with the main application through message passing, allowing for clean separation of concerns and composable interfaces.
Dashboard Component
The main dashboard provides a unified overview of Conduct system status, active jobs, and recent coverage reports. It serves as the central hub for monitoring all operations.
╔══════════════════════════════════════════════════════════════════════════════╗ ║ 🎭 CONDUCT DASHBOARD v1.0.0 ║ ╠══════════════════════════════════════════════════════════════════════════════╣ ║ ║ ║ System Status: ● Online Uptime: 12h 34m ║ ║ Active Jobs: 3 running Queue: 12 pending ║ ║ GPU Cluster: 8/8 instances online Util: 87% ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ 📋 Recent Coverage Reports │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ The Gates RECOMMEND Score: 87/100 2m ago │ ║ ║ │ Genre: Sci-Fi Thriller Budget: $45M-$65M │ ║ ║ │ High-concept premise with strong commercial appeal │ ║ ║ │ │ ║ ║ │ Midnight Run CONSIDER Score: 74/100 15m ago │ ║ ║ │ Genre: Action Comedy Budget: $30M-$50M │ ║ ║ │ Solid execution, marketability concerns in current climate │ ║ ║ │ │ ║ ║ │ Dark Waters PASS Score: 58/100 1h ago │ ║ ║ │ Genre: Drama Budget: $15M-$25M │ ║ ║ │ Character work strong, structure issues throughout │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ ⚡ Active Processing │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ Project Phoenix [████████████████░░░░░░░░] 67% ETA: 3m │ ║ ║ │ Current: Originality evaluation │ ║ ║ │ │ ║ ║ │ Silent Echo [████████░░░░░░░░░░░░░░░░] 33% ETA: 7m │ ║ ║ │ Current: Character analysis │ ║ ║ │ │ ║ ║ │ The Last Stand [██████████████████████░░] 89% ETA: 1m │ ║ ║ │ Current: Budget analysis │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║ ║ [q] Quit [r] Refresh [c] Coverage [g] GPU [h] Help ║ ╚══════════════════════════════════════════════════════════════════════════════╝
Dashboard Features
- Real-time updates — Auto-refreshes every 2 seconds with latest system status
- Quick navigation — Jump to detailed views with single keystrokes
- At-a-glance status — System health, job counts, and GPU utilization visible immediately
- Recent activity — Last 10 completed coverage reports with recommendations
- Active monitoring — Live progress bars for in-flight analysis jobs
Coverage Progress View
The coverage progress view provides detailed tracking of screenplay analysis as it proceeds through the 16-point rubric. Each evaluation item updates in real-time, showing current status and estimated completion.
╔══════════════════════════════════════════════════════════════════════════════╗ ║ 📋 COVERAGE ANALYSIS ║ ╠══════════════════════════════════════════════════════════════════════════════╣ ║ ║ ║ Screenplay: The Gates (2024) ║ ║ Writer: Sarah Chen ║ ║ Genre: Sci-Fi Thriller Pages: 112 ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Overall Progress │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ [████████████████████████░░░░░░░░░░░░] 65% Complete │ ║ ║ │ │ ║ ║ │ Elapsed: 8m 23s Remaining: ~4m 30s │ ║ ║ │ Score (current): 83/100 Recommendation: TBD │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Rubric Item Status │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ ✓ Logline Generation Complete │ ║ ║ │ Score: 9/10 Duration: 0m 45s │ ║ ║ │ │ ║ ║ │ ✓ Story Summary Complete │ ║ ║ │ Score: 8/10 Duration: 1m 12s │ ║ ║ │ │ ║ ║ │ ✓ Structure Analysis Complete │ ║ ║ │ Score: 9/10 Duration: 1m 34s │ ║ ║ │ │ ║ ║ │ ✓ Character Development Complete │ ║ ║ │ Score: 8/10 Duration: 1m 28s │ ║ ║ │ │ ║ ║ │ ✓ Dialogue Quality Complete │ ║ ║ │ Score: 7/10 Duration: 0m 56s │ ║ ║ │ │ ║ ║ │ ✓ Theme and Tone Complete │ ║ ║ │ Score: 9/10 Duration: 0m 48s │ ║ ║ │ │ ║ ║ │ ◐ Originality Evaluation In Progress... 78% │ ║ ║ │ [████████████████████░░░░] Analyzing comparable works │ ║ ║ │ │ ║ ║ │ ○ Marketability Assessment Pending │ ║ ║ │ ○ Craft Evaluation Pending │ ║ ║ │ ○ Pacing Analysis Pending │ ║ ║ │ ○ Commercial Viability Pending │ ║ ║ │ ○ Risk Assessment Pending │ ║ ║ │ ○ Budget Analysis Pending │ ║ ║ │ ○ Casting Considerations Pending │ ║ ║ │ ○ Production Requirements Pending │ ║ ║ │ ○ Final Recommendation Pending │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║ ║ [q] Quit [p] Pause [d] Dashboard [h] Help ║ ╚══════════════════════════════════════════════════════════════════════════════╝
Progress View Features
- Granular tracking — Individual progress for each of the 16 rubric items
- Time estimation — Accurate completion time predictions based on actual processing rates
- Live scoring — Current score updates as items complete
- Pause/resume — Ability to pause long-running analysis and resume later
- Detailed status — Shows current sub-task within each rubric item
Beat Sheet Visualization
The beat sheet visualization provides a graphical representation of screenplay structure analysis, showing how the script aligns with established story structure frameworks like Save the Cat.
╔══════════════════════════════════════════════════════════════════════════════╗ ║ 📝 SAVE THE CAT BEAT SHEET ANALYSIS ║ ╠══════════════════════════════════════════════════════════════════════════════╣ ║ ║ ║ Screenplay: The Gates Total Pages: 112 ║ ║ Structure Score: 93/100 Timing Accuracy: Excellent ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ ACT ONE - SETUP Pages 1-25 (22%) │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ ✓ Opening Image Page 1 Score: 9/10 │ ║ ║ │ Strong visual establishing protagonist's ordinary world │ ║ ║ │ → Dr. Maya Chen in quantum research lab, late night │ ║ ║ │ │ ║ ║ │ ✓ Theme Stated Page 5 Score: 8/10 │ ║ ║ │ Mentor figure articulates core thematic question │ ║ ║ │ → "What we call reality is just consensus" │ ║ ║ │ │ ║ ║ │ ✓ Setup Pages 1-10 Score: 9/10 │ ║ ║ │ Efficient world-building and character introduction │ ║ ║ │ → Establishes stakes, relationships, Maya's expertise │ ║ ║ │ │ ║ ║ │ ✓ Catalyst Page 12 Score: 10/10 │ ║ ║ │ Inciting incident perfectly timed and impactful │ ║ ║ │ → Quantum gate opens to parallel dimension │ ║ ║ │ │ ║ ║ │ ✓ Debate Pages 12-25 Score: 9/10 │ ║ ║ │ Protagonist resistance and stakes escalation well-developed │ ║ ║ │ → Maya debates shutting down vs investigating │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ ACT TWO - CONFRONTATION Pages 26-85 (54%) │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ ✓ Break Into Two Page 25 Score: 9/10 │ ║ ║ │ Clear act break with protagonist commitment │ ║ ║ │ → Maya decides to enter the gate, leaving safety │ ║ ║ │ │ ║ ║ │ ⚠ B Story Page 30 Score: 6/10 │ ║ ║ │ Romance subplot introduced but underdeveloped │ ║ ║ │ → Relationship with research partner feels rushed │ ║ ║ │ │ ║ ║ │ ✓ Fun and Games Pages 30-55 Score: 9/10 │ ║ ║ │ Promise of the premise fully delivered │ ║ ║ │ → Exploring parallel world, quantum phenomena │ ║ ║ │ │ ║ ║ │ ✓ Midpoint Page 55 Score: 10/10 │ ║ ║ │ False victory with stakes raise and time clock activation │ ║ ║ │ → Gateway stabilized but countdown to collapse begins │ ║ ║ │ │ ║ ║ │ ✓ Bad Guys Close In Pages 55-75 Score: 9/10 │ ║ ║ │ External and internal pressure escalate effectively │ ║ ║ │ → Reality fractures, team doubts, government threat │ ║ ║ │ │ ║ ║ │ ✓ All Is Lost Page 75 Score: 9/10 │ ║ ║ │ Devastating setback, whiff of death present │ ║ ║ │ → Partner trapped in collapsing dimension │ ║ ║ │ │ ║ ║ │ ✓ Dark Night of the Soul Pages 75-85 Score: 8/10 │ ║ ║ │ Emotional low point with character introspection │ ║ ║ │ → Maya questions everything, considers giving up │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ ACT THREE - RESOLUTION Pages 86-112 (24%) │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ ✓ Break Into Three Page 85 Score: 9/10 │ ║ ║ │ Solution found, thematic lesson learned │ ║ ║ │ → Accepts reality is malleable, finds new approach │ ║ ║ │ │ ║ ║ │ ✓ Finale Pages 85-110 Score: 9/10 │ ║ ║ │ Climactic sequence with protagonist driving action │ ║ ║ │ → Race to stabilize gates, rescue partner, save both worlds │ ║ ║ │ │ ║ ║ │ ✓ Final Image Page 110 Score: 10/10 │ ║ ║ │ Perfect mirror to opening, shows character transformation │ ║ ║ │ → Maya in lab, now understanding reality's true nature │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Structure Insights │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ ✓ Act proportions near-perfect (22/54/24) │ ║ ║ │ ✓ All major beats present and well-executed │ ║ ║ │ ⚠ B-story could use more development in Act 2 │ ║ ║ │ ✓ Theme consistently woven throughout │ ║ ║ │ ✓ Strong visual bookends (opening/closing images) │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║ ║ [q] Quit [↑/↓] Navigate [d] Dashboard [h] Help ║ ╚══════════════════════════════════════════════════════════════════════════════╝
Beat Sheet Features
- Framework support — Save the Cat, Hero's Journey, and custom templates
- Page-accurate timing — Validates beat placement against industry standards
- Visual hierarchy — Clear act structure with nested beat organization
- Scoring breakdown — Individual scores for each structural element
- Actionable insights — Specific recommendations for structural improvements
GPU Monitoring Display
The GPU monitoring interface provides real-time visualization of Lambda Labs cluster status, resource utilization, and performance metrics across all instances.
╔══════════════════════════════════════════════════════════════════════════════╗ ║ ⚡ LAMBDA LABS GPU CLUSTER MONITOR ║ ╠══════════════════════════════════════════════════════════════════════════════╣ ║ ║ ║ Cluster Status: 8/8 Online Total Cost: $24.80/hr ║ ║ Avg Utilization: 87% Daily Spend: $595.20 ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Instance: gpu-1x-h100-pcie ● ONLINE │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ Type: 1x H100 PCIe Region: us-west-2 │ ║ ║ │ Cost: $3.10/hr Uptime: 12h 34m │ ║ ║ │ │ ║ ║ │ GPU Utilization: [████████████████████████] 94% │ ║ ║ │ Memory Usage: [████████████████████░░░░] 78% (62.4/80GB) │ ║ ║ │ Power Draw: [████████████████████████] 92% (322/350W) │ ║ ║ │ Temperature: [████████████░░░░░░░░░░░░] 53°C │ ║ ║ │ │ ║ ║ │ Current Job: Jamba-1.7 Inference (3 requests queued) │ ║ ║ │ Throughput: 142 tok/sec Latency: 24ms p99 │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Instance: gpu-8x-a100-sxm ● ONLINE │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ Type: 8x A100 80GB SXM Region: us-east-1 │ ║ ║ │ Cost: $12.00/hr Uptime: 3h 12m │ ║ ║ │ │ ║ ║ │ GPU 0: [████████████████████░░░░] 82% GPU 1: [████████████████████░░░░] 81% │ ║ ║ │ GPU 2: [████████████████████░░░░] 80% GPU 3: [████████████████████░░░░] 83% │ ║ ║ │ GPU 4: [████████████████████░░░░] 81% GPU 5: [████████████████████░░░░] 82% │ ║ ║ │ GPU 6: [████████████████████░░░░] 80% GPU 7: [████████████████████░░░░] 81% │ ║ ║ │ │ ║ ║ │ Current Job: Mixtral-8x22B Training (LoRA fine-tune) │ ║ ║ │ Progress: [████████████░░░░░░░░░░░░] Step 1247/2500 (50%) │ ║ ║ │ Loss: 0.342 ETA: 1h 28m │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Instance: gpu-2x-rtx6000ada ⚠ IDLE │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ Type: 2x RTX 6000 Ada Region: us-west-1 │ ║ ║ │ Cost: $1.80/hr Uptime: 45m │ ║ ║ │ │ ║ ║ │ GPU Utilization: [░░░░░░░░░░░░░░░░░░░░░░░░] 2% │ ║ ║ │ Memory Usage: [░░░░░░░░░░░░░░░░░░░░░░░░] 1% (0.5/48GB) │ ║ ║ │ │ ║ ║ │ ⚠ Warning: Instance idle for 42 minutes │ ║ ║ │ Consider terminating to reduce costs │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ┌────────────────────────────────────────────────────────────────────────┐ ║ ║ │ Cost Analysis (Last 24h) │ ║ ║ ├────────────────────────────────────────────────────────────────────────┤ ║ ║ │ │ ║ ║ │ Total Spend: $595.20 │ ║ ║ │ Avg Hourly: $24.80 │ ║ ║ │ Projected Monthly: $17,856 │ ║ ║ │ │ ║ ║ │ By Instance Type: │ ║ ║ │ 8x A100: $288/day (48%) [████████████] │ ║ ║ │ 1x H100: $223/day (37%) [█████████] │ ║ ║ │ 2x RTX: $43/day (7%) [██] │ ║ ║ │ Other: $41/day (8%) [██] │ ║ ║ │ │ ║ ║ └────────────────────────────────────────────────────────────────────────┘ ║ ║ ║ ║ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ║ ║ [q] Quit [r] Refresh [t] Terminate Idle [↑/↓] Navigate [h] Help ║ ╚══════════════════════════════════════════════════════════════════════════════╝
GPU Monitor Features
- Multi-instance tracking — Monitor entire cluster from single view
- Per-GPU metrics — Utilization, memory, power, temperature for each GPU
- Job tracking — Current workload, throughput, and progress for each instance
- Cost monitoring — Real-time spend tracking with projections
- Idle detection — Alerts for underutilized instances wasting resources
- Quick actions — Terminate, restart, or reconfigure instances directly from UI
Keyboard Shortcuts
All TUI components support consistent keyboard navigation and commands for efficient operation without mouse interaction.
Global Shortcuts
| Key | Action | Description |
|---|---|---|
q |
Quit | Exit current view or application |
h or ? |
Help | Show context-sensitive help overlay |
r |
Refresh | Force immediate data refresh |
d |
Dashboard | Return to main dashboard view |
Esc |
Back | Return to previous view or cancel action |
Navigation Shortcuts
| Key | Action | Description |
|---|---|---|
↑ / k |
Up | Move selection up in lists and menus |
↓ / j |
Down | Move selection down in lists and menus |
← / h |
Left | Navigate to previous panel or collapse section |
→ / l |
Right | Navigate to next panel or expand section |
PgUp |
Page Up | Scroll up one page in long lists |
PgDn |
Page Down | Scroll down one page in long lists |
Home |
Top | Jump to first item in list |
End |
Bottom | Jump to last item in list |
Tab |
Next Field | Move to next input field or section |
Shift+Tab |
Previous Field | Move to previous input field or section |
Action Shortcuts
| Key | Action | Context |
|---|---|---|
Enter |
Select / Confirm | Activate selected item or confirm dialog |
Space |
Toggle / Pause | Toggle selection or pause/resume operation |
p |
Pause | Pause current analysis or job |
c |
Coverage | Open coverage analysis view |
g |
GPU Monitor | Open GPU cluster monitoring view |
s |
Sort | Cycle through sort options in tables |
f |
Filter | Open filter input for tables and lists |
/ |
Search | Open search dialog |
t |
Terminate | Terminate selected instance (GPU monitor) |
Ctrl+C |
Cancel | Cancel current operation and exit |
Color Themes
The TUI uses a carefully designed color palette optimized for terminal readability and semantic meaning across different terminal emulators and color schemes.
Primary Palette
Primary accent, headings, highlights
Secondary accent, warnings, scores
Success states, online status
Error states, critical alerts
Primary text, content
Secondary text, labels
Background Palette
Terminal backgrounds, code blocks
Primary backgrounds
Secondary backgrounds
Card backgrounds, panels
Borders, separators
Disabled states, placeholders
Semantic Colors
| State | Color | Usage |
|---|---|---|
| Online / Active | Green (#00ff88) | System online, jobs running, healthy status |
| Warning / Caution | Gold (#ffd700) | Idle instances, moderate scores, attention needed |
| Error / Critical | Red (#e94560) | Errors, failures, critical alerts, low scores |
| Offline / Inactive | Gray (#666) | Disabled items, pending states, unavailable |
| In Progress | Gold (#ffd700) | Running operations, partial progress |
| Highlight / Focus | Cyan (#00d4ff) | Selected items, focused elements, primary actions |
Accessibility
The color palette is designed to meet WCAG 2.1 contrast requirements for terminal displays and provides clear visual differentiation even in monochrome mode. All critical information uses both color and symbols (✓, ⚠, ○, ●) for accessibility.