vulp

To samo narzędzie multi-repo, w wersji pełnoekranowego interfejsu terminalowego. Cały workspace na jednym ekranie, obsługa z klawiatury, zero opuszczania terminala. Dla osób, które żyją w konsoli.

vulp
TL;DR

Pełnoekranowy interfejs terminalowy (TUI) do zarządzania całym warsztatem repozytoriów, sterowany wyłącznie z klawiatury. Cały workspace i jego stan na jednym ekranie, ten sam rdzeń co bezpromptowe CLI - bez opuszczania terminala.

Wprowadzenie

vulp to narzędzie do zarządzania warsztatem repozytoriów: kilkadziesiąt repo, które trzeba mieć pod kontrolą naraz. Ten case study dotyczy jego twarzy terminalowej - pełnoekranowego TUI, które pokazuje stan całego workspace'u na jednym ekranie i pozwala działać na nim wsadowo, nie ruszając ręki z klawiatury.

Kluczowe jest to, że TUI nie jest osobnym programem. Pod spodem siedzi ten sam rdzeń co bezpromptowe CLI z wyjściem JSON - to, którego używa automatyka. Człowiek i skrypt wołają tę samą logikę, tylko innym wejściem: jeden klawiszem, drugi z pipeline'u.

Dla tych, którzy żyją w konsoli

Część osób pracuje w terminalu i nie chce go opuszczać dla czegoś tak podstawowego jak przegląd repozytoriów. Jeśli cała robota dzieje się w konsoli, to otwieranie przeglądarki po to, żeby sprawdzić, gdzie są zmiany, jest wybiciem z rytmu. Narzędzie powinno być tam, gdzie już jesteś.

vulp to respektuje. Nie dokłada osobnego okna ani nie wymaga przełączania kontekstu - odpalasz je w tej samej konsoli, w której i tak siedzisz, dostajesz pełny obraz warsztatu i wracasz do pracy. Żadnego myszkowania, żadnego czekania na załadowanie strony.

Kontekst zamiast pętli git status

Kiedy masz kilkadziesiąt repozytoriów, sprawdzanie ich po kolei to pętla: wejdź do katalogu, git status, git fetch, wróć, następny. Dziesięć minut klikania, żeby dowiedzieć się, że zmiany czekają w trzech. Im więcej repo, tym mniej realne jest trzymanie tego w głowie.

vulp składa cały warsztat na jednym ekranie: które repo ma niezacommitowane zmiany, które wyprzedza zdalny branch, gdzie czeka pull, gdzie deploy rozjechał się z lustrem na serwerze. Zamiast wchodzić w każde z osobna, widzisz stan całości i działasz punktowo tam, gdzie coś wymaga uwagi.

Ręczna pętla vs vulp

ZadanieRęczna pętlavulp
Stan 40 repo40x cd + git statusjeden ekran
Commit i push przez wiele reporepo po repojedno zaznaczenie, jedno naciśnięcie
Rozjazd deployu z serweremręczne porównaniewykryte i pokazane
Statystyki kontrybucjiosobne poleceniaw tym samym widoku

To samo CLI, druga twarz

TUI to interaktywna skorupa nad rdzeniem, który obsługuje także bezpromptowe CLI. Skanowanie workspace'u, operacje wsadowe, obsługa PR-ów i issues, guardrale przed wypchnięciem złej rzeczy - to jeden zestaw logiki, niezależnie od tego, czy woła go człowiek klawiszem, czy skrypt w pipeline.

Dzięki temu nowa operacja pojawia się od razu w obu miejscach, a to, co robisz ręcznie w TUI, ma dokładnie te same zabezpieczenia co wywołanie z automatyki. Nie ma wersji dla człowieka i wersji dla skryptu, które rozjeżdżają się w czasie i łapią inne błędy.

input.rs · rust
match key {
    Key::Char('s') => app.sync_all(),
    Key::Char('r') => app.refresh(),
    Key::Char('q') => app.quit(),
    _ => {}
}

Skróty, których nie trzeba się uczyć

Dobre TUI da się obsługiwać bez czytania instrukcji. Skróty idą za tym, co robią: s jak sync, r jak refresh, q jak quit. Jeśli musisz pamiętać, że F7 robi commit, projekt interfejsu poszedł w złą stronę. vulp trzyma się tej zasady, żeby cały warsztat dało się ogarnąć palcami na klawiaturze, bez ściągawki obok.

Druga połowa komfortu to bezpieczeństwo. Operacje wsadowe są wygodne dokładnie do momentu, w którym jednym naciśnięciem wypychasz coś złego do dziesięciu repo naraz. Dlatego guardrale ze wspólnego rdzenia stoją między Tobą a takim ruchem - te same, które chronią wywołania z automatyki.

!
Ostrzeżenie

Operacje wsadowe to najostrzejsze narzędzie w tym pudełku. Jedno naciśnięcie potrafi dotknąć wielu repo naraz, więc guardrale nie są ozdobą - to one łapią moment, w którym wygoda zamienia się w masowy błąd. vulp woli zablokować wątpliwy push, niż roznieść go po całym warsztacie.

1
Skan całego workspace'u

jeden przebieg zbiera stan wszystkich repo, zanim cokolwiek pojawi się na ekranie.

2
Układ na jednym ekranie

lista repo ze stanem, panel szczegółów i pasek skrótów, bez przewijania w typowym oknie terminala.

3
Operacje wsadowe z klawiatury

sync, fetch czy push przez zaznaczone repo naraz, jedno naciśnięcie zamiast pętli.

4
Guardrale ze wspólnego rdzenia

te same blokady przed wypchnięciem złej rzeczy co w CLI, bo to ten sam kod.

Jaki jest finalny efekt

Zamiast pętli po katalogach dostajesz jeden ekran, który mówi, gdzie są zmiany, gdzie czeka pull i gdzie deploy rozjechał się z serwerem - i pozwala to ogarnąć wsadowo, nie ruszając ręki z klawiatury. Przegląd, który zjadał godziny, robi się w kilka sekund.

A ponieważ to skorupa nad tym samym rdzeniem co CLI, człowiek i skrypt robią dokładnie to samo i tak samo bezpiecznie. Guardrale nie znikają, gdy przechodzisz z automatyki na ręczną pracę, a nowa możliwość dodana raz jest od razu i w terminalu, i w pipeline.

Cały warsztat na jednym ekranie, a każdy ruch ręką ma te same zabezpieczenia co ruch skryptu.

Więcej projektów

Inne realizacje z tej samej kategorii - zobacz, jak podchodzimy do podobnych wyzwań.

Masz podobny projekt?

Napisz do nas - wycena jest bezpłatna i wraca w godzinę.