OMNI-GRC

Terminal User Interface (TUI) Guide

Complete guide to using the OMNI-GRC Terminal User Interface (TUI) for interactive GRC management from the command line.

Table of Contents

Overview

The OMNI-GRC TUI provides a full-featured, interactive terminal interface for managing governance, risk, and compliance operations. It’s perfect for:

Features

✅ 8 Interactive Views:

✅ Real-time Updates: Auto-refresh with configurable intervals

✅ Rich Visualizations: Charts, tables, and progress bars

✅ Full Keyboard Navigation: Vim-style key bindings supported

✅ Color-Coded Interface: Severity levels and status indicators

✅ Search and Filter: Quick access to specific items

✅ Detail Panels: Expandable item details

Getting Started

Launching the TUI

# From project directory
npm run tui

# Or using CLI
npm run cli -- tui

# With auto-refresh (every 30 seconds)
npm run cli -- tui --refresh 30

# In quiet mode (no startup messages)
npm run cli -- tui --quiet

TUI Options

Option Description
--refresh <seconds> Auto-refresh interval (default: disabled)
-q, --quiet Suppress startup messages
--no-color Disable colors (for accessibility)
--api-url <url> Override API endpoint

First Launch

When you launch the TUI, you’ll see:

╔══════════════════════════════════════════════════════════════════╗
║                OMNI-GRC - One Platform. All Compliance.          ║
╚══════════════════════════════════════════════════════════════════╝

 1:Dashboard │ 2:Findings │ 3:Compliance │ 4:Scans │ 5:Assets │ 6:Risks │ 7:Alerts │ ?:Help

 [1-8] Switch Views  [Tab] Next View  [r] Refresh  [q] Quit  [?] Help

View Switching

Method Action
Number Keys (1-8) Jump directly to a view
Tab Next view (circular)
Shift+Tab Previous view
? Help view

Example:

List Navigation

Key Action
↑ or k Move up in list
↓ or j Move down in list
Page Up Scroll up one page
Page Down Scroll down one page
Home or g Jump to top
End or G Jump to bottom
Enter Select item / Show details

General Controls

Key Action
r Refresh current view
q Quit TUI
Esc Close detail panel / Go back
/ Search (where available)
f Filter (where available)
s Sort (where available)
? Show help

Views

1. Dashboard View

The Dashboard provides an overview of your security and compliance posture.

Press 1 to access

Dashboard Components

Top Section - Key Metrics:

╔══════════════════════════════════════════════════════════════╗
║  Overall Compliance: 72% ████████▒▒  [+5% from last month]  ║
║  Open Findings: 47  [12 resolved this week]                  ║
║  Critical Vulns: 3 ⚠️  [Requires immediate attention]        ║
║  Scans Today: 8  [Next scan in 2 hours]                      ║
╚══════════════════════════════════════════════════════════════╝

Framework Compliance Section:

┌─ Framework Compliance ────────────────────────────────────┐
│ SOC 2 Type II    78% ████████▒▒  50/64 controls          │
│ ISO 27001:2022   65% ██████▒▒▒▒  60/93 controls          │
│ HIPAA            82% ████████▒▒  37/45 controls          │
│ PCI-DSS 4.0      45% ████▒▒▒▒▒▒  35/78 controls          │
└───────────────────────────────────────────────────────────┘

Recent Activity Feed:

┌─ Recent Activity ─────────────────────────────────────────┐
│ ⬤ Trivy scan completed: 12 findings (2 mins ago)         │
│ ⬤ User john@company.com logged in (5 mins ago)           │
│ ⬤ Risk "Data Breach" updated to CRITICAL (15 mins ago)   │
│ ⬤ Report generated: Executive Summary (1 hour ago)       │
└───────────────────────────────────────────────────────────┘

Dashboard Actions

2. Findings View

Manage and track security findings from all scanners.

Press 2 to access

Findings List

