ascend-tools-tui
Interactive terminal UI for chatting with Otto, the Ascend AI assistant.
Built on ascend-tools-core, ratatui, and crossterm.
Usage
As a library
use AscendClient;
use Config;
let client = new?;
run_tui?;
Features
- Vi keybindings (default) with Emacs mode toggle (
/emacs) - Multi-line input (Alt+Enter for newlines, grows up to 8 lines)
- Input history persisted across sessions (
~/.ascend-tools/history) - Smooth streaming output (~200 chars/sec) with spinner
- Markdown rendering (code blocks, bold, inline code)
- Scrollable chat (PageUp/Down, mouse wheel, Ctrl+U/D)
- Tab completion for slash commands
- Clipboard copy (
/copy), timestamps (/timestamps) - Cursor shape changes (block in vi normal, bar in insert/emacs)
Slash commands
| Command | Description |
|---|---|
/help |
Show commands and keybindings |
/vim, /vi |
Switch to Vi keybindings |
/emacs |
Switch to Emacs keybindings |
/copy |
Copy last Otto response to clipboard |
/timestamps |
Toggle message timestamps |
/clear |
Clear chat and start new thread |
/quit, /exit |
Exit |
See the full documentation for more details.