You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
claudbg/.beans/claudbg-i6l2--tui-interacti...

2.1 KiB

title status type priority created_at updated_at
TUI: interactive session browser completed epic normal 2026-03-30T04:44:52Z 2026-03-30T17:02:35Z

Implement a full terminal UI using Ratatui for browsing Claude Code sessions.

Design

Navigation model: drill-down (not split-pane)

  • Screen 1: full-screen session list → Enter opens transcript
  • Screen 2: full-screen transcript with embedded sub-agents panel → Tab cycles panes, Escape returns to list
  • Screen 3: sub-agent transcript (same layout as Screen 2, Escape returns to parent transcript)

Session list screen Columns: short ID, datetime, project (truncated tail), model, message count, sub-agent count. Sorted most-recent-first.

Transcript screen

  • Header: session ID, model, tokens (in/out/cache), tool call summary, duration
  • Scrollable chat log: user messages, assistant text, tool use blocks (truncated), tool results (truncated)
  • Long lines truncated with horizontal scroll
  • Sub-agents panel (Tab to focus): list of sub-agent runs for this session; Enter navigates to sub-agent transcript
  • Thinking blocks hidden by default

Keyboard bindings

  • Up/Down/k/j — navigate within pane
  • Left/Right/h/l — horizontal scroll in transcript
  • Tab — cycle focus between panes
  • Enter — drill into selection
  • Escape — go back
  • q/Q — quit confirmation dialog (q=confirm, Esc=cancel)
  • ? — help modal listing all shortcuts (Esc to close)

Non-goals for this milestone

  • Live refresh / follow mode (future feature)
  • Color themes / configuration

Summary of Changes\n\nFull TUI implementation completed across 8 sub-tasks:\n- ratatui + crossterm deps added\n- AppState/Screen/Focus model with navigation methods\n- Terminal setup, RAII guard, panic hook, 50ms event loop\n- Session list screen (Table widget, j/k nav)\n- Transcript screen (stats header + scrollable chat log)\n- Sub-agents panel (30-char right split, Tab focus, Enter drill-in)\n- Quit confirmation dialog (q→confirm, Esc→cancel)\n- Help modal (? → shortcuts overlay)