Pure Presentation Layer
The TUI does ONLY rendering. All logic is in ChatCore. The loop is:
- Render the current state (chat panel, input box, optional sidebar)
- Handle events (keypress, mouse) → produce an Action
- Dispatch action to ChatCore → get ChatAction back
- Update display state from the ChatAction
Key Features
- @file popup: Type
@and see matching files, Tab to complete - #agent popup: Type
#and see available agents - /command suggestions: Type
/for autocomplete - Multiline input: Shift+Enter or Alt+Enter for newlines
- Sidebar: Ctrl+S toggles file list, stats, token usage
- Scroll: PageUp/PageDown in chat history