{
  "id": 7584594,
  "title": "Live TUIs: bringing the AJAX experience to terminal apps",
  "url": "https://urgent.news/2026/09/15/live-tuis-bringing-the-ajax-experience-to-terminal-apps",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-15T16:04:21.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/chovy/live-tuis-bringing-the-ajax-experience-to-terminal-apps-1b6h"
  },
  "original_language": "en",
  "account": "The concept of Live TUIs aims to bring the smooth AJAX experience to terminal applications. A Live TUI is a persistent terminal workspace where multiple panes can refresh independently, allowing users to work in one pane while another pane streams data and updates without blocking the entire interface. This approach is similar to how AJAX partial updates enable users to continue working even when a request is still in flight.\n\nThe hqtui-demo is an example of a Live TUI, showcasing the combination of live state, independent pane updates, and local progress indicators. The term \"Live TUI\" is proposed to describe this experience, emphasizing that a busy pane should display its own status while the rest of the workspace remains usable. However, the proposal acknowledges that individual components of this concept have existed in responsive terminal applications for a long time, and there is no claim to inventing asynchronous terminal interfaces.\n\nFor designers of terminal user interfaces, the term \"Live TUI\" could convey a practical expectation that a busy pane should show its own status while the rest of the workspace stays functional. The example of the hqtui.com application demonstrates this concept in action.",
  "summary": "What should we call a terminal app where one pane can refresh while you keep working in another? I'm proposing \"Live TUI.\" The pattern is a persistent terminal workspace. Panes stream data and update independently. A task shows its own loading or progress state, so waiting on that task does not block the whole interface. AJAX is the analogy I keep coming back to: partial updates that leave the…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}