Interactive TUI

Browse findings in a split-panel terminal interface with AI explanations, filtering, and vim keybindings.

Launch

sofe interactive              # latest evaluation
sofe interactive <eval-id>   # specific evaluation

Requires: API key configured (sofe login or sofe config set api-key)

Menu Screen

When you launch interactive, you see a menu with options:

SOFE Interactive │ v0.5.2 │ 2026-07-10 │ 57 findings

  Evaluation: f205ed5f... (scheduled)
  Severity:   1 high • 56 medium • 0 low

  ▸ Browse findings    split-panel view (57 findings)
    Top findings       ranked by frequency
    History            sofe history (exits TUI)
    Watch mode         sofe watch (exits TUI)
    Account status     sofe status (exits TUI)
    Quit

Split-Panel View

The main view shows findings on the left and detail on the right. The detail updates as you move the cursor — no need to press Enter.

┌─ FINDINGS ──────────────────┬─ DETAIL ─────────────────────────┐
│                              │                                   │
│  ● HIGH  EHMQGKJRB7VUA  waf │  Policy:   no-public-without-waf  │
│  ○ MED   htmlprueba    tags  │  Severity: high                   │
│  ○ MED   apMain        tags  │  Resource: EHMQGKJRB7VUA          │
│  ○ MED   login         tags  │  Type:     aws.cloudfront         │
│  ...                         │  Region:   us-east-1              │
│                              │                                   │
│                              │  Message:                          │
│                              │    waf_enabled = 0 (threshold: 0) │
│                              │                                   │
│                              │  ─────────────────────────         │
│                              │  Press 'e' for AI explanation      │
└──────────────────────────────┴───────────────────────────────────┘

Keybindings

KeyAction
↑/↓ or j/kNavigate findings
gg / GJump to first / last finding
eRequest AI explanation (shown in right panel)
/Filter mode (type to search by policy, resource, severity)
tabSwitch panel focus
escClear filter / back to menu
qQuit

Filtering

Press / to enter filter mode. Type to filter findings by:

  • Policy name (e.g., tags)
  • Resource ID (e.g., htmlprueba)
  • Severity (e.g., high)
  • Resource type (e.g., cloudfront)

Press Enter to confirm filter, Esc to cancel.

AI Explanation

With a finding selected, press e to get an AI explanation. The response appears in the right panel without leaving the view.

Uses your configured AI provider (see AI Providers).

Requirements

  • Terminal with TTY support (not piped, not in CI)
  • API key configured (cloud mode)
  • At least one evaluation completed
  • Terminal width ≥ 80 columns recommended