Przejdź do treści

30 narzędzi terminalowych (TUI) na macOS: moja lista

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.

Baner: 30 narzędzi terminalowych (TUI) na macOS

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ł curses z biblioteki standardowej, czyli nakładka na ncurses (np. ranger)
  • Go:
    • bubbletea (np. glow)
    • tview (np. k9s)
    • gocui (lazydocker i lazygit używają forka autora obu narzędzi)
  • Rust: ratatui (np. gping, yazi, bottom, gitui)
  • Node.js:
    • blessed, biblioteka w stylu ncurses, bez nowego wydania od 2015 roku (np. vtop)
    • Ink, w której interfejs składa się z komponentów React (np. Gemini CLI)

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.

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+T i Alt+C dział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.

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.

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.

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ń.

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.

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.

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! 👋