This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
---
# claudbg-1tlk
title: 'TUI: help modal listing all keyboard shortcuts'
status: completed
type: task
priority: normal
created_at: 2026-03-30T04:48:38Z
updated_at: 2026-03-30T16:53:43Z
parent: claudbg-i6l2
blocked_by:
- claudbg-ut9q
---
Implement a `?` help overlay that lists all keyboard shortcuts.
## Trigger
Press `?` (or `Shift+/`) from any screen (except when another modal is open).
## Content
```
┌─────────── Keyboard Shortcuts ────────────┐
│ Navigation │
│ ↑/↓ or k/j Scroll up/down │
│ ←/→ or h/l Scroll left/right │
│ Tab Cycle panes │
│ Enter Open / select │
│ Escape Go back │
│ │
│ Global │
│ q / Q Quit (with confirmation) │
│ ? Show this help │
└───────────────────────────────────────────┘
```
Press `Escape` to close.
## State
`AppState.show_help: bool`
-`?` → `show_help = true`
-`Escape` → `show_help = false`
- Help modal intercepts all key input while open.
## Implementation notes
- Same centered overlay pattern as quit dialog (Clear + Block + Paragraph).
- Content is static — hardcoded list of shortcuts.
- Render on top of whatever screen is active.
## Blocked by
- event loop (claudbg-ut9q)
## Summary of Changes\n\nCreated src/tui/modals/help_modal.rs with render_help_modal() (32×14 centered Clear+Block overlay, static shortcuts list) and handle_help_modal_event() (Esc dismisses, all keys consumed). Wired into run.rs render and event dispatch.