Terminal Dashboard¶
The TUI is a Bloomberg-style quad-pane dashboard running over a Unix socket. Press ? for help. Here is what each pane does.
Launching the Dashboard¶
The TUI runs the engine in-process (no daemon or socket). It boots instantly from the last saved snapshot (~/.cloudslash/graph.snap), scans in the background, and refreshes silently every four minutes.
# Start the daemon (production mode: live cloud APIs)
cs scan --region us-east-1 &
# Attach the terminal dashboard
cs tui
Node data loads instantly. There is no loading animation.
Workspace Layout¶
The TUI organizes the interface into four workspaces. Each renders a quad-pane Bloomberg grid. Navigate between workspaces via numeric key bindings.
| Key | Workspace | Quad Panes |
|---|---|---|
1 |
Overview | Live Discovery · Context Inspector · Remediation · Engine Stats |
2 |
Topology | Cross-Cloud Links · Link Detail · Egress Calculator · Topology Actions |
3 |
S.A.U. | Blocked & Quarantined · Live Audit Ledger · Override & Revert · Saga Timeline |
4 |
Config | Cloud Integrations · Engine Settings · Notifications |
Workspace 1: Overview¶
Live Discovery Pane (Top-Left)¶
The primary node list renders all discovered infrastructure resources with provider badges, cost figures, and engine-computed verdicts.
PRV RESOURCE ID TYPE COST/MO VERDICT [412/10,000]
AWS i-0abc123def456789 ec2:instance $347 DELETE
GCP gke-prod-cluster-01 gke:cluster $890 RISK
AZR vm-analytics-west compute:vm $156 FLAG
AWS vol-0ghi789jkl012345 ebs:volume $24 DELETE
Features:
- Dynamic provider badges: Each provider gets a deterministic color from its name hash: AWS, GCP, K8s, PostgreSQL, any plugin.
- Viewport scrolling: Navigate 10,000+ nodes instantly via
j/kkeys. - Row alternation: Subtle visual striping for readability.
- Position indicator:
[412/10,000]or[12/412 filtered]when a filter is active.
Engine Stats Pane (Bottom-Right)¶
Renders aggregate verdict distributions using proportional bar charts and cost sparkline visualizations.
Nodes: 10,000 Waste: $48,320 Blocks: 23
▁▂▃▅▆▇█▇▅▃▂▁▂▃▅▇█▇▆▅▃▂▁▁▂▃▄▅
VERDICT DISTRIBUTION
CRITICAL ████████████████████░░░░░░░░░░ 47
BLOCK ████████░░░░░░░░░░░░░░░░░░░░░░ 23
DELETE ██████████████████████████████ 127
RISK ████████████░░░░░░░░░░░░░░░░░░ 41
FLAG ██████████████████░░░░░░░░░░░░ 63
Context Inspector & Plugin Detail Pane (Top-Right)¶
Displays detailed inspection for the selected node. The TUI features a dynamic PaneRouter (pkg/tui/panerouter.go):
- Plugin-Driven Detail Views: When a node is selected, the TUI queries the plugin registered for that resource type over gRPC via
RenderDetail(ctx, req). - Dynamic ViewModels: The plugin supplies its own structured
ViewModel(key-value form fields, data tables, metrics, and state badges). An AWS EC2 instance shows private IPs, VPC IDs, and instance types; a Kubernetes node shows pod capacities; a database shows table sizes and cache hit rates. - Interactive Action Menus: Plugins declare actionable mutations (e.g., Start, Stop, Reboot, Terminate), which the TUI presents as direct interactive actions for the operator.
Remediation Pane (Bottom-Left)¶
Shows the active Terraform plan diff for the selected node. Supports [Y] Approve, [N] Reject, [D] Full Diff, [E] Edit operations.
Search and Filtering¶
Press Ctrl+F to activate the inline search bar. The filter matches against all resource attributes: ID, name, type, region, verdict, and provider. Results update live on every keystroke.
| Key | Action |
|---|---|
Ctrl+F |
Open filter search bar |
| typing | Live substring matching across all fields |
Enter |
Lock filter results and dismiss input |
Esc |
Clear filter and show all nodes |
The status bar reflects filter state: 🔍 412/10,000 matched.
Category Workspace Filtering¶
Press C to cycle through registered plugin categories. This filters the entire node view to only show resources from providers in that category.
| Category | Example Providers |
|---|---|
cloud |
AWS, GCP, Azure, Linode, DigitalOcean |
database |
PostgreSQL, MySQL, MongoDB, Redis |
infrastructure |
Kubernetes, bare metal, network gear |
saas |
Slack, GitHub, Jira |
iot |
IoT fleets, edge devices, sensors |
devops |
CI/CD pipelines, container registries |
security |
IAM audit, vulnerability scanning |
Categories are assigned by the registry maintainer, not by the plugin author. This prevents miscategorization. Press C repeatedly to cycle: ALL → cloud → database → infrastructure → ... → ALL.
The status bar shows the active filter: [CLOUD] or [DATABASE].
Pane Navigation¶
| Key | Action |
|---|---|
Tab |
Cycle focus between quadrant panes |
z |
Zoom focused pane to fullscreen |
Esc |
Exit zoom / close sub-view |
j / k |
Navigate down / up in lists |
Enter |
Select node / confirm action |
q |
Quarantine selected node |
C |
Cycle category workspace filter |
Ctrl+C |
Quit |