┌─ Security Findings (47 total, 3 critical) ────────────────┐
│ Severity │ Finding                    │ Target    │ Status│
├──────────┼────────────────────────────┼───────────┼───────┤
│ CRITICAL │ CVE-2024-1234: OpenSSL RCE │ api-server│ OPEN  │
│ CRITICAL │ SQL Injection in Auth      │ web-app   │ OPEN  │
│ CRITICAL │ Exposed AWS Credentials    │ repo-main │ OPEN  │
│ HIGH     │ S3 Bucket Public Access    │ prod-data │ IN_PROGRESS
│ HIGH     │ Weak TLS Configuration     │ loadbal   │ OPEN  │
│ MEDIUM   │ Outdated Dependencies      │ api-server│ OPEN  │
│ MEDIUM   │ Missing CSP Headers        │ web-app   │ RESOLVED
│ LOW      │ Weak Password Policy       │ AD-server │ OPEN  │
└──────────┴────────────────────────────┴───────────┴───────┘

Findings Actions

Finding Detail Panel

When you press Enter on a finding:

╔══════════════════════════════════════════════════════════════╗
║ Finding Details                                              ║
╠══════════════════════════════════════════════════════════════╣
║ Title: CVE-2024-1234: OpenSSL Remote Code Execution         ║
║ Severity: CRITICAL                                           ║
║ Status: OPEN                                                 ║
║ Target: api-server:latest                                    ║
║ Scanner: Trivy                                               ║
║ First Seen: 2024-12-28 10:30:00                            ║
║                                                              ║
║ Description:                                                 ║
║ A critical vulnerability in OpenSSL allows remote code       ║
║ execution through a buffer overflow in the TLS handshake...  ║
║                                                              ║
║ Remediation:                                                 ║
║ Update OpenSSL to version 3.0.8 or later                    ║
║ Command: apt-get update && apt-get install openssl          ║
║                                                              ║
║ CVE Link: https://cve.mitre.org/cgi-bin/cvename.cgi?...    ║
║                                                              ║
║ [Esc] Close  [m] Mark as resolved  [a] AI Analysis          ║
╚══════════════════════════════════════════════════════════════╝

3. Compliance View

View compliance status across all frameworks.

Press 3 to access

Framework Selection

┌─ Compliance Frameworks ───────────────────────────────────┐
│ Framework          │ Score │ Controls      │ Status      │
├────────────────────┼───────┼───────────────┼─────────────┤
│ ▸ SOC 2 Type II    │ 78%   │ 50/64 (78%)   │ 🟢 On Track │
│   ISO 27001:2022   │ 65%   │ 60/93 (65%)   │ 🟡 Review   │
│   HIPAA            │ 82%   │ 37/45 (82%)   │ 🟢 Good     │
│   PCI-DSS 4.0      │ 45%   │ 35/78 (45%)   │ 🔴 At Risk  │
│   NIST CSF 2.0     │ 70%   │ 56/80 (70%)   │ 🟢 On Track │
│   GDPR             │ 55%   │ 44/80 (55%)   │ 🟡 Review   │
│   FedRAMP Rev 5    │ 60%   │ 48/80 (60%)   │ 🟡 Review   │
│   CMMC 2.0 L2      │ 68%   │ 54/80 (68%)   │ 🟢 On Track │
└────────────────────┴───────┴───────────────┴─────────────┘

Controls Table (when framework expanded)

┌─ SOC 2 Type II Controls ──────────────────────────────────┐
│ ID    │ Title                        │ Status      │ Auto │
├───────┼──────────────────────────────┼─────────────┼──────┤
│ CC1.1 │ Control Environment          │ ✓ Implemented│ Part │
│ CC1.2 │ Board Independence           │ ⚠ In Progress│ Man  │
│ CC2.1 │ Information Communication    │ ✓ Implemented│ Part │
│ CC3.1 │ Risk Assessment              │ ✓ Implemented│ Part │
│ CC4.1 │ Monitoring Activities        │ ✓ Implemented│ Full │
│ CC5.1 │ Control Activities           │ ⚠ In Progress│ Part │
│ CC6.1 │ Logical Access Controls      │ ✓ Implemented│ Full │
│ CC6.2 │ User Authentication          │ ✓ Implemented│ Full │
│ CC6.3 │ Access Removal               │ ✓ Implemented│ Full │
│ CC7.1 │ Vulnerability Management     │ ✓ Implemented│ Full │
│ CC7.2 │ Security Monitoring          │ ✓ Implemented│ Full │
│ CC8.1 │ Change Management            │ ✗ Not Started│ Part │
└───────┴──────────────────────────────┴─────────────┴──────┘

Compliance Actions

4. Scans View

Monitor and manage security scans.

Press 4 to access

Recent Scans

