vulp
Тот же мульти-репо инструмент, в версии полноэкранного терминального интерфейса. Весь workspace на одном экране, управление с клавиатуры, без выхода из терминала. Для тех, кто живет в консоли.
Полноэкранный терминальный интерфейс (TUI) для управления целой мастерской репозиториев, управляемый исключительно с клавиатуры. Весь workspace и его состояние на одном экране, то же ядро, что и беспромптовый CLI - не покидая терминала.
Введение
vulp - это инструмент для управления мастерской репозиториев: несколько десятков репо, которые нужно держать под контролем одновременно. Этот кейс посвящён его терминальному лицу - полноэкранному TUI, который показывает состояние всего workspace на одном экране и позволяет действовать на нём пакетно, не убирая руки с клавиатуры.
Ключевое в том, что TUI - не отдельная программа. Под спудом сидит то же ядро, что и беспромптовый CLI с выводом JSON - то, которое использует автоматика. Человек и скрипт вызывают одну и ту же логику, только через разный вход: один клавишей, другой из pipeline.
Для тех, кто живёт в консоли
Часть людей работает в терминале и не хочет его покидать ради чего-то такого базового, как обзор репозиториев. Если вся работа происходит в консоли, то открытие браузера только для того, чтобы проверить, где изменения, - это сбивание с ритма. Инструмент должен быть там, где вы уже находитесь.
vulp это уважает. Он не добавляет отдельного окна и не требует переключения контекста - вы запускаете его в той же консоли, в которой и так сидите, получаете полную картину мастерской и возвращаетесь к работе. Никакой возни с мышью, никакого ожидания загрузки страницы.
Контекст вместо цикла git status
Когда у вас несколько десятков репозиториев, проверка их по очереди - это цикл: зайти в каталог, git status, git fetch, вернуться, следующий. Десять минут кликанья, чтобы узнать, что изменения ждут в трёх из них. Чем больше репо, тем менее реально держать это в голове.
vulp складывает всю мастерскую на один экран: какое репо имеет незакоммиченные изменения, какое опережает свой удалённый branch, где ждёт pull, где deploy разошёлся с зеркалом на сервере. Вместо того чтобы заходить в каждое по отдельности, вы видите состояние всего и действуете точечно там, где что-то требует внимания.
Ручной цикл vs vulp
| Задача | Ручной цикл | vulp |
|---|---|---|
| Состояние 40 репо | 40x cd + git status | один экран |
| Commit и push через много репо | репо за репо | одно выделение, одно нажатие |
| Расхождение деплоя с сервером | ручное сравнение | обнаружено и показано |
| Статистика вклада | отдельные команды | в том же виде |
То же CLI, второе лицо
TUI - это интерактивная оболочка над ядром, которое обслуживает также беспромптовый CLI. Сканирование workspace, пакетные операции, работа с PR и issues, guardrail-ы против отправки не того - это один набор логики, независимо от того, вызывает ли его человек клавишей или скрипт из pipeline.
Благодаря этому новая операция появляется в обоих местах сразу, а то, что вы делаете вручную в TUI, имеет ровно те же защиты, что и вызов из автоматики. Нет версии для человека и версии для скрипта, которые расходятся со временем и ловят разные ошибки.
Сочетания клавиш, которые не нужно учить
Хороший TUI можно использовать без чтения инструкции. Сочетания клавиш следуют за тем, что они делают: s как sync, r как refresh, q как quit. Если вам нужно помнить, что F7 делает commit, дизайн интерфейса пошёл не туда. vulp держится этого принципа, чтобы всю мастерскую можно было охватить пальцами на клавиатуре, без шпаргалки рядом.
Вторая половина комфорта - безопасность. Пакетные операции удобны ровно до того момента, в который одним нажатием вы отправляете что-то плохое в десять репо сразу. Поэтому guardrail-ы из общего ядра стоят между вами и таким движением - те же, что защищают вызовы из автоматики.
Пакетные операции - самый острый инструмент в этой коробке. Одно нажатие способно затронуть много репо сразу, поэтому guardrail-ы - не украшение, это они ловят момент, в который удобство превращается в массовую ошибку. vulp предпочитает заблокировать сомнительный push, чем разнести его по всей мастерской.
один проход собирает состояние всех репо, прежде чем что-либо появится на экране.
список репо с их состоянием, панель подробностей и панель сочетаний клавиш, без прокрутки в типичном окне терминала.
sync, fetch или push через выделенные репо сразу, одно нажатие вместо цикла.
те же блокировки против отправки не того, что и в CLI, потому что это тот же код.
Каков итоговый результат
Вместо цикла по каталогам вы получаете один экран, который говорит, где изменения, где ждёт pull и где deploy разошёлся с сервером - и позволяет охватить это пакетно, не убирая руки с клавиатуры. Обзор, который пожирал часы, делается за несколько секунд.
А поскольку это оболочка над тем же ядром, что и CLI, человек и скрипт делают ровно одно и то же и одинаково безопасно. Guardrail-ы не исчезают, когда вы переходите от автоматики к ручной работе, а новая возможность, добавленная один раз, сразу есть и в терминале, и в pipeline.
Вся мастерская на одном экране, а каждое движение рукой имеет те же защиты, что и движение скрипта.
Больше проектов
Другие работы из той же категории - посмотрите, как мы решаем похожие задачи.
Есть похожий проект?
Напишите нам - смета бесплатна и приходит в течение часа.



