# Awesome TUIs List of projects that provide terminal user interfaces ## Table of Contents - [Dashboards](#dashboards) - [Development](#development) - [Editors](#editors) - [Games](#games) - [Libraries](#libraries) - [Messaging](#messaging) - [Miscellaneous](#miscellaneous) - [Multimedia](#multimedia) - [Productivity](#productivity) - [Web](#web) ## Dashboards - [bashtop](https://github.com/aristocratos/bashtop) Resource manager written in bash - [below](https://github.com/facebookincubator/below) A time traveling resource monitor for modern Linux systems - [bmon](https://github.com/tgraf/bmon) A monitoring and debugging tool to capture networking related statistics and prepare them visually. - [bottom](https://github.com/ClementTsang/bottom) A customizable graphical process/system monitor for the terminal. - [btop++](https://github.com/aristocratos/btop) Resource monitor with extras - [chkservice](https://github.com/linuxenko/chkservice) Systemd units manager with ncurses, terminal interface - [cointop](https://github.com/miguelmota/cointop) The fastest and most interactive terminal based UI application for tracking cryptocurrencies - [ctop](https://github.com/bcicen/ctop) Top-like interface for container metrics - [damon](https://github.com/hashicorp/damon) TUI interface for Hashicorp Nomad - [dockly](https://github.com/lirantal/dockly) Immersive terminal interface for managing docker containers and services - [dry](https://github.com/moncho/dry) A Docker manager for the terminal - [eks-node-viewer](https://github.com/awslabs/eks-node-viewer/) visualizing dynamic node usage within a kubernetes cluster - [fff](https://github.com/dylanaraps/fff) A simple file manager written in bash. - [nnn](https://github.com/jarun/nnn) n³ The unorthodox terminal file manager - [Glances](https://github.com/nicolargo/glances) Glances an Eye on your system. A top/htop alternative. - [Glow](https://github.com/charmbracelet/glow) Render markdown on the CLI, with pizzazz! - [Goaccess](https://github.com/allinurl/goaccess) GoAccess is a real-time web log analyzer and interactive viewer that runs in a terminal in nix systems or through your browser. - [gotop](https://github.com/xxxserxxx/gotop) A terminal based graphical activity monitor inspired by gtop and vtop - [gping](https://github.com/orf/gping) Ping, but with a graph - [Grafterm](https://github.com/slok/grafterm) Metrics dashboards on terminal, a Grafana inspired terminal version - [htop](https://github.com/hishamhm/htop) Interactive text-mode process viewer for Unix systems. It aims to be a better 'top' - [htui](https://github.com/PierreKieffer/htui) Heroku Terminal User Interface - [k9s](https://github.com/derailed/k9s) TUI for managing a Kubernetes cluster - [kmon](https://github.com/orhun/kmon) Linux Kernel Manager and Activity Monitor - [lazydocker](https://github.com/jesseduffield/lazydocker) The lazier way to manage everything docker - [Planor](https://github.com/mrusme/planor) The Cloud Aviator, dashboard for AWS, Vultr, Heroku, ... - [Podman-tui](https://github.com/containers/podman-tui) TUI for Podman containers - [sen](https://github.com/TomasTomecek/sen) Terminal User Interface for docker engine - [sysz](https://github.com/joehillen/sysz) An fzf terminal UI for systemctl - [tdash](https://github.com/jessfraz/tdash) A terminal dashboard with stats from Google Analytics, GitHub, Travis CI, and Jenkins. Very much built specific to me - [TermUI](https://github.com/gizak/termui) Golang terminal dashboard - [trek](https://github.com/franckverrot/trek) ncurses explorer for Hashicorp Nomad clusters - [wander](https://github.com/robinovitch61/wander) HashiCorp Nomad terminal client - [WTF](https://github.com/senorprogrammer/wtf) The personal information dashboard for your terminal. - [zenith](https://github.com/bvaisvil/zenith) In terminal graphical metrics for your *nix system written in Rust ## Development - [austin-tui](https://github.com/P403n1x87/austin-tui) The top-like text-based user interface for Austin - [delta](https://github.com/dandavison/delta) A syntax-highlighting pager for git, diff, and grep output. - [gitui](https://github.com/extrawurst/gitui) blazing fast terminal-ui for git written in rust - [git-crecord](https://github.com/andrewshadura/git-crecord) interactive selective commit tool - [grv](https://github.com/rgburke/grv) Terminal interface for viewing git repositories - [jqp](https://github.com/noahgorstein/jqp) A TUI playground to experiment with jq - [lazygit](https://github.com/jesseduffield/lazygit) Simple terminal UI for git commands - [mitmproxy](https://www.mitmproxy.org) A free and open source interactive HTTPS proxy - [pyautogit](https://github.com/jwlodek/pyautogit) A terminal UI for managing git repositories, written using py_cui - [pudb](https://github.com/inducer/pudb) A console-based visual debugger for Python - [sls-dev-tools](https://github.com/Theodo-UK/sls-dev-tools) Dev Tools for the Serverless World - [tig](https://github.com/jonas/tig) Text-mode interface for git - [vctui](https://github.com/thebsdbox/vctui) Console interface for vCenter ## Editors - [amp](https://github.com/jmacdonald/amp) A complete text editor for your terminal - [helix](https://helix-editor.com/) A post-modern text editor. - [kakoune](http://kakoune.org/) A modern, modal text editor with focus on interactivity and efficiency - [micro](https://github.com/zyedidia/micro) A modern and intuitive terminal-based text editor - [o](https://github.com/xyproto/o) Text editor limited by VT100, suitable for programming, writing git commit messages and editing Markdown - [slap](https://github.com/slap-editor/slap) Sublime-like terminal-based text editor - [turbo](https://github.com/magiblot/turbo) An experimental text editor for the terminal, based on Scintilla and Turbo Vision - [zee](https://github.com/zee-editor/zee) A modern text editor for the terminal written in Rust ## Games - [2048-cli](https://github.com/tiehuis/2048-cli) The game 2048 for your Linux terminal - [bastet](https://github.com/fph/bastet) Evil falling block game - [botany](https://github.com/jifunks/botany/) Virtual plant buddy - [cbonsai](https://gitlab.com/jallbrit/cbonsai) A bonsai tree generator - [clidle](https://github.com/ajeetdsouza/clidle) Play Wordle in your terminal. Also works over SSH! - [Gameboy Emulator](https://github.com/gabrielrcouto/php-terminal-gameboy-emulator) A PHP Terminal GameBoy Emulator - [go-life](https://github.com/sachaos/go-life) Terminal based Conway's Game of Life - [Greed](https://gitlab.com/esr/greed) A game of consumption. Eat as much as you can before munching yourself into a corner! - [moon-buggy](https://github.com/seehuhn/moon-buggy) Drive some car across the moon - [MyMan](https://sourceforge.net/projects/myman/) MyMan is a video game for color and monochrome text terminals in the genre of Namco's Pac-Man - [NetHack](https://github.com/NetHack/NetHack) Dungeon exploration game - [nInvaders](http://ninvaders.sourceforge.net/) Space Invaders - [nSnake](https://github.com/alexdantas/nSnake) The classic snake game with textual interface - [nudoku](https://github.com/jubalh/nudoku) ncurses based sudoku game - [onx](https://github.com/vyalovvldmr/onx) Noughts & Crosses client-server game with your partner. Based on textual and python. - [pokete](https://github.com/lxgr-linux/pokete) A terminal based Pokemon like game - [steam-tui](https://github.com/dmadisetti/steam-tui) Just a simple TUI client for steamcmd. Allows for the graphical launching, updating, and downloading of steam games through a simple terminal client. - [sudoku-rs](https://github.com/MitchelPaulin/sudoku-rs) Sudoku built with tui-rs - [sweeper](https://github.com/igor47/sweeper) Minesweeper game using curtsies - [terminal-phase](https://gitlab.com/dustyweb/terminal-phase) Space shooter game that runs in your terminal! - [tinytetris](https://github.com/taylorconor/tinytetris) 80x23 terminal tetris! ## Libraries - [Ashen](https://github.com/colinta/Ashen) An Elm inspired framework written in Swift - [blessings](https://github.com/erikrose/blessings) A Python wrapper lib for ncurses that makes your code pretty to look at - [bubbletea](https://github.com/charmbracelet/bubbletea) A Go framework based on Elm to build functional and stateful TUI apps, complete with extensions known as [bubbles](https://github.com/charmbracelet/bubbles) - [CursedGL](https://github.com/saccharineboi/CursedGL) A notcurses-based software rasterizer inspired by OpenGL 1.X that renders directly to the terminal. - [FINAL CUT](https://github.com/gansm/finalcut) Library for creating terminal applications with text-based widgets - [FTXUI](https://github.com/ArthurSonzogni/FTXUI) 💻 C++ Functional Terminal User Interface. ❤️ - [gocui](https://github.com/jroimartin/gocui) Minimalist Go package aimed at creating Console User Interfaces - [gui.cs](https://github.com/migueldeicaza/gui.cs) Console-based user interface toolkit for .NET applications - [imtui](https://github.com/ggerganov/imtui) An immediate mode text-based user interface library, supporting 256 ANSI colors and mouse/keyboard input. - [ncurses](https://www.gnu.org/software/ncurses/) - [nimwave](https://github.com/ansiwave/nimwave) Build text interfaces for the terminal or browser - [notcurses](https://github.com/dankamongmen/notcurses) blingful character graphics/TUI library. definitely not curses - [pterm](https://github.com/pterm/pterm/) A modern go module to beautify console output. Featuring charts, progressbars, tables, trees, and much more! It's completely configurable and 100% cross-platform compatible. - [py_cui](https://github.com/jwlodek/py_cui) Python library aimed at making widget based TUI/CUI interfaces as simple as possible. Supports standard widgets and popups like menus, textboxes, forms, file explorers etc. - [pytermgui](https://github.com/bczsalba/pytermgui) A simple yet powerful TUI framework for your Python (3.7+) applications. - [Python Prompt Toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) Library for building powerful interactive command line applications in Python - [Rich](https://github.com/willmcgugan/rich) is a Python library for rich text and beautiful formatting in the terminal. - [tcell](https://github.com/gdamore/tcell) Tcell is an alternate terminal package, similar in some ways to termbox, but better in others. - [textual](https://github.com/willmcgugan/textual) is a TUI (Text User Interface) framework for Python inspired by modern web development. - [Thermage](https://github.com/thermage/thermage) Thermage is a PHP library that provides a fluent and incredibly powerful, object-oriented interface for customizing CLI output text color, background, formatting, theming and more. - [tui-go](https://github.com/marcusolsson/tui-go) A UI library for terminal applications (deprecated) - [tui-rs](https://github.com/fdehau/tui-rs) Terminal user interfaces and dashboards using Rust - [tuibox](https://github.com/Cubified/tuibox) A single-header terminal UI library, capable of creating mouse-driven, interactive applications on the command line. - [tview](https://github.com/rivo/tview/) Terminal UI library with rich, interactive widgets — written in Golang - [tvision](https://github.com/magiblot/tvision) A modern port of Turbo Vision 2.0, cross-platform and Unicode support. - [UniCurses](https://github.com/unicurses/unicurses) A Python module that is aimed at providing the Curses functionality on all operating systems. - [urwid](https://github.com/urwid/urwid) A console user interface library for Python on Linux, OSX, Cygwin or other unix-like OS. ## Messaging - [aerc](https://aerc-mail.org/) Email client - [Devzat](https://github.com/quackduck/devzat) Chat over SSH, written in Golang with self-hosting ability. - [discordo](https://github.com/ayntgl/discordo) A lightweight, secure, and feature-rich Discord terminal client - [Gomphotherium](https://github.com/mrusme/gomphotherium) A command line Mastodon client. - [gomuks](https://github.com/tulir/gomuks) Matrix client - [gord](https://github.com/yellowsink/gord) TUI discord client. updated fork of the now-outdated cordless. - [matterhorn](https://github.com/matterhorn-chat/matterhorn) A Mattermost terminal client. - [mcabber](https://mcabber.com/) XMPP (Jabber) client - [meli](https://meli.delivery/) Email client - [Mutt](https://gitlab.com/muttmua/mutt) Email client - [sclack](https://github.com/haskellcamargo/sclack) Slack terminal client - [scli](https://github.com/isamert/scli/) A simple terminal user interface for signal messenger - [siggo](https://github.com/derricw/siggo) A terminal ui for signal-cli, written in Go - [Slack-term](https://github.com/erroneousboat/slack-term) Slack client for your terminal - [sup](https://github.com/sup-heliotrope/sup) A curses threads-with-tags style email client - [Superhighway84](https://github.com/mrusme/superhighway84) USENET-inspired decentralized internet discussion system - [toot](https://github.com/ihabunek/toot) Mastodon CLI & TUI - [tut](https://github.com/RasmusLindroth/tut) Mastodon TUI client - [Weechat](https://weechat.org/) Extensible chat client ## Miscellaneous - [adbtuifm](https://github.com/darkhz/adbtuifm) A TUI file manager for Android, based on the Android Debug Bridge(ADB). - [arttime](https://github.com/reportaman/arttime) An app that brings beauty of text-art together with functionality of clock, timer, and pattern-based time manager. - [asciiMol](https://github.com/dewberryants/asciiMol) Curses based ASCII molecule viewer for linux terminals. - [broot](https://dystroy.org/broot/) A new way to see and navigate directory trees - [diary](https://github.com/actuday6418/Diary) A diary app written in Rust that encrypts both text and file data, and can decrypt and build a rich HTML representation of your diary when required. - [dive](https://github.com/wagoodman/dive) A tool for exploring each layer in a docker image - [ec2-instance-selector](https://github.com/aws/amazon-ec2-instance-selector) A CLI tool and go library which recommends instance types based on resource criteria like vcpus and memory - [emu2](https://github.com/dmsc/emu2) A simple DOS emulator for the Linux text console, supporting basic DOS system calls and console I/O. - [fzf](https://github.com/junegunn/fzf) A general-purpose command-line fuzzy finder - [gif-for-cli](https://github.com/google/gif-for-cli) Convert a gif into ASCII - [gobang](https://github.com/TaKO8Ki/gobang) A cross-platform TUI database management tool written in Rust - [gpg-tui](https://github.com/orhun/gpg-tui) A terminal user interface for GnuPG - [jrnl](https://jrnl.sh/) Collect your thoughts and notes without leaving the command line. human-friendly. future-proof. secure. - [lnav](https://lnav.org/) An advanced log file viewer for the small-scale - [mapscii](https://github.com/rastapasta/mapscii) Braille & ASCII world map renderer for your console - [neoss](https://github.com/PabloLec/neoss) Socket statistics visualization and explanation tool for Unix systems. - [nmtui](https://developer.gnome.org/NetworkManager/stable/nmtui.html) ncurses network manager - [oha](https://github.com/hatoo/oha) HTTP load generator - [profanity](https://github.com/profanity-im/profanity) A cross-platfrom XMPP client. - [ncdu](https://dev.yorhel.nl/ncdu) disk usage analyzer with an ncurses interface - [recoverpy](https://github.com/PabloLec/recoverpy) A TUI to recover overwritten or deleted data. - [rocket.term](https://github.com/gerstner-hub/rocket.term) Text based chat client for the Rocket.chat messaging solution. - [s-tui](https://github.com/amanusk/s-tui) Terminal-based CPU stress and monitoring utility - [tcpterm](https://github.com/sachaos/tcpterm) tcpterm is a packet visualizer in TUI. - [termdbms](https://github.com/mathaou/termdbms) A TUI for viewing and editing database files. - [termshark](https://github.com/gcla/termshark) Terminal UI for tshark - [thokr](https://github.com/coloradocolby/thokr) a sleek typing tui written in rust - [ttyper](https://github.com/max-niederman/ttyper) Terminal-based typing test - [vifm](https://github.com/vifm/vifm) A TUI file manager with vi-keybindings and other vim like behaviour. - [wego](https://github.com/schachmat/wego) Weather app - [wavemon](https://github.com/uoaerg/wavemon) A wireless device monitoring application - [wttr.in](https://github.com/chubin/wttr.in) The right way to check the weather - [xplr](https://github.com/sayanarijit/xplr) A hackable, minimal, fast TUI file explorer, stealing ideas from nnn and fzf. ## Multimedia - [chafa](https://hpjansson.org/chafa/) A powerful utility that converts image data, including animated GIFs, into graphics formats or ANSI/Unicode character art suitable for display in a terminal. - [cmdpxl](https://github.com/knosmos/cmdpxl) Totally practical command-line image editor - [cmus](https://cmus.github.io/) A small, fast and powerful console music player for Unix-like operating systems. - [favicon-editor](https://github.com/xyproto/favicon-editor) Spartan grayscale favicon editor - [image-sorter](https://github.com/jgalat/image-sorter) Terminal user interface for sorting images using key bindings written in Rust - [invidtui](https://github.com/darkhz/invidtui) A TUI Invidious client for Windows, Linux and MacOS, that fetches and plays audio/video from an invidious instance. Supports viewing and playing from playlists and channels as well. - [mps-youtube](https://github.com/mps-youtube/mps-youtube) Terminal based YouTube player and downloader - [mpvc](https://github.com/gmt4/mpvc) A mpc-like control interface for mpv - [ncspot](https://github.com/hrkfdn/ncspot) Cross-platform ncurses Spotify client written in Rust - [pyradio](https://github.com/coderholic/pyradio) TUI web radio player with thousands of stations from around the world - [roku-cli](https://github.com/winsbe01/roku-cli) A command line TUI remote for Roku - [soundcloud2000](https://github.com/grobie/soundcloud2000) A terminal client for soundcloud - [spotify-tui](https://github.com/Rigellute/spotify-tui) Spotify for the terminal written in Rust - [spotui](https://github.com/ceuk/spotui) Spotify client written in Python - [timg](https://github.com/hzeller/timg) A terminal image viewer - [tizonia-openmax-il](https://github.com/tizonia/tizonia-openmax-il) Command-line cloud music player for Linux with support for Spotify, Google Play Music, YouTube, SoundCloud, Dirble, Plex servers and Chromecast devices - [ytui-music](https://github.com/sudipghimire533/ytui-music) Listen to music from youtube. Configurable, minimal, lightweight, private & beautiful music client. ## Productivity - [calcure](https://github.com/anufrievroman/calcure) Modern TUI calendar and task manager with minimal and customizable UI. - [calcurse](https://calcurse.org/) calendar and scheduling application for the command line - [goful](https://github.com/anmitsu/goful) a powerful TUI file manager written in Go - [hledger-ui](https://github.com/simonmichael/hledger) A fast TUI for browsing double entry bookkeeping data - [h-m-m](https://github.com/nadrad/h-m-m) Hackers Mind Map - [khal](https://github.com/pimutils/khal) A standards based CLI calendar program, able to synchronize with CalDAV servers - [lf](https://github.com/gokcehan/lf) A terminal file manager written in Go with heavy inspiration from ranger file manager. - [mcfly](https://github.com/cantino/mcfly) Intelligent context-aware search engine for your shell history - [patat](https://github.com/jaspervdj/patat) Terminal-based presentations using Pandoc - [pdiary](https://github.com/manipuladordedados/pdiary) A simple terminal diary journal application written in Python with encryption support - [procmux](https://github.com/napisani/procmux) - a TUI for running multiple commands in parallel in easily switchable terminals - [ranger](https://github.com/ranger/ranger) A VIM-inspired filemanager for the console - [sc-im](https://github.com/andmarti1424/sc-im) An ncurses spreadsheet program for terminal. Reignited version of sc - [taskline](https://github.com/perryrh0dan/taskline) Tasks, boards & notes for the command-line habitat - [taskwarrior-tui](https://github.com/kdheepak/taskwarrior-tui) A Terminal User Interface for Taskwarrior - [tmux](https://github.com/tmux/tmux) Terminal multiplexer - [todoman](https://github.com/pimutils/todoman) A simple, standards-based (ics, DAV), cli task-manager - [topydo](https://github.com/topydo/topydo) A powerful todo list application using the todo.txt format - [TUIFIManager](https://github.com/GiorgosXou/TUIFIManager) A cross-platform terminal-based file manager *(supports termux)* - [TUI_ProjectManager](https://github.com/NicoDblc/TUI_ProjectManager) A simple project-based todo list written in Rust - [Visidata](https://github.com/saulpw/visidata) A terminal spreadsheet multitool for discovering and arranging data - [zelliji](https://github.com/zellij-org/zellij) A terminal workspace with batteries included - [Vifm](https://vifm.info) File manager with Vim bindings and scripting/configuration style - [zeit](https://github.com/mrusme/zeit) A command line tool for tracking time spent on activities. ## Web - [bombadillo](https://bombadillo.colorfield.space/) A TUI browser for the non-web: Gopher, Gemini, Finger - [browsh](https://github.com/browsh-org/browsh) A fully-modern text-based browser, rendering to TTY and browsers - [Canard](https://github.com/mrusme/canard) A command line TUI client for the [Journalist](https://github.com/mrusme/journalist) RSS aggregator. - [hackernews-TUI](https://github.com/aome510/hackernews-TUI) A Terminal UI to browse Hacker News - [haxor-news](https://github.com/donnemartin/haxor-news) Browse Hacker News like a haxor: A Hacker News command line interface (CLI) - [LYNX](https://lynx.invisible-island.net/) A text based Terminal browser - [newsboat](https://github.com/newsboat/newsboat) An RSS/Atom feed reader for the text console - [Rainbowstream](https://github.com/orakaro/rainbowstream) A smart and nice Twitter client on terminal written in Python - [rttt](https://gitlab.com/BlackEdder/rttt) A Hackernews, RSS and Reddit reader for the terminal written in C++. - [rtv](https://github.com/michael-lazar/rtv) Browse Reddit from your terminal - [tblogs](https://github.com/ezeoleaf/tblogs) Read and browse development blogs from your terminal - [twterm](https://github.com/ryota-ka/twterm) A full-featured TUI Twitter client - [w3m](https://github.com/tats/w3m) A text-mode WWW browser --- There's a crazy amount of TUI projects out there, and we can't list them all (though we try!) For more, see awesome-opensource's [TUI Projects](https://awesomeopensource.com/projects/tui) page. Looking for lightweight but not necessarily TUI? check out mayfrost's [alternatives list](https://github.com/mayfrost/guides/blob/master/ALTERNATIVES.md)! Enjoy Vim keybinds and don't want to learn new ones? check out the [Big Pile of Vim-like](https://vim.reversed.top) First-hand reviews for a lot of these tools and many, many more at k.mandla's [Inconsolation blog](https://inconsolation.wordpress.com/index/). The site also has a "surprise me with a random tool" link! [Tim's blog](http://tim.thechases.com/posts/cli/software-for-a-command-line-world/) cover more tools for no X, over ssh, and all CLI (not necessarily TUI tho).