[GH-ISSUE #1107] Issues about building AI chat CLI #803

Closed
opened 2026-03-04 01:07:51 +03:00 by kerem · 2 comments
Owner

Originally created by @yangguansen on GitHub (Aug 1, 2025).
Original GitHub issue: https://github.com/rivo/tview/issues/1107

Thank author for this great repo!

I want to build a terminal AI chat CLI using Go, user experience similar to Gemini CLI, after I tried this repo, I discovered:

  1. Border not support round border, can we support it or need some tricy? I see Gemini CLI build round border using ╭``╮``│``─, will we add this?

  2. Could TextView add sub-TextView?
    For displaying message list, I want add Label for each message, but only TextView support Label, how to add Label for each message string?
    My construction is:

- app
  - Flex
    - TextView
      - Message List
    - TextArea
  1. Does TextView support string selection?
    When display message, user may want select part of message in TextView, but seems TextView doesn't support selection.
Originally created by @yangguansen on GitHub (Aug 1, 2025). Original GitHub issue: https://github.com/rivo/tview/issues/1107 Thank author for this great repo! I want to build a terminal AI chat CLI using Go, user experience similar to Gemini CLI, after I tried this repo, I discovered: 1. Border not support round border, can we support it or need some tricy? I see Gemini CLI build round border using `╭``╮``│``─`, will we add this? 2. Could TextView add sub-TextView? For displaying message list, I want add Label for each message, but only TextView support Label, how to add Label for each message string? My construction is: ``` - app - Flex - TextView - Message List - TextArea ``` 3. Does TextView support string selection? When display message, user may want select part of message in TextView, but seems TextView doesn't support selection.
kerem closed this issue 2026-03-04 01:07:51 +03:00
Author
Owner

@ossenthusiast commented on GitHub (Aug 27, 2025):

  1. Change tview.Borders.* to your liking to change the borders for all widgets (must be done before constructing)
  2. This is not possible. I have proposed a scrollable ListView/ScrollView primitive instead, which can contain other primitives and allows them to be selectable. Similar to List, but can contain other Primitives instead of only strings. See: https://github.com/rivo/tview/issues/1104
  3. See how discordo wraps the "message" in a highlight group and uses region IDs to allow navigation and selection.
<!-- gh-comment-id:3228588035 --> @ossenthusiast commented on GitHub (Aug 27, 2025): 1. Change `tview.Borders.*` to your liking to change the borders for all widgets (must be done before constructing) 2. This is not possible. I have proposed a scrollable `ListView`/`ScrollView` primitive instead, which can contain other primitives and allows them to be selectable. Similar to `List`, but can contain other `Primitive`s instead of only `string`s. See: https://github.com/rivo/tview/issues/1104 3. See how [discordo](https://github.com/ayn2op/discordo) wraps the "message" in a highlight group and uses region IDs to allow navigation and selection.
Author
Owner

@yangguansen commented on GitHub (Aug 28, 2025):

Thank you!

<!-- gh-comment-id:3230675120 --> @yangguansen commented on GitHub (Aug 28, 2025): Thank you!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/tview#803
No description provided.