Skip to content

feat(ui): Add Interactive TUI Dashboard (Cyberpunk Financial Terminal)#84

Open
sjhddh wants to merge 2 commits intoAI4Finance-Foundation:masterfrom
sjhddh:feat/tui-dashboard
Open

feat(ui): Add Interactive TUI Dashboard (Cyberpunk Financial Terminal)#84
sjhddh wants to merge 2 commits intoAI4Finance-Foundation:masterfrom
sjhddh:feat/tui-dashboard

Conversation

@sjhddh
Copy link

@sjhddh sjhddh commented Jan 25, 2026

Summary

FinRobot is a powerful brain, but it lacks a face. This PR introduces a Cyberpunk Financial Terminal - a high-aesthetic TUI (Terminal User Interface) that provides a "Mission Control" interface for observing Agent behavior in real-time.

Built with Textual, 100% Python, highly responsive.

The Problem

Currently, FinRobot agents output logs to the console or static files. While functional, this approach:

  • Makes it difficult to observe agent decision-making in real-time
  • Provides no visual feedback on market data or signals
  • Lacks the "wow factor" for demonstrations and showcases

The Solution

A Bloomberg Terminal meets Cyberpunk 2077 interface featuring:

Visual Components

Panel Description
Ticker Bar Scrolling marquee with live stock prices (NVDA, AAPL, BTC, etc.)
Market Watch ASCII sparkline chart + key metrics (P/E, RSI, MACD, Volume)
Neural Stream Agent's chain-of-thought with categorized, timestamped logs
Signal Panel Bold BUY/SELL/HOLD cards with confidence bars

Key Features

  • Demo Mode: Run with --demo flag for realistic simulated data streams
  • Real Agent Integration: AgentDataInterface class ready for plugging into real FinRobot agents
  • Keyboard Controls: Pause/resume stream, refresh display, quit
  • Cyberpunk Aesthetic: Neon green, amber, cyan on deep black background

Usage

# Install dependencies
pip install textual rich

# Run in demo mode (simulated data)
python finrobot_terminal_ui.py --demo

Keyboard Shortcuts

Key Action
q Quit
Space Pause/Resume stream
r Refresh display

Integration with FinRobot Agents

from finrobot_terminal_ui import FinRobotTerminal, AgentDataInterface

# Create interface
interface = AgentDataInterface()

# In your agent code, push data:
interface.push_thought("STRATEGY", "Detected bullish divergence")
interface.push_signal("BUY", 0.85)
interface.push_price("NVDA", 145.50, change_pct=1.2)

# Launch TUI with interface
app = FinRobotTerminal(data_interface=interface)
app.run()

Files Changed

  • finrobot_terminal_ui.py - New file (main TUI implementation, ~900 lines)
  • requirements.txt - Added textual>=0.47.0 and rich>=13.7.0

Test Plan

  • Verify syntax: python -m py_compile finrobot_terminal_ui.py
  • Run demo mode: python finrobot_terminal_ui.py --demo
  • Test keyboard controls (q, Space, r)
  • Verify no breaking changes to existing functionality

- Replace hardcoded "2023" with actual search date range in error messages
- Replace bare `except:` with `except Exception as e:` for better debugging
- Fix typo "downloaded" -> "download" in error messages
- Use consistent error message format with hyphen separator
FinRobot is a powerful brain, but it lacks a face. This TUI provides a
"Mission Control" interface for observing Agent behavior in real-time.

Features:
- Scrolling ticker bar with live stock prices
- ASCII sparkline charts with key metrics (P/E, RSI, MACD)
- Neural Stream showing agent's chain-of-thought
- Signal panel with BUY/SELL cards and confidence bars
- Demo mode with simulated data (--demo flag)
- AgentDataInterface for real agent integration

Built with Textual and Rich, 100% Python, highly responsive.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant