the terminal of the future
a day ago
- A terminal consists of four parts: terminal emulator, pseudo-terminal (PTY), shell, and spawned programs.
- Current terminals are limited, but Jupyter Notebook offers features like high-fidelity images and rerun capabilities.
- Jupyter has issues with shell integration, long-lived processes, undo/redo, and state management.
- Warp and iTerm2 improve shell integration by understanding command boundaries and enabling advanced features.
- Long-lived processes require interaction, suspension, and disconnection, with tools like tmux and Mosh offering solutions.
- Rerun and undo/redo can be achieved through dataflow tracking and sandboxed tracing, as seen in Pluto.jl.
- Derived features from primitives include runbooks, smart search, IntelliSense, and collaborative terminals.
- Building a better terminal should be incremental, starting with transactional semantics via CLI.
- Stage 2 focuses on persistent sessions without tmux, using client/server models and Eternal TCP for network resumption.
- Stage 3 enables structured RPC with metadata tagging, allowing session replay and data transformation.
- Stage 4 introduces a Jupyter-like frontend with full integration, leveraging all previous stages.