┌─ Recent Scans (15 total, 2 running) ──────────────────────┐
│ Name                │ Scanner  │ Status    │ Findings │ Age│
├─────────────────────┼──────────┼───────────┼──────────┼────┤
│ API Server Scan     │ Trivy    │ COMPLETED │ 12       │ 2h │
│ AWS Production Scan │ Prowler  │ RUNNING   │ -        │ 5m │
│ Backend Repo Scan   │ Semgrep  │ COMPLETED │ 5        │ 1d │
│ Secret Scan All     │ Gitleaks │ COMPLETED │ 0        │ 1d │
│ Web App DAST        │ OWASP ZAP│ PENDING   │ -        │ 30m│
│ K8s CIS Benchmark   │ Kube-bench│FAILED    │ -        │ 2h │
└─────────────────────┴──────────┴───────────┴──────────┴────┘

Available Scanners

┌─ Available Scanners ───────────────────────────────────────┐
│ Scanner      │ Category  │ Status    │ Last Used          │
├──────────────┼───────────┼───────────┼────────────────────┤
│ Trivy        │ Container │ Available │ 2 hours ago        │
│ Prowler      │ Cloud     │ Available │ Running now        │
│ Semgrep      │ SAST      │ Available │ 1 day ago          │
│ Gitleaks     │ Secrets   │ Available │ 1 day ago          │
│ TruffleHog   │ Secrets   │ Available │ Never              │
│ Bandit       │ SAST      │ Available │ 3 days ago         │
│ OWASP ZAP    │ DAST      │ Available │ Pending            │
│ Kube-bench   │ K8s       │ Error     │ 2 hours ago        │
└──────────────┴───────────┴───────────┴────────────────────┘

Scans Actions

5. Assets View

Manage IT asset inventory.

Press 5 to access

Asset Inventory

┌─ IT Assets (124 total) ────────────────────────────────────┐
│ Name           │ Type       │ Environment│ Criticality│Owner│
├────────────────┼────────────┼────────────┼────────────┼─────┤
│ api-server-01  │ Server     │ Production │ CRITICAL   │DevOps
│ db-primary     │ Database   │ Production │ CRITICAL   │DBA  │
│ web-frontend   │ Application│ Production │ HIGH       │FE   │
│ jenkins-ci     │ Application│ Development│ MEDIUM     │DevOps
│ test-db        │ Database   │ Staging    │ LOW        │QA   │
│ backup-storage │ Storage    │ Production │ HIGH       │Ops  │
│ vpn-gateway    │ Network    │ Production │ HIGH       │NetOps
└────────────────┴────────────┴────────────┴────────────┴─────┘

Asset Statistics

╔═ Asset Summary ══════════════════════════════════════════╗
║ Total Assets: 124                                        ║
║ By Type:      Servers (45), Databases (12), Apps (38)   ║
║ By Env:       Production (67), Staging (23), Dev (34)   ║
║ By Critical:  Critical (15), High (34), Medium (52)     ║
╚══════════════════════════════════════════════════════════╝

Assets Actions

6. Risks View

Manage the risk register with interactive risk matrix.

Press 6 to access

Risk Register

┌─ Risk Register (28 risks, 3 critical) ─────────────────────┐
│ Risk               │ Score │ Likelihood│ Impact │ Treatment │
├────────────────────┼───────┼───────────┼────────┼───────────┤
│ Data Breach via API│ 25/25 │ 5-VeryHigh│ 5-Crit │ Mitigate  │
│ Ransomware Attack  │ 20/25 │ 4-High    │ 5-Crit │ Mitigate  │
│ Vendor Breach      │ 16/25 │ 4-High    │ 4-High │ Accept    │
│ DDoS Attack        │ 12/25 │ 4-High    │ 3-Med  │ Transfer  │
│ Insider Threat     │ 12/25 │ 3-Medium  │ 4-High │ Mitigate  │
│ Physical Break-in  │ 6/25  │ 2-Low     │ 3-Med  │ Accept    │
└────────────────────┴───────┴───────────┴────────┴───────────┘

Risk Matrix Visualization

