30 narzędzi, które zamieniają terminal w wygodne okienkowe aplikacje: Git bez pamiętania flag, monitor zasobów z wykresami, podgląd JSON-a i Markdowna. Każde z nagraniem i komendami instalacji dla macOS, Linuksa i Windowsa.
Co to jest TUI?
TUI, czyli Text-based User Interface, to interfejs, który rysuje okna, tabele i wykresy wprost w terminalu, używając do tego znaków tekstowych i kolorów. Nie ma tu okien systemowych, a mysz bywa obsługiwana, ale jest opcjonalna. Jest za to siatka znaków, którą program odświeża wiele razy na sekundę.
Tu jest przykład takiego interfejsu. Po lewej ramka ze znaków Unicode, po prawej to samo w samym ASCII, jak na starych terminalach:
┌─────────────────────┐ +---------------------+
│ Hello, TUI World! │ | Hello, TUI World! |
└─────────────────────┘ +---------------------+
Skąd te ramki i kolory? Terminal rozumie sekwencje sterujące (ANSI escape
codes), którymi program ustawia kursor, kolor i styl. Ramki rysuje się znakami
z bloku Unicode „Box Drawing” (─│┌┐), a starsze narzędzia używają trybu
DEC Special Graphics, w którym zwykłe litery zmieniają się w kreski.
Oczywiście można samodzielnie napisać narzędzie, które będzie rysowało interfejs w terminalu. Ale po co wymyślać koło na nowo, skoro są gotowe biblioteki.
Każdy popularny język ma swoje biblioteki. Oto te, na których powstały narzędzia z tej listy:
- C: ncurses (skrót od „new curses”),
klasyka od lat 90. (np.
htop,nnn,tig) - Python: moduł
cursesz biblioteki standardowej, czyli nakładka na ncurses (np.ranger) - Go:
- Rust:
ratatui(np.gping,yazi,bottom,gitui) - Node.js:
Dlaczego TUI, a nie GUI albo zwykłe CLI?
TUI to kompromis między komendą w terminalu a aplikacją okienkową. Działa wszędzie tam, gdzie terminal, także na serwerze przez SSH, a przy tym pokazuje dostępne opcje na ekranie, więc nie trzeba pamiętać flag:
| Cecha | CLI | TUI | GUI |
|---|---|---|---|
| Obsługa | komendy i flagi | klawiatura, opcje widać na ekranie | mysz i klawiatura |
| Działa przez SSH | tak | tak | nie |
| Zużycie zasobów | minimalne | małe | duże |
| Trzeba pamiętać flagi | tak | nie | nie |
| Nadaje się do skryptów | tak | nie | nie |
| Przykład | git log --oneline |
lazygit |
GitHub Desktop |
Do skryptów i automatyzacji nadal służy zwykłe CLI. TUI sprawdza się tam, gdzie pracujesz ręcznie i chcesz widzieć stan na bieżąco: repozytorium, procesy, pliki, kontenery.
Let’s go!
Narzędzia pogrupowałem według kategorii, aby łatwiej było znaleźć to, czego potrzebujesz. W obrębie kategorii są posortowane alfabetycznie.
Wszystkie narzędzia z listy działają na macOS. Przy każdym podaję też komendy dla Linuksa i Windowsa, jeśli narzędzie tam działa.
Praca z Git i kontenerami
Trzy narzędzia, które zastępują mi pamiętanie flag git, docker i kubectl.
k9s
Zarządzanie Kubernetes z jednego ekranu: lista podów, logi, opis zasobu,
wejście do kontenera i usuwanie zasobów bez wpisywania kubectl get,
kubectl describe i kubectl logs na zmianę. Jeśli pracujesz z Kubernetesem,
to jest to must-have.
-
Instalacja
# macOS brew install k9s # Linux (dowolna dystrybucja) go install github.com/derailed/k9s@latest # Windows winget install Derailed.k9s -
Źródła
lazydocker
Interfejs do Dockera od autora lazygit. Kontenery, obrazy, wolumeny i logi na
jednym ekranie, z restartem i usuwaniem pod jednym klawiszem. Dobrze działa też
z projektami na docker compose.
-
Instalacja
# macOS brew install lazydocker # Linux (dowolna dystrybucja) go install github.com/jesseduffield/lazydocker@latest # Windows winget install JesseDuffield.Lazydocker -
Źródła
lazygit
Potężna aplikacja TUI ulepszająca pracę z repozytorium Git. Stage’owanie pojedynczych linii, interaktywny rebase, rozwiązywanie konfliktów i przeglądanie historii bez wychodzenia z terminala. To narzędzie najbardziej zmieniło moją codzienną pracę z Git.
-
Instalacja
# macOS brew install lazygit # Linux (Debian 13+, Ubuntu 25.10+; starsze: binarka z GitHuba) sudo apt install lazygit # Windows winget install JesseDuffield.lazygit -
Konfiguracja: czytelniejsze diffy z delta (
brew install git-delta) w pliku~/Library/Application Support/lazygit/config.yml(na Linuksie~/.config/lazygit/config.yml)git: diffRenderers: - command: delta --dark --paging=never -
Źródła
Narzędzia sieciowe i diagnostyka
Dwa narzędzia, po które sięgam, gdy coś nie odpowiada albo coś zajmuje port.
gping
Ping z wykresem na żywo. Narzędzie pożyteczne do dashboardów, gdzie można monitorować ping do serwera. Potrafi pingować kilka hostów naraz i rysować je na jednym wykresie, co od razu pokazuje, który z nich ma problem. Napisane w Rust.
-
Instalacja
# macOS brew install gping # Linux (dowolna dystrybucja) cargo install gping # Windows winget install orf.gping -
Źródła
witr
Nazwa to skrót od „why is this running”. Podajesz proces, port, kontener albo
plik, a witr pokazuje łańcuch, który to uruchomił: proces rodzica, usługę
systemową, kontener. Odpowiada na pytanie „kto zajął port 3000”, zanim
zaczniesz szukać po lsof i ps.
-
Instalacja
# macOS i Linux brew install witr # Windows i FreeBSD: binarka ze strony wydań na GitHubie -
Źródła
Przeglądanie zawartości plików
Trzy przeglądarki do formatów, które w gołym cat czyta się źle.
glow
Podgląd plików Markdown z renderowaniem nagłówków, list, tabel i bloków kodu.
Uruchomione bez argumentów otwiera przeglądarkę plików .md z bieżącego
katalogu, więc da się przejrzeć całą dokumentację projektu bez opuszczania
terminala. Ma wsparcie dla skrótów klawiaturowych w stylu less.
-
Instalacja
# macOS brew install glow # Linux (Debian 13+; starsze: repozytorium apt od Charm) sudo apt install glow # Windows winget install charmbracelet.glow -
Źródła
jless
Przeglądarka plików JSON i YAML. Zwija i rozwija zagnieżdżone obiekty,
wyszukuje po kluczach i wartościach, kopiuje ścieżkę do zaznaczonego pola.
Przyjmuje ścieżkę do pliku albo dane ze standardowego wejścia
(curl ... | jless).
-
Instalacja
# macOS i Linux brew install jless # Linux (dowolna dystrybucja, przez menedżer pakietów Rusta) cargo install jless # Windows: brak wsparcia (autor zapowiada) -
Źródła
jnv
Interaktywny filtr JSON ze składnią jq. Pod spodem działa jaq, czyli
implementacja jq w Rust, więc samo jq nie jest potrzebne. Wpisujesz
wyrażenie jq, a wynik odświeża się na żywo, więc filtr da się dopracować
bez uruchamiania komendy w kółko. Czyta plik albo standardowe wejście.
-
Instalacja
# macOS i Linux brew install jnv # Windows (przez menedżer pakietów Rusta) cargo install jnv -
Źródła
Wyszukiwanie i praca z plikami
Pięć narzędzi od znajdowania plików, przez ich edycję, po sprzątanie dysku.
fzf
Interaktywny fuzzy finder: dostaje na wejściu dowolną listę i pozwala ją
przeszukać, wpisując kilka liter. Najwięcej daje integracja z shellem (u mnie
fish): Ctrl+R
przeszukuje historię komend, Ctrl+T wstawia ścieżkę pliku, Alt+C zmienia
katalog. Wiele innych narzędzi TUI używa fzf pod spodem.
-
Instalacja
# macOS brew install fzf # Linux (Debian/Ubuntu) sudo apt install fzf # Windows winget install junegunn.fzf -
Konfiguracja: skróty
Ctrl+R,Ctrl+TiAlt+Cdziałają dopiero po dodaniu jednej linii do konfiguracji shella# fish (~/.config/fish/config.fish) fzf --fish | source # zsh (~/.zshrc) source <(fzf --zsh) # bash (~/.bashrc) eval "$(fzf --bash)" -
Źródła
mc
Midnight Commander, dwupanelowy menedżer plików w duchu Norton Commandera. Kopiowanie i przenoszenie między panelami, wbudowany podgląd i edytor, połączenia FTP i SFTP. Wspiera skiny.
-
Instalacja
# macOS brew install midnight-commander # Linux (Debian/Ubuntu) sudo apt install mc # Windows winget install GNU.MidnightCommander -
Źródła
ncdu
Analiza zajętości dysku z nawigacją po katalogach. Bardzo pomocne, aby szybko zbadać, jaki katalog zajmuje najwięcej przestrzeni dyskowej, i usunąć go bez wychodzenia z programu.
-
Instalacja
# macOS brew install ncdu # Linux (Debian/Ubuntu) sudo apt install ncdu # Windows: brak natywnej wersji - uruchom w WSL -
Źródła
vim
Edytor tekstu, który w terminalu jest od zawsze. Działa w trybach (normalny,
wstawiania, komend), więc poruszanie się i edycja idą bez odrywania rąk od
klawiatury, a okno dzieli się na kilka plików naraz. Kod piszę w VS Code, ale
szybkie poprawki w konfiguracji albo na serwerze robię w vim. Jest w macOS
od razu, a jego poprzednika vi znajdziesz praktycznie na każdym serwerze.
Pisałem też o tym,
skąd biorą się pliki *.swp.
-
Instalacja
# macOS (jest w systemie; nowsza wersja z Homebrew) brew install vim # Linux (Debian/Ubuntu) sudo apt install vim # Windows winget install vim.vim -
Źródła
yazi
Nowoczesny menedżer plików napisany w Ruście. Trzy kolumny (rodzic, bieżący
katalog, podgląd), podgląd obrazków wprost w terminalu, skróty klawiaturowe w
stylu Vima. Duże możliwości konfiguracyjne i wsparcie dla pluginów.
Ikony plików i katalogów wymagają w terminalu fontu z rodziny
Nerd Fonts, inaczej zamiast nich zobaczysz
kwadraty (np. brew install --cask font-fira-code-nerd-font, a potem wybór
tego fontu w ustawieniach terminala).
-
Instalacja
# macOS brew install yazi # Linux (dowolna dystrybucja) cargo install --locked yazi-fm yazi-cli # Windows winget install sxyazi.yazi -
Źródła
Monitoring zasobów maszyny
Ta kategoria zawiera kilka narzędzi, które robią to samo: pokazują CPU,
pamięć, dyski i sieć. Różnią się zakresem i wyglądem: htop to klasyk, który
jest w repozytorium każdej dystrybucji, btop daje najwięcej danych i wykresów,
bottom jest lżejszy, a mactop i nvtop są wyspecjalizowane. Sam trzymam
na macu btop, a na serwerach wystarcza mi htop.
| Narzędzie | Język | Co pokazuje | Kiedy po nie sięgnąć |
|---|---|---|---|
htop |
C | procesy, CPU, pamięć | na serwerach, bo jest w repozytorium każdej dystrybucji |
btop |
C++ | CPU, pamięć, dyski, sieć, procesy | gdy chcesz wszystkiego na jednym ekranie |
bottom |
Rust | CPU, pamięć, sieć, dyski, temperatury | gdy btop to za dużo |
bpytop |
Python | to samo co btop |
gdy nie da się zainstalować btop |
mactop |
Go | rdzenie E i P, GPU, Neural Engine, pobór mocy | na macu z Apple Silicon |
nvtop |
C | GPU i procesy na karcie | przy pracy z kartą graficzną |
vtop |
Node.js | CPU i pamięć | jako ciekawostka, projekt porzucony |
bottom (btm)
Nowoczesny monitor systemu napisany w Ruście. Wykresy CPU, pamięci i sieci,
lista procesów z drzewem, temperatury i dyski. Lżejszy od btop i z bardziej
oszczędnym interfejsem.
-
Instalacja
# macOS brew install bottom # Linux (dowolna dystrybucja) cargo install bottom # Windows winget install Clement.bottom -
Źródła
bpytop
Poprzednik btop, napisany w Pythonie. Autor rozwija już tylko btop i do
niego odsyła, więc bpytop ma sens jedynie tam, gdzie nie da się postawić
binarki btop, a Python już jest.
-
Instalacja
# macOS brew install bpytop # Linux (Debian/Ubuntu) sudo apt install bpytop # Windows: brak wsparcia - autor poleca btop -
Źródła
btop
Monitor zasobów CPU/RAM/dysku/sieci z wykresami historii, filtrowaniem
procesów i motywami kolorów. Następca bpytop, przepisany na C++, więc sam
zużywa niewiele zasobów.
-
Instalacja
# macOS brew install btop # Linux (Debian/Ubuntu) sudo apt install btop # Windows (port btop4win) winget install aristocratos.btop4win -
Źródła
htop
Monitor procesów. Bardziej zaawansowany niż standardowy top: kolorowe paski
CPU i pamięci, drzewo procesów, sortowanie i zabijanie procesów klawiszem
zamiast wpisywania PID-u. Jest w repozytoriach każdej dystrybucji, więc to
pierwsze, co instaluję na nowym serwerze.
-
Instalacja
# macOS brew install htop # Linux (Debian/Ubuntu) sudo apt install htop # Windows: brak natywnej wersji - uruchom w WSL -
Źródła
mactop
Monitor zasobów pod Apple Silicon: obciążenie rdzeni E i P, GPU, Neural
Engine, pobór mocy i temperatura, czyli to, czego htop na macu nie pokaże.
Czyta dane z natywnych API Apple, więc nie wymaga sudo.
-
Instalacja
# macOS (tylko Apple Silicon) brew install mactop # Linux i Windows: brak - mactop czyta liczniki # wydajności układów Apple Silicon -
Źródła
nvtop
Monitor GPU w stylu htop: obciążenie, pamięć i procesy korzystające z karty.
Obsługuje NVIDIA, AMD, Intel i kilku mniejszych producentów. Wsparcie dla
układów Apple autor opisuje jako ograniczone i wciąż rozwijane.
-
Instalacja
# macOS (wsparcie eksperymentalne) brew install nvtop # Linux (Debian/Ubuntu) sudo apt install nvtop # Windows: brak natywnej wersji - uruchom w WSL2 -
Źródła
vtop
Monitor w Node.js z wykresami CPU i pamięci rysowanymi znakami Braille’a. Projekt nie jest rozwijany od 2018 roku, więc traktuj go jako ciekawostkę, a nie narzędzie na co dzień.
-
Instalacja
# macOS, Linux i Windows (wymaga Node.js) npm install -g vtop -
Źródła
Inne narzędzia warte uwagi
To lista projektów, które są interesujące, natomiast osobiście z nich nie korzystam. Przy każdym piszę, co używam zamiast niego.
fx
Interaktywna przeglądarka JSON z filtrowaniem w składni JavaScriptu (np.
.items.map(x => x.name)). Z tej kategorii używam jless.
-
Instalacja
# macOS brew install fx # Linux (dowolna dystrybucja) go install github.com/antonmedv/fx@latest # Windows scoop install fx # Wersja z npm działa tylko nieinteraktywnie (bez TUI) -
Źródła
gitui
Alternatywa dla lazygit napisana w Ruście, z zakładkami, które są wygodne do
przeglądania różnych sekcji repozytorium. Szybsza na bardzo dużych
repozytoriach. Z tej kategorii używam lazygit.
-
Instalacja
# macOS brew install gitui # Linux (dowolna dystrybucja) cargo install gitui # Windows scoop install gitui -
Źródła
lf
Menedżer plików napisany w Go, wzorowany na ranger, ale prostszy i
szybszy, bez zależności od Pythona. Z tej kategorii używam yazi.
-
Instalacja
# macOS brew install lf # Linux (Debian/Ubuntu) sudo apt install lf # Windows winget install gokcehan.lf -
Źródła
mole
Czyszczenie Maca z interaktywnym menu: cache, logi, pozostałości po
odinstalowanych aplikacjach, artefakty projektów (node_modules, target).
Ma też analizę zajętości dysku i podgląd stanu systemu na bieżąco.
Do analizy dysku używam ncdu, a sprzątam własnym skryptem
disk-cleanup.
-
Instalacja
# macOS brew install mole # Linux i Windows: brak - mole sprząta katalogi # i cache charakterystyczne dla macOS -
Źródła
nnn
Bardzo szybki i oszczędny menedżer plików napisany w C. Ma 8 kontekstów
(zakładek) i bookmarki definiowane zmienną środowiskową. Z tej kategorii
używam yazi.
-
Instalacja
# macOS brew install nnn # Linux (Debian/Ubuntu) sudo apt install nnn # Windows: brak natywnej wersji - uruchom w WSL -
Źródła
ranger
Menedżer plików w Pythonie z trzema kolumnami i skrótami z Vima. Pierwowzór
układu, który powielają lf i yazi. Ma podgląd plików z podświetlaniem
składni. Z tej kategorii używam yazi.
-
Instalacja
# macOS brew install ranger # Linux (Debian/Ubuntu) sudo apt install ranger # Windows: brak natywnej wersji - uruchom w WSL -
Źródła
termscp
Menedżer plików przez SSH/SFTP, FTP i S3, w układzie dwóch paneli: lokalny
i zdalny. Zapamiętuje połączenia, więc nie trzeba wpisywać hosta za każdym
razem. Z tej kategorii używam mc, który też łączy się przez SFTP.
-
Instalacja
# macOS brew install termscp # Linux (dowolna dystrybucja) cargo install termscp # Windows scoop install termscp -
Źródła
tig
Interaktywny interfejs do Git skupiony na przeglądaniu: historia, blame,
diff. Do edycji stanu repozytorium nadaje się gorzej, dlatego z tej kategorii
używam lazygit.
-
Instalacja
# macOS brew install tig # Linux (Debian/Ubuntu) sudo apt install tig # Windows: przez Git Bash (jest w zestawie Git for Windows) # albo w WSL -
Źródła
tmux
Multiplekser terminala: kilka okien i paneli w jednej sesji, która przeżywa
zerwane połączenie SSH. Z tej kategorii używam
iTerm2,
bo podział ekranu
mam w samej aplikacji, a sesji na zdalnych serwerach nie zostawiam. Jeśli
pracujesz przez SSH na stałe, tmux jest bez konkurencji.
-
Instalacja
# macOS brew install tmux # Linux (Debian/Ubuntu) sudo apt install tmux # Windows: brak natywnej wersji - uruchom w WSL -
Źródła
zellij
Multiplekser napisany w Ruście. Domyślnie bardziej przyjazny niż tmux:
pasek ze skrótami na dole ekranu, układy w plikach konfiguracyjnych, wsparcie
dla pluginów. Z tej kategorii używam iTerm2, z tego samego powodu co przy
tmux.
-
Instalacja
# macOS brew install zellij # Linux (dowolna dystrybucja) cargo install --locked zellij # Windows: brak wsparcia - uruchom w WSL -
Źródła
Podsumowanie
Jeśli nie chcesz instalować wszystkiego naraz, zacznij od pięciu narzędzi, które najbardziej zmieniły moją codzienną pracę w terminalu:
| Narzędzie | Co zastępuje |
|---|---|
lazygit |
ręczne git add -p i git rebase -i |
fzf |
przewijanie historii komend i szukanie plików przez find |
btop |
top i Monitor aktywności |
yazi |
Findera i chodzenie po katalogach przez cd i ls |
witr |
szukanie po lsof i ps, kto zajął port |
Wszystkie narzędzia, których używam na macu, zainstalujesz jedną komendą:
brew install btop fzf glow gping jless jnv k9s lazydocker lazygit \
midnight-commander ncdu witr yazi
A Ty? Czy masz narzędzie terminalowe, bez którego nie wyobrażasz sobie pracy?
Cya! 👋