7 min read
|
Saved February 14, 2026
|
Copied!
Do you care about this?
This article explores the limitations of traditional terminal emulators and imagines improvements using concepts from Jupyter Notebooks. It discusses features like better command interaction, long-lived process management, and advanced data tracking for reruns and undo functionality. The author highlights existing tools like Warp and iTerm2 that incorporate some of these ideas.
If you do, here's more
The article breaks down the components of a terminal and explores what a more advanced terminal could look like. It describes the four main parts: the terminal emulator, the pseudo-terminal (PTY), the shell, and the programs launched by the shell. While traditional terminals handle input and output mostly as text, they fall short in functionality, especially when it comes to interactivity and rich formatting. The author contrasts conventional VT100 emulators with Jupyter Notebooks, which offer features like image rendering, in-place editing, and command rerunning that aren't available in standard terminals.
However, using Jupyter with shell commands presents challenges. The shell processes commands all at once, losing features like tab completion and syntax highlighting. Long-running processes complicate interactions, as Jupyter typically runs cells until completion without allowing for interruption or state management. The article highlights Warp, a terminal that integrates with the shell to enhance usability. Warp and iTerm2 both allow for better command navigation and interaction with long-lived processes, addressing some of the limitations found in traditional terminals.
The author discusses the concepts of job control, suspending processes, and disconnecting from sessions. Tools like Tmux and Mosh offer solutions for managing terminal sessions, with Tmux allowing multiple clients to connect to a single server. Mosh addresses network interruptions, enabling session reconnections. Meanwhile, alternatives like Alden and Dtach focus solely on session management without adding extra layers of complexity. The article concludes by mentioning dataflow tracking, which enables features like rerunning commands and undo/redo capabilities, exemplified by systems like Pluto.jl that integrate with programming languages to update outputs dynamically.
Questions about this article
No questions yet.