┌─ Risk Matrix (Likelihood × Impact) ────────────────────────┐
│     │ Insignif│ Minor  │ Moderate│ Major  │ Critical│      │
│─────┼─────────┼────────┼─────────┼────────┼─────────┤      │
│ 5-VH│    1    │   2    │    3    │   8    │   ◉15   │      │
│ 4-H │    2    │   4    │    5    │   ◉7   │   ◉11   │      │
│ 3-M │    3    │   6    │    ◉9   │   12   │   14    │      │
│ 2-L │    1    │   5    │    8    │   10   │   13    │      │
│ 1-VL│    2    │   3    │    6    │   9    │   11    │      │
└─────┴─────────┴────────┴─────────┴────────┴─────────┘      │
  ◉ = Risk present in cell │ Number = Risk ID                 │

Risks Actions

7. Alerts View

Manage alert configurations and notification channels.

Press 7 to access

Alert Configurations

┌─ Alert Configurations (8 total, 6 enabled) ────────────────┐
│ Name               │ Type               │ Enabled │ Channels│
├────────────────────┼────────────────────┼─────────┼─────────┤
│ Critical Findings  │ new_critical_find  │ ✓ Yes   │ 3       │
│ Compliance Drop    │ compliance_thresh  │ ✓ Yes   │ 2       │
│ Scan Failures      │ scan_failed        │ ✓ Yes   │ 3       │
│ Scan Completed     │ scan_completed     │ ✗ No    │ 1       │
│ Control Status     │ control_status_ch  │ ✓ Yes   │ 2       │
│ Risk Score Change  │ risk_score_change  │ ✓ Yes   │ 2       │
│ Cert Expiry        │ certificate_expiry │ ✓ Yes   │ 1       │
│ SLA Breach         │ sla_breach         │ ✗ No    │ 2       │
└────────────────────┴────────────────────┴─────────┴─────────┘

Alert Detail View

╔═ Alert: Critical Findings ════════════════════════════════╗
║ Type: new_critical_finding                                ║
║ Status: ENABLED                                           ║
║ Created: 2024-12-01 10:00:00                             ║
║                                                           ║
║ Channels:                                                 ║
║   • Slack: #security-alerts (✓ Enabled)                  ║
║   • Email: security@company.com (✓ Enabled)              ║
║   • PagerDuty: Security Team (✓ Enabled)                 ║
║                                                           ║
║ Condition:                                                ║
║   Trigger when new finding with severity >= CRITICAL     ║
║                                                           ║
║ Recent Alerts: 12 sent in last 7 days                    ║
║ Last Triggered: 2 hours ago                              ║
║                                                           ║
║ [Esc] Close  [t] Test  [e] Edit  [d] Delete              ║
╚═══════════════════════════════════════════════════════════╝

Alerts Actions

8. Help View

Quick reference for all keyboard shortcuts and features.

Press ? to access

╔══════════════════════════════════════════════════════════════╗
║                         OMNI-GRC TUI Help                    ║
╠══════════════════════════════════════════════════════════════╣
║                                                              ║
║ NAVIGATION                                                   ║
║   1-8          Switch to view (Dashboard, Findings, etc.)   ║
║   Tab          Next view                                     ║
║   Shift+Tab    Previous view                                 ║
║   ?            Show this help                                ║
║   q            Quit TUI                                      ║
║                                                              ║
║ LIST NAVIGATION                                              ║
║   ↑/↓ or j/k   Move up/down in lists                        ║
║   Page Up/Down Scroll one page                              ║
║   Home/End     Jump to top/bottom                           ║
║   Enter        Select item / Show details                   ║
║                                                              ║
║ ACTIONS                                                      ║
║   r            Refresh current view                          ║
║   f            Filter items                                  ║
║   s            Sort items                                    ║
║   /            Search                                        ║
║   n            Create new item                               ║
║   e            Edit selected item                            ║
║   d            Delete selected item                          ║
║   Esc          Close panel / Go back                        ║
║                                                              ║
║ VIEW-SPECIFIC SHORTCUTS                                      ║
║   Dashboard:   1-4 to jump to framework details             ║
║   Findings:    m to mark as resolved, a for AI analysis     ║
║   Scans:       c to cancel, t to toggle scanner view        ║
║   Risks:       m to show risk matrix                        ║
║   Alerts:      t to test alert, Space to toggle enabled     ║
║                                                              ║
║                    Press any key to continue                 ║
╚══════════════════════════════════════════════════════════════╝

Keyboard Shortcuts

Quick Reference Card

┌─────────────────────────────────────────────────────────────┐
│                   OMNI-GRC TUI Quick Reference               │
├─────────────────────────────────────────────────────────────┤
│ GLOBAL                  │ LIST NAVIGATION                    │
│  1-8    Switch views    │  ↑/↓     Move up/down             │
│  Tab    Next view       │  j/k     Vim-style move            │
│  ?      Help            │  PgUp/Dn Page scroll              │
│  q      Quit            │  Home/End Jump to top/bottom       │
│  r      Refresh         │  Enter   Select item               │
│  Esc    Go back         │  Space   Toggle/Select             │
├─────────────────────────┼────────────────────────────────────┤
│ ACTIONS                 │ VIEW-SPECIFIC                      │
│  n      New             │  Dashboard:  1-4 Frameworks        │
│  e      Edit            │  Findings:   m Mark, a AI analyze  │
│  d      Delete          │  Scans:      c Cancel, t Scanners  │
│  f      Filter          │  Risks:      m Risk matrix         │
│  s      Sort            │  Alerts:     t Test alert          │
│  /      Search          │                                    │
└─────────────────────────┴────────────────────────────────────┘

Configuration

Environment Variables

Configure TUI behavior with environment variables:

# Auto-refresh interval (seconds)
export OMNI_GRC_TUI_REFRESH=30

# Default view on startup
export OMNI_GRC_TUI_DEFAULT_VIEW=dashboard

# Disable colors
export OMNI_GRC_TUI_NO_COLOR=true

# API endpoint
export OMNI_GRC_API_URL=https://grc.company.com/api

Color Schemes

The TUI supports multiple color schemes:

# High contrast mode
npm run tui -- --high-contrast

# Monochrome mode
npm run tui -- --no-color

Tips and Tricks

1. Screen/Tmux Sessions

Run TUI in a persistent terminal session:

# In screen
screen -S omni-grc
npm run tui
# Detach with Ctrl+A, D

# In tmux
tmux new-session -s omni-grc
npm run tui
# Detach with Ctrl+B, D

2. Auto-Refresh for Monitoring

Set up a monitoring session with auto-refresh:

npm run tui -- --refresh 30

Press 1 for Dashboard, and it will update every 30 seconds.

3. SSH Remote Management

Access TUI over SSH:

ssh user@grc-server.company.com
cd /opt/omni-grc
npm run tui

4. Quick Navigation

Use number keys for instant view switching instead of Tab:

5. Filtering Large Lists

When viewing large lists:

  1. Press f to open filter
  2. Type filter criteria
  3. Press Enter to apply
  4. Press f again and clear to reset

6. Export from TUI

While in a list view, you can:

  1. Press Esc to go back to terminal
  2. Run omni-grc <view> --json > export.json
  3. Return to TUI with npm run tui

Troubleshooting

Issue: TUI Doesn’t Render Properly

Symptoms: Broken borders, misaligned text

Solutions:

# 1. Check terminal size
echo $COLUMNS x $LINES
# Minimum: 80x24

# 2. Try different terminal
# Use: iTerm2, Terminal.app, Alacritty, or Windows Terminal

# 3. Reset terminal
reset
npm run tui

Issue: Colors Not Showing

Solution:

# Check TERM variable
echo $TERM
# Should be: xterm-256color

# Set if needed
export TERM=xterm-256color
npm run tui

Issue: Keyboard Shortcuts Not Working

Solution:

# Some terminals may have conflicting keybindings
# Try alternative keys:
# - Instead of j/k, use arrow keys
# - Instead of /, use f for filter

Issue: “Connection Refused” Error

Solution:

# Ensure OMNI-GRC server is running
npm run dev
# In another terminal:
npm run tui

# Or specify API URL
npm run tui -- --api-url http://localhost:3000/api

Issue: Slow Performance

Solutions:

# 1. Disable auto-refresh
npm run tui
# Don't use --refresh option

# 2. Use filters to reduce data
# Press 'f' in any view

# 3. Close detail panels
# Press 'Esc' to close

Issue: Text Cut Off

Solution:

# Maximize terminal window or increase size
# Minimum recommended: 100x30

# Or use horizontal scroll in panels
# Use ← → keys in detail views

Next Steps


Pro Tip: Use the TUI for quick checks and the CLI for automation. The TUI is perfect for interactive sessions, while the CLI excels at scripting!