diff --git a/cli.py b/cli.py index fac376620..9630f6d6b 100755 --- a/cli.py +++ b/cli.py @@ -1632,6 +1632,19 @@ class HermesCLI: complete_while_typing=True, ) + # Dynamic height: grow the input area to match content lines so + # newlines (Alt+Enter) are always visible. A static preferred=1 + # causes the widget to stay 1-line and scroll internally after + # patch_stdout output has filled the terminal. + def _input_height(): + try: + lines = input_area.buffer.document.line_count + return Dimension(min=1, max=8, preferred=max(lines, 1)) + except Exception: + return Dimension(min=1, max=8, preferred=1) + + input_area.window.height = _input_height + # Paste collapsing: detect large pastes and save to temp file _paste_counter = [0]