The native TUI
Run heyfood for an ongoing food conversation in your terminal. The Rust interface streams answers, keeps local conversation context, supports multiline editing and scrollback, and restores your terminal cleanly when you leave.
heyfoodA session keeps the conversation together
Type naturally, then build on the previous answer. Prompt history and the active conversation stay in the running process; leaving the TUI starts a fresh local session next time.
> Plan Friday dinner for everyone in my household
> Compare the restaurant options and explain the dietary concerns
> Turn the selected recipe into a grocery proposalKeyboard behavior
| Key | Behavior |
|---|---|
Enter | Submit the current draft when no turn is active. |
Shift+Enter, Ctrl+J | Insert a newline. |
Arrow keys | Move through setup choices. Outside setup, Up and Down move through prompt history. |
Space | Select or clear an option when setup allows more than one. |
Esc | Cancel setup without saving its unfinished answers. |
PageUp, PageDown | Move through transcript scrollback. |
Ctrl+C | Cancel the active stream or a pending Grocery confirmation. |
Ctrl+D, /exit | Leave the TUI. |
Useful context stays one command away
/profile
/household
/location
/grocery
/watch
/status
/for Maya
/onboardThese commands open focused views or change the active context. Household changes start a fresh conversation so one person's context does not carry into another person's assessment.
Changes still stop for review
Grocery proposals show the affected list, household member, dietary screening, substitutions, and source details before anything is saved. Cancelling or pressing Ctrl+C leaves the list unchanged.
The layout fits the terminal you have
- A framed conversation, bordered composer, and branded startup view keep the interface calm without hiding useful context.
- Working state, location, household scope, version, and release channel stay visible around the conversation.
- Setup choices use one, two, or three columns as space allows, with clear focus and selection markers.
- Compact, standard, and wide terminals preserve the same meaning.
- Set
NO_COLOR=1to keep the same labels and markers without terminal color. - Scrollback stays put while new lines arrive.
- Service text is cleaned before it is rendered.
- Raw mode, alternate screen, cursor visibility, and line wrapping are restored after normal exit, cancellation, signals, and errors.
Your terminal still comes back the way the TUI found it.