If Mitchell Hashimoto succeeds, Tmux & Zellij will disappear
Audio Brief
Show transcript
This episode covers the limitations of terminal multiplexers and a vision for their replacement.
There are three key takeaways. First, multiplexers like TMUX create a "terminal within a terminal," degrading user experience by stripping host terminal features.
Second, this architecture prevents modern terminal capabilities, as multiplexers discard unsupported protocols.
Third, a better path integrates session persistence natively into the terminal, leveraging networking for seamless remote connections.
The ultimate goal is a foundational library for advanced terminal applications, making separate multiplexer tools unnecessary. This signals a shift towards integrated, feature-rich terminal environments.
Episode Overview
- The speaker discusses the inherent limitations of terminal multiplexers like TMUX, arguing they degrade the user experience.
- He explains that a multiplexer acts as a "terminal within a terminal," which can strip away advanced features supported by the host terminal application.
- A vision for replacing multiplexers is presented, using modern networking tools like Tailscale to achieve native, persistent remote sessions.
- The ultimate goal is to create a foundational, cross-platform library (LibGhostty) that simplifies the creation of advanced terminal applications.
Key Concepts
- Terminal Multiplexers: The discussion focuses on tools like TMUX and Zellij, analyzing their utility for session management against the technical drawbacks they introduce.
- "Terminal within a Terminal" Problem: This is the core issue identified. A multiplexer is a terminal that renders its UI as text within another graphical terminal, creating layers of interpretation that can lead to feature loss and incompatibility.
- Feature Degradation: Advanced features of a modern terminal (e.g., graphics protocols) are lost when running through a multiplexer that doesn't support them, as the multiplexer simply discards the unsupported protocols.
- Native Session Persistence: The proposed alternative to multiplexers, which involves running a remote "host instance" of a terminal that users can connect to from anywhere. This preserves sessions, windows, and splits natively without the compatibility issues of a nested terminal.
Quotes
- At 00:30 - "a terminal multiplexer is itself a full fledged terminal where its UI is just text that's going to another graphical terminal... you're running multiple levels of terminals." - The speaker explains the fundamental architecture of multiplexers and the core reason they create compatibility problems.
- At 02:00 - "I think that philosophically, I would love to see them disappear." - The speaker clarifies his stance, stating that while he respects the creators, his goal is for tools like TMUX to be rendered obsolete by better, more integrated solutions.
Takeaways
- Terminal multiplexers solve the problem of session persistence at the cost of creating a restrictive intermediary layer that can limit functionality.
- The "terminal within a terminal" architecture is a key source of issues, preventing advanced features from the host terminal from working correctly.
- A more modern approach to session persistence involves integrating it with the terminal emulator itself, using networking tools to create seamless remote connections.
- The future of terminal innovation may depend on creating shared, foundational libraries that handle complex protocols, allowing developers to focus on building better user interfaces and features.
- While useful today, the ideal future is one where the functionality of multiplexers is built-in natively, making the separate tool unnecessary.