Evaluate Python TUI frameworks for Fenris #6

Closed
opened 2026-08-31 08:03:03 +00:00 by xavierk · 1 comment
Owner

Parent map: Chart Fenris’s persistent TUI monitoring redesign

Question

Which maintained Python TUI framework best fits Fenris’s keyboard-first Overview, Usage History, Drive Health, and Settings views? Compare terminal compatibility, responsive widgets and charts, forms, async/background updates, testability, dependency and packaging cost, supported Python versions, and project health. Produce evidence and a recommendation that the later TUI prototype can use.

Parent map: [Chart Fenris’s persistent TUI monitoring redesign](https://git.bongbetic.com/xavierk/Fenris/issues/1) ## Question Which maintained Python TUI framework best fits Fenris’s keyboard-first Overview, Usage History, Drive Health, and Settings views? Compare terminal compatibility, responsive widgets and charts, forms, async/background updates, testability, dependency and packaging cost, supported Python versions, and project health. Produce evidence and a recommendation that the later TUI prototype can use.
xavierk added this to the Wayfinder: Fenris persistent TUI monitoring redesign milestone 2026-08-31 08:03:03 +00:00
xavierk added the wayfinder:research label 2026-08-31 08:03:03 +00:00
xavierk added a new dependency 2026-08-31 08:03:19 +00:00
xavierk added a new dependency 2026-08-31 08:03:19 +00:00
xavierk self-assigned this 2026-08-31 08:04:04 +00:00
Author
Owner

Resolution

Recommend Textual for Fenris's later TUI prototype and, if the prototype checks pass, for the persistent keyboard-first interface. Its integrated responsive layout primitives, dashboard/form widgets, async and threaded workers, and headless Pilot test driver fit the Overview, Usage History, Drive Health, and Settings views better than the shortlisted alternatives.

The recommendation is conditional on raising Fenris's currently documented Python floor from 3.7 to 3.9. Textual's built-in Sparkline is enough for an initial history prototype; defer textual-plotext or custom charts until the prototype proves that axes, multiple series, or richer interaction are required. Use Urwid as the fallback if low-level terminal control or a smaller direct dependency set outweighs Textual's application-level features.

Full evidence and prototype acceptance checks: Python TUI frameworks for Fenris.

Newly surfaced questions for the next Wayfinder session

  • May the redesign raise the minimum Python version from 3.7 to 3.9?
  • What terminal matrix and small-terminal behavior must be supported?
  • Is a table plus sparkline sufficient for Usage History, and should richer plotting be optional?
  • Which accessibility targets are required?
  • Will the TUI read observation storage directly or consume collector snapshots over IPC?
  • Which settings are user-owned versus collector/system-owned and may require privilege escalation?
  • Are semantic interaction tests sufficient, or are deterministic visual snapshots required?
## Resolution Recommend **Textual** for Fenris's later TUI prototype and, if the prototype checks pass, for the persistent keyboard-first interface. Its integrated responsive layout primitives, dashboard/form widgets, async and threaded workers, and headless `Pilot` test driver fit the Overview, Usage History, Drive Health, and Settings views better than the shortlisted alternatives. The recommendation is conditional on raising Fenris's currently documented Python floor from 3.7 to 3.9. Textual's built-in `Sparkline` is enough for an initial history prototype; defer `textual-plotext` or custom charts until the prototype proves that axes, multiple series, or richer interaction are required. Use Urwid as the fallback if low-level terminal control or a smaller direct dependency set outweighs Textual's application-level features. Full evidence and prototype acceptance checks: [Python TUI frameworks for Fenris](https://git.bongbetic.com/xavierk/Fenris/src/branch/research/python-tui-frameworks/docs/research/python-tui-frameworks.md). ### Newly surfaced questions for the next Wayfinder session - May the redesign raise the minimum Python version from 3.7 to 3.9? - What terminal matrix and small-terminal behavior must be supported? - Is a table plus sparkline sufficient for Usage History, and should richer plotting be optional? - Which accessibility targets are required? - Will the TUI read observation storage directly or consume collector snapshots over IPC? - Which settings are user-owned versus collector/system-owned and may require privilege escalation? - Are semantic interaction tests sufficient, or are deterministic visual snapshots required?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: xavierk/Fenris#6