vibe-rust-tui

Installation
SKILL.md

Vibe Rust TUI

UI conventions for vibe/cli-rust/. Every screen follows them so the TUI reads as one product. Local code rules, scenarios and goldens live in vibe/cli-rust/AGENTS.md and client-e2e/AGENTS.md.

Shortcut hints

  • Name keys and actions only through src/hints.rs: key::*, action::* and the shared pairs (hints::NAVIGATE, SELECT, SEARCH, CANCEL, CLOSE, BACK). Never write a key or action as a string literal at a call site. A single letter key ("d", "r") is fine as long as its action comes from action::*. When a key or verb is missing, add it to src/hints.rs.
  • A hint is an unpadded (key, action) pair (hints::Hint). The renderer owns all spacing; never bake spaces into a label.
  • Wording: actions are lowercase verbs (navigate, select, close); keys keep their canonical casing (Enter, Esc, Ctrl+C, Backspace). Combined keys use / (Space/Enter, Esc/Ctrl+C).
  • Vertical navigation is key::NAV (↑↓/jk) whenever j/k work; use key::ARROWS (↑↓) only where a focused text field owns the letters. Horizontal navigation is key::LEFT_RIGHT (←→).
  • Footers read key action key action, ending with the Esc hint. Inline status lines (loading line, narrator) are the one exception and read key to action.
  • Render every footer through ui/hint_line.rs (draw, draw_clipped, line, spans, styled): they apply the shared key/action styles and clip to the box. Never place hint text with hardcoded x offsets or custom key styles. Center a hint with hints::width.
  • Onboarding and dialogs follow the same footer form (Enter continue, Esc back), not sentences like "Press Esc to go back".

Keyboard navigation

Installs
1
GitHub Stars
5.3K
First Seen
8 days ago