~7m20:31
DevOps Toolbox

I Tried Everything. This is the Best Terminal Setup

Oct 16, 2026

Read: ~7m · You save: 14 min

I Tried Everything. This is the Best Terminal Setup

Discover the ultimate terminal setup! Explore essential tools, configs, and workflows for a faster, more efficient command-line experience.

The configuration and efficiency of a command-line interface (CLI) setup can significantly impact a user's workflow, enabling seamless manipulation of work trees and effortless command execution. This article details a comprehensive terminal setup, focusing on core utilities, configurations, and tools that have been integrated into daily use. The selection process involved evaluating numerous tools, with only those that proved effective and enjoyable for the user being retained. The setup is presented in layers, with each component having a dedicated video on the author's channel for further detail.

Terminal Emulator: Ghostty

The foundation of any CLI experience is the terminal emulator itself. While default operating system terminals suffice, a more robust option is recommended. Ghostty is a fast, feature-rich, cross-platform terminal emulator that utilizes GPU acceleration. Developed in Zig by Mitchell Hashimoto, formerly of HashiCorp, Ghostty is open-source and has been legally guaranteed as free software through a non-profit contribution. Its configuration file, while extensive, allows for personalized visual aesthetics that enhance the terminal's appearance.

Multiplexers: tmux and Alternatives

Multiplexers are essential for managing multiple terminal sessions. While new multiplexers like Herder and Two Oh Es are gaining traction, the author continues to rely on tmux for local use. The tmux configuration includes a reset.conf file for establishing baseline bindings and unbindings, followed by the main tmux.conf which loads the reset configuration and sets up plugins.

Key tmux plugins include:

  • Sessh: A session manager that provides a fuzzy-searchable list of active sessions with previews and options. It is highly customizable.
  • Catppuccin: The chosen color scheme for tmux.
  • Floats: Enables floating panes within tmux, offering options for resizing and resetting. It is primarily used for persistent pop-up windows. The configuration specifies the pane's dimensions, colors, and control key behavior.

Session Management: SessionX and Sesh

Session management tools streamline the handling of terminal sessions.

  • SessionX: Integrated with tmux, SessionX offers a user-friendly interface for managing sessions.
  • Sesh: A more feature-rich session manager, Sesh allows for the creation of presets for specific project configurations, such as Neovim or tmux configurations. It can also launch projects with associated work trunk lists. Sesh is maintained by Josh Medeski.

Git Workflow Enhancement: Work Trunk and Workmux

Managing Git work trees can be challenging due to their user experience.

  • Work Trunk: This project addresses the lifecycle management of Git work trees, providing a more organized approach.
  • Workmux: This tool integrates tmux sessions with work trees, offering a Text User Interface (TUI) dashboard. The dashboard displays running projects and work trees, their Git diff status, and PR information. It also includes a preview pane for direct agent control. The workmux add command initiates new sessions, integrating with tools like Pi agent and SessionX.

Advanced Multiplexing and Terminal Operating Systems

Beyond traditional multiplexers, advanced tools offer enhanced terminal management.

  • Herder: A full-blown multiplexer that manages tabs, splits, and displays running agents and their statuses. It offers a visually appealing interface with zero configuration and mouse control.
  • To Your List: This tool is described as a "terminal operating system," functioning as a multiplexer with floating panes that mimic operating system windows. It supports metrics display, workspace control, tiling, and various modes, including minimize, maximize, and kill pane functions. It is particularly useful for remote machines.

Shell Configuration: POSIX Compatibility

After a period of using Nushell, the author has reverted to a POSIX-compatible shell (sh). This shift prioritizes the ability to export environment variables and evaluate lists, which were limitations in Nushell. The current setup uses a simple bash-based shell configuration, allowing for the execution of commands like new ls and retaining the flexibility of querying databases when needed.

AI Coding Agents: Pi

