TUI Apps¶
Curated Terminal Experiences
A curated list of Terminal User Interface (TUI) applications that bring powerful, visually rich experiences to the terminal. These are tools I find genuinely useful or just plain cool.
Disk Usage¶
-
ncdu
The classic interactive disk usage analyzer, navigate your filesystem and instantly see what's eating your space. An indispensable
dureplacement.Install:
Usage:
Navigate with arrow keys,
dto delete,qto quit.
Editors¶
-
Helix
A modern modal text editor written in Rust, inspired by Kakoune and Neovim. Built-in LSP and tree-sitter support out of the box, no plugins needed to get a great editing experience.
Features:
- Modal editing (normal/insert/select modes)
- Built-in LSP support (autocompletion, diagnostics, go-to-definition)
- Tree-sitter syntax highlighting for 150+ languages
- Multiple cursors
- No configuration required to get started
Install:
Usage:
Press
?in normal mode for the help menu. Unlike Vim, selections come before actions (select → action). -
Vim
The timeless modal text editor, available on virtually every Unix system. Steep learning curve, infinite configurability, and a skill that transfers everywhere.
Features:
- Modal editing (normal/insert/visual/command modes)
- Powerful motions and text objects
- Macro recording
- Ubiquitous, installed by default on most servers
- Massive plugin ecosystem
Install:
Usage:
ito enter insert mode,Escto return to normal mode,:wqto save and quit. Runvimtutorfor an interactive introduction.
Email¶
-
mutt
The classic Unix email client, text-based, fast, and infinitely configurable. A staple for reading and sending email directly from the terminal, with strong GPG support for encrypted and signed messages.
Features:
- IMAP, POP3, and SMTP support
- GPG/PGP encryption and signing
- Powerful message threading and sorting
- Vim-style keybindings
- Highly scriptable configuration
Install:
Usage:
Press
?for the full keybindings reference.mto compose,rto reply,dto delete,qto quit.
File Manager¶
-
yazi
A blazing fast terminal file manager written in Rust, built around async I/O. Features image previews, syntax-highlighted file previews, and a smooth vim-like navigation experience.
Features:
- Image previews in the terminal (Kitty, iTerm2, Sixel…)
- Syntax-highlighted file and code previews
- Vim-style keybindings
- Tabs and multi-panel layouts
- Bulk rename
- Plugin system via Lua
Install:
Usage:
Use
h/lto navigate in and out of directories,Spaceto select,Enterto open. Press?for the full keybindings reference.Shell integration
Add the shell wrapper to your config so yazi changes the current directory on exit:
- For fish:
yazi --init | source
Git¶
-
lazygit
A terminal UI for git written in Go that makes staging, committing, branching, rebasing, and resolving conflicts intuitive, without leaving the terminal.
Features:
- Stage individual files, hunks, or lines
- Interactive rebase with a visual interface
- Branch and stash management
- Commit history browsing with diffs
- Merge conflict resolution
- Customizable keybindings
Install:
Usage:
Press
?to open the keybindings menu.Spacestages files,ccommits,Ppushes.
Kubernetes¶
-
k9s
A terminal UI for Kubernetes that lets you interact with your clusters in real time. Navigate resources, view logs, exec into pods, and manage workloads, all without typing
kubectlcommands manually.Features:
- Live view of pods, deployments, services, and all other resources
- Log streaming with filtering
- Shell access into containers
- Resource editing in-place
- Port forwarding
- Works with any
kubeconfig-configured cluster
Install:
Usage:
Press
?inside k9s to open the keybindings help.
Markdown¶
-
glow
A Markdown reader for the terminal written in Go. Renders Markdown beautifully with styling, colors, and proper formatting, great for reading READMEs or documentation without leaving the terminal.
Install:
Usage:
Running
glowwithout arguments opens a TUI file browser for.mdfiles in the current directory.
Network¶
-
bandwhich
A terminal bandwidth utilization tool written in Rust. Shows real-time network usage broken down by process, connection, and remote address, instantly see what's talking to where.
Install:
Usage:
-
iftop
A real-time network bandwidth monitor that shows bandwidth usage per connection, displayed as a live updating table. The network equivalent of
top.Install:
Usage:
Press
hfor help,qto quit. -
iptraf-ng
An IP network traffic monitor that provides detailed statistics on network traffic by interface, protocol, and connection. A classic sysadmin tool.
Install:
Usage:
Navigate with arrow keys and
Enter. Choose between general statistics, per-interface stats, or a detailed connection breakdown. -
mtr
A network diagnostic tool that combines
tracerouteandpinginto a single live-updating TUI. Shows every hop along the route to a host with real-time latency and packet loss per hop.Install:
Usage:
Press
?for help,qto quit. -
oha
A HTTP load testing tool written in Rust with a real-time TUI. Bombard an endpoint with concurrent requests and get a live view of throughput, latency percentiles, and response codes.
Install:
Usage:
System Monitoring¶
-
btop
A resource monitor written in C++ with a clean, responsive interface. Displays CPU, memory, disk, and network usage at a glance, with process management built in.
Features:
- Real-time CPU, memory, swap, disk, and network graphs
- Process list with sorting, filtering, and kill/nice support
- Mouse support
- Themeable with built-in and custom color schemes
- Low resource footprint
Install:
Usage:
Press
?for the help menu.F2opens settings,qquits. -
htop
The classic interactive process viewer for Unix, a staple on any Linux system. Simple, fast, and universally available.
Features:
- CPU, memory, and swap usage bars
- Process list with sorting and filtering
- Kill, renice, and strace processes
- Tree view for parent/child relationships
- Mouse support
Install:
Usage:
Press
F1for help,F6to sort,F9to kill a process.
Terminal Multiplexers¶
-
Zellij
A terminal multiplexer written in Rust, think tmux, but with a more approachable UX, a built-in layout system, and a plugin ecosystem. Keybindings are always visible at the bottom, making it beginner-friendly without sacrificing power.
Features:
- Panes, tabs, and floating windows
- Persistent sessions (survive disconnects)
- Built-in status bar with visible keybindings
- YAML/KDL layout files for reproducible workspaces
- WebAssembly plugin system
- Mouse support
Install:
Usage:
Config and layouts live in
~/.config/zellij/. PressCtrl+pto open the pane management mode,Ctrl+tfor tabs.
Weather¶
-
weathr
A terminal weather app written in Rust with animated ASCII visuals, rain, snow, thunderstorms, flying airplanes, and day/night cycles. Weather data comes from Open-Meteo, a free and open-source weather API.
Features:
- Animated weather conditions (rain, snow, thunderstorms…)
- Auto-location detection via IP geolocation
- Day/night cycle rendering
- Configurable units (metric/imperial)
- HUD with current conditions
Install:
Usage:
Config at
~/.config/weathr/config.toml, set your coordinates, preferred units, and toggle HUD or silent mode. -
wttr.in
A web-based weather service usable directly from the terminal via
curl, no installation required. Returns a nicely formatted ASCII weather report for any location.Service reliability
The public instance at wttr.in can be unreliable, requests sometimes fail or time out. Retry if you get no response.
Usage:
The location can be a city name, airport code, or geographic coordinates. Append
?format=for machine-readable output, handy for shell prompts or scripts.