SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 Shell TUI Projects
-
Project mention: A set of smooth, fzf-powered shell aliases&functions for systemctl | news.ycombinator.com | 2025-09-15
The linked inspiration project is blowing my mind.
https://github.com/joehillen/sysz/blob/master/sysz
A TUI in pure shell script?? I read the script and don't even see how it's done.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
wikiman
Wikiman is a universal offline documentation search engine for manual pages, tldr-pages, ArchWiki, Gentoo Wiki, DevDocs, and FreeBSD documentation
-
-
sway-launcher-desktop
TUI Application launcher with Desktop Entry support. Made for SwayWM, but runs anywhere
-
dorothy
🧙🏻♀️ Terminal ecosystem, featuring: ① Framework for cross-shell/cli/tui scripting: bash/nu/deno/unix/… ② Overlay for cross-shell/env/dotfile interop: bash/zsh/fish/nu/… ③ Manager for cross-source packages/apps/utilities: github/brew/apt/flatpak/appimage/cargo/npm/… ④ Hundreds of cross-os commands: macos/linux/windows, x86/arm/riscv.
Project mention: Whohas – Command-line utility for cross-distro, cross-repository package search | news.ycombinator.com | 2026-05-01Dorothy, https://github.com/bevry/dorothy has a `setup-util` command that can install packages on any system, eg. `setup-util-bat` behind the scenes can do apt, aur, or github; eg. `setup-util --cli=bat APT=bat AUR=bat …` — works on windows, macos, linux; supports dozens of package systems; installs, upgrades, and uninstalls
-
-
jj-fzf
Text UI for Jujutsu based on fzf, centering around the jj log with key bindings for common operations
I find JJ to make things much easier for me than Git:
- No staging needed, edit your commit directly in your working directory
- Rebasing is automatic, I regularly edit historic commits and the messages
- jj absorb will automatically split and merge hunks into related ancestry commits
- Defer conflict resolution; many conflicts are resolved later by splitting/squashing/moving commits/hunks further (possible only for first-class conflicts)
- No interactive rebase needed, since jj commands automatically rebase while editing historic commits, it feels like constantly living within an interactive rebase
- Easily refer to the same revision (change) across rebase commands by using a jj change_id, without scribbling down Git commit hashes that change across a rebase
- Easily undo (+redo) your last commands through the jj operation log without having to backup the entire git repo at each step
And jj-fzf (https://github.com/tim-janik/jj-fzf/) gives me every useful jj command with a single hotkey (e.g. Ctrl-P for push, Ctrl-N for a new commit with 1+ parents, Alt-B to edit bookmarks/tags, Alt-R to rebase, Alt-Z for undo, …) while browsing the log with commit+diff preview.
-
-
Apple-Music-CLI-Player
A simple command-line Apple Music controller script which includes a "Now Playing" widget function, a playback function, and a list-out function for your Mac's Music.app library, written in sh.
-
-
purr
purr is a zsh CLI tool for viewing and searching through Android logcat output. It leverages fzf to provide a simple yet powerful user interface, fuzzy-finding capabilities, and much more.
-
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
-
-
-
-
-
-
MusicPlayerPlus
Featureful ncurses based MPD client inspired by ncmpc with integration for Beets, spectrum visualization,Bandcamp/Soundcloud, asciimatics, cantata, and more
-
ytmp
a shell script for searching, playing, downloading, and keeping track of music from youtube and local files with extensive queue management using fzf, vim, or cli
-
-
-
toolbox
Bash scripts providing a collection of terminal applications in a simple UI for Manjaro and Arch based systems (Bash TUI) (by puxplaying)
Shell TUI discussion
Shell TUI related posts
-
I found a useful Git one liner buried in leaked CIA developer docs
-
Show HN: TUI for managing XDG default applications
-
Show HN: Nori CLI, a better interface for Claude Code (no flicker)
-
What I've Learned from JJ
-
Shunpo: Minimalist bash tool to make directory navigation a little bit faster
-
Systemd-pilot: Desktop application for managing systemd services
-
bashsimplecurses: Simple curses library made in bash to draw terminal interfaces
-
A note from our sponsor - SaaSHub
www.saashub.com | 8 Jun 2026
Index
What are some of the best open-source TUI projects in Shell? This list will help you:
| # | Project | Stars |
|---|---|---|
| 1 | sysz | 1,852 |
| 2 | wikiman | 967 |
| 3 | tmux-fzf-url | 714 |
| 4 | sway-launcher-desktop | 677 |
| 5 | dorothy | 555 |
| 6 | pseudo3d | 271 |
| 7 | jj-fzf | 242 |
| 8 | cylon | 201 |
| 9 | Apple-Music-CLI-Player | 169 |
| 10 | FuzPad | 161 |
| 11 | purr | 160 |
| 12 | ipfs-chat | 151 |
| 13 | snake | 113 |
| 14 | bash-tui-toolkit | 108 |
| 15 | dots | 106 |
| 16 | bashmultitool | 100 |
| 17 | fml | 99 |
| 18 | MusicPlayerPlus | 98 |
| 19 | ytmp | 68 |
| 20 | sourcedialog | 57 |
| 21 | DistroHopper | 53 |
| 22 | toolbox | 32 |
| 23 | shmenu | 29 |