AI coding agents are transforming terminal utility.

  • Pi: This agent has replaced Open Code, offering speed, simplicity, and a lean design. It features a straightforward interface with customizable settings accessible via a configuration file. Pi supports various models, including Codex via web authentication. It provides a conversation tree for reviewing and forking past interactions, which is useful for managing complex contexts. The author has developed a head slash command for Pi to address specific workflow issues within tmux.

Simplified Technical English (STE) Integration

An extension for Pi incorporates Simplified Technical English (STE), a standard from the 1980s designed for clear and concise instructions. This protocol, inspired by work from Andrej Karpathy and an earlier Py extension, aims to simplify prompts and language for AI interactions.

Navigation and History Management

Efficient navigation and command history recall are crucial for productivity.

  • Zoxide: This tool acts as an intelligent path predictor, allowing users to navigate directories with the z command followed by a keyword. It integrates with tmux plugins and other utilities. When multiple path options exist, zi combined with fzf presents a score-based list of stored paths, prioritizing recency and visit frequency. Zoxide is a Rust-based CLI that evolved from an older Bash script named z jumper.
  • Twain: A smart command history manager that syncs history across machines and uses a local SQLite database for fast searching. It now includes AI capabilities for searching and generating commands, and can run in a tmux pop-up. Twain also offers natural language search for command history. The author still uses Ctrl+R with FZF for history output as a segue to discussing FZF.

Fuzzy Finder: FZF

FZF is a highly popular and versatile fuzzy finder for the CLI. It can be installed on various systems and is extremely pluggable. FZF takes any list of input and provides a fuzzy search interface. It offers extensive customization options for appearance, menus, colors, key bindings, and logical behavior.

Shell Prompt: Starship

Starship provides a dynamic and informative shell prompt. It displays context-specific information such as Git status, AWS profiles, and region, adapting to different project types. Starship is configured to show Git, AWS, and Golang project details. It is presented as a more performant and manageable alternative to older solutions like Oh My Zsh.

Integrated Development Environment: Neovim

Neovim serves as the author's primary Integrated Development Environment (IDE). It offers comprehensive features including code suggestions, Language Server Protocol (LSP) integration, debuggers, and file exploration. The setup is built upon the LazyVim framework. While Neovim traditionally requires extensive configuration, future versions aim for more out-of-the-box functionality. Neovim is integrated with other tools, appearing in agent prompts and other contexts.

Terminal File Explorers

Several TUIs offer visual file navigation within the terminal.

  • Superfile: This file explorer is noted for its aesthetic appeal and smart features, including navigable paths, file and directory previews, easy bindings, and a searchable options menu. It includes a favorites list with a customizable pinboard, file metadata, and efficient cut, copy, paste, and delete operations.
  • Television: This utility functions as FZF within a TUI, presenting different lists as "channels" for searching and previewing, such as dot files, directories, aliases, or AWS buckets. It includes a "TV remote" for interaction.

Development Tool and Variable Management: Miz

Miz is a tool for managing development tools and variables. It integrates with project-specific configuration files (Miz dump files) to automatically set up environments upon entering a project directory and unset them upon leaving. It also provides on-demand access to tools via Nix.

Dotfiles Management

All configurations and tool setups are tracked in a public Git repository, ensuring accessibility and transparency. Updates to the setup are communicated through dedicated videos.

Introduction to Terminal Setup Philosophy

The introduction sets the stage for a deep dive into terminal customization, arguing for its importance in enhancing workflow and personal productivity, promising a layered approach to presenting the chosen tools.

  • The presenter emphasizes that terminal setup, speed, and flow significantly matter for productivity.
  • The goal is to make the terminal an extension of the brain, focusing on ease of use and enjoyment.
  • The video will cover core utilities, configurations, and tools the presenter uses daily.
  • All mentioned projects have dedicated videos on the channel.
  • The setup will be presented in layers.

Terminal Emulator: Ghostty

Ghostty is highlighted as the preferred terminal emulator due to its performance and features. Its open-source nature and the developer's background are noted, alongside the anticipation of a new multiplexer from the same creator.

  • Ghostty is recommended as a fast, feature-rich, cross-platform terminal emulator with GPU acceleration.
  • Its configuration file is described as 'bloated' but necessary for desired visuals.
  • Ghostty is open-source, written in Zig, by Mitchell Hashimoto (ex-HashiCorp founder).
  • Hashimoto has contributed Ghostty to a non-profit to ensure its open-source future.
  • Hashimoto is also developing a multiplexer, potentially a competitor to tmux.

Multiplexer: tmux and Plugins

tmux is the chosen multiplexer, configured with custom plugins like Sessh for session management and Floats for floating panes. The setup prioritizes personalized bindings and visual themes, with all configurations publicly available.

  • While other multiplexers like Herder and Two Oh Es exist, tmux remains the presenter's choice for local use.
  • The tmux configuration involves two main parts: reset.conf for baseline bindings and the main tmux.conf.
  • Key plugins include Sessh (a session manager) and Floats (for floating panes).
  • Catppuccin is the chosen tmux color scheme.
  • All configurations are available on the presenter's GitHub dotfiles repo.

Session Management: Sessh and SessionX

Session management is crucial, with Sessh and its more advanced counterpart, SessionX, offering efficient ways to handle and switch between terminal sessions, including customizable presets for different development environments.

  • Sessh is a session manager that provides a fuzzy searchable list of active sessions with previews.
  • SessionX is a more robust and feature-full session manager, potentially a better choice for most users.
  • SessionX allows for customizable presets, such as configurations for Neovim or tmux.
  • It integrates with other tools like Fat Bot and Work Trunk List.
  • SessionX is well-documented and benefits from its contributors.

Work Tree Management: Work Trunk and Workmux

Managing Git work trees is streamlined with Work Trunk and Workmux. Workmux provides a TUI dashboard that integrates work trees, sessions, and agents, offering a unified view and control over development projects.

  • Work trees are considered Git's best feature but have a poor user experience.
  • Work Trunk is a project designed to address the management of Git work trees.
  • Workmux integrates work trees, sessions, and agents with a Text-based User Interface (TUI).
  • The Workmux dashboard displays projects, work trees, Git diffs, and PR status.
  • Workmux allows controlling agents directly from the dashboard and starting new sessions.

Alternative Multiplexers and Terminal OS

The video explores alternative multiplexers like Herder and the innovative 'terminal operating system' To-Do List, showcasing their advanced features and visual appeal, while reaffirming tmux as the preferred local choice.

  • Herder is a full-blown multiplexer with a visually appealing interface and good defaults.
  • To-Do List is described as a 'terminal operating system' with floating panes, tiling, and OS-like window controls.
  • To-Do List is innovative and suitable for remote machines.
  • tmux remains the presenter's preference for local use.
  • Both Herder and To-Do List are presented as powerful alternatives for terminal management.

Shell: Return to Bash

A significant shift is announced: the presenter is returning to bash from Nushell, citing the need for essential features like environment variable management and eval lists, while retaining the option to use Nushell selectively.

  • The presenter has moved away from Nushell (Sumi) back to the standard POSIX-compatible bash shell.
  • The decision was made due to a lack of features like exporting environment variables and eval lists in Nushell.
  • Bash provides a simple, reliable environment with the ability to query data structures like YAML or SQLite.
  • The presenter can still leverage Nushell's features by invoking it when needed.
  • This return to bash is considered a significant change for the presenter's workflow.

AI Coding Agent: Pi

The Pi coding agent is introduced as a fast and simple LLM-powered tool for the terminal, offering features like conversation history management, model switching, and session sharing, making it a powerful assistant for developers.

  • Pi is a terminal utility that interacts with Large Language Models (LLMs), replacing Open Code.
  • Pi is praised for its speed, simplicity, and lean design.
  • It offers extensions for added functionality and a simple configuration file.
  • Users can easily change the LLM model, with Codex being the current choice via paid subscription.
  • Features include a conversation tree for reviewing and forking past interactions, and session export/import.

Simplified Technical English (STE) for AI

A novel application of Simplified Technical English (STE) is discussed, integrated into the Pi AI agent to enhance clarity and precision in instructions, drawing inspiration from its use in high-stakes technical fields.

  • The presenter has integrated Simplified Technical English (STE) into the Pi agent.
  • STE is an '80s standard for simplifying instructions, used in critical applications like Apollo missions.
  • This integration aims to simplify instructions and words for the AI agent.
  • The idea was inspired by a tweet and implemented via a Py extension.
  • This is presented as a way to improve AI interaction clarity.

Path Navigation: Zoxide

Zoxide is presented as an essential tool for efficient path navigation, intelligently predicting and jumping to frequently used directories based on usage history, integrating seamlessly with other terminal tools.

  • Zoxide is used for intelligent path navigation within the terminal.
  • It integrates with tmux plugins and other utilities.
  • By typing 'z' followed by a keyword, users are taken to the most likely directory.
  • Zoxide uses recency and visit frequency to rank paths.
  • It's a Rust-based CLI inspired by an older bash script, Z Jumper.

Command History: Atuin

Atuin enhances command history management with AI-powered search, natural language querying, and cross-machine synchronization, offering a powerful alternative to traditional history commands.

  • Atuin is a smart command history manager that syncs history across machines.
  • It features an AI that can search local commands or generate new ones.
  • Atuin stores history in a local SQLite database for fast searching.
  • It supports natural language queries for history search.
  • The presenter still uses Ctrl+R with FZF for history, but acknowledges Atuin's advanced capabilities.

Fuzzy Finder: FZF

FZF is lauded as a versatile and powerful fuzzy finder, essential for searching and filtering lists within the terminal. Its high degree of customization makes it a core component in many other CLI tools.

  • FZF is a highly popular, open-source fuzzy finder for the command line.
  • It can be installed anywhere and is extremely pluggable and customizable.
  • FZF takes any list of input and provides a fuzzy search interface.
  • Customization options include appearance, menus, key bindings, and icons.
  • It's a foundational tool used in other utilities like SessionX.

Shell Prompt: Starship

Starship provides a dynamic and informative shell prompt, displaying crucial context like Git status and project-specific information, offering a lean and efficient alternative to traditional prompts.

  • Starship is a highly configurable shell prompt that updates dynamically.
  • It displays relevant information like Git status, AWS profile, and Golang project details.
  • The configuration is lean, focusing on Git, AWS, and Golang.
  • It's a replacement for older, slower prompts like Oh My Zsh.
  • Starship provides meaningful context without being overly verbose.

IDE: Neovim

Neovim is established as the go-to Integrated Development Environment (IDE), praised for its extensive features and deep customizability, with the presenter utilizing the LazyVim framework for their setup.

  • Neovim is the presenter's primary IDE, offering a comprehensive set of features.
  • It includes code suggestions, LSP, debuggers, and file exploration.
  • The presenter uses LazyVim as their personal framework for Neovim.
  • Neovim is known for its high degree of configurability.
  • Future versions of Neovim aim for better out-of-the-box experiences.

TUI File Explorer: Superfile

Superfile is highlighted as a visually pleasant and smart TUI file explorer, simplifying file management with intuitive navigation, previews, and quick access to common operations.

  • Superfile is a modern, performant, and feature-rich TUI file explorer.
  • It offers a visually appealing interface with easy navigation and file previews.
  • Features include a favorite list, customizable pin board, and metadata display.
  • File operations like cut, copy, paste, and delete are easily accessible.
  • It provides process indicators and confirmation prompts for safety.

Other Utilities: Television, Miz, and Plus

Additional utilities like Television (TUI FZF) and Miz (dev tool/variable manager) are presented, further enhancing the terminal's capabilities for managing configurations, environments, and project-specific settings.

  • Television is described as FZF in a TUI, offering searchable lists like dot files, aliases, or AWS buckets.
  • Miz is a tool for managing dev tools and variables, particularly useful for project-specific environments.
  • Miz automatically sets up variables and tools when entering a project directory and unsets them upon leaving.
  • It leverages Nix for on-demand tool availability.
  • These tools add further layers of convenience and efficiency to the terminal workflow.