If Mitchell Hashimoto succeeds, Tmux & Zellij will disappear

Changelog Changelog Jan 26, 2025

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.