Skip to content

Add ratatui based TUI as default interactive mode#38

Open
k29 wants to merge 4 commits intotigy32:mainfrom
k29:feature/tui
Open

Add ratatui based TUI as default interactive mode#38
k29 wants to merge 4 commits intotigy32:mainfrom
k29:feature/tui

Conversation

@k29
Copy link
Copy Markdown
Contributor

@k29 k29 commented Feb 24, 2026

Replaces rustyline REPL with a full terminal UI built on ratatui + Crossterm. Scrollable chat with streaming support, welcome banner, multi-line input area, status bar. You can go back to rustyline using --no-tui flag.

@k29
Copy link
Copy Markdown
Contributor Author

k29 commented Feb 25, 2026

there are some cases where this doesn't behave great, large copy paste, text selection etc. will add a few more commits to this PR.

@k29 k29 force-pushed the feature/tui branch 2 times, most recently from 62f2fa1 to 81b511f Compare February 25, 2026 20:05
k29 and others added 4 commits February 25, 2026 12:23
Replaces rustyline REPL with a full terminal UI built on ratatui +
Crossterm. Scrollable chat with streaming support, welcome banner,
multi-line input area, status bar. You can go back to rustyline using
--no-tui flag.
- Enable bracketed paste for proper large paste handling
- Enable keyboard enhancement for shift+enter newline support
- Remove mouse capture so terminal text selection works natively
- Add horizontal margins to prevent text from touching screen edges

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Enable crossterm MouseCapture to handle scroll events (3 lines per
tick) and click-drag text selection with reversed-color highlighting.
Selected text is auto-copied to clipboard on mouse release using
platform commands (pbcopy/xclip/xsel). Selection clears on new
streaming content and clicks outside the chat panel.
Reserve 1 column for the scrollbar so wrapped text no longer gets
clipped. Remove the horizontal margin that was previously added.
Update CLAUDE.md with feature branch update workflow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant