GitHub digest #10: прокачиваем терминал
От нашего терминала — вашему.


Иллюстрация: Оля Ежак для Skillbox Media
В августе собрали для вас лучшие консольные утилиты с открытым кодом: инструменты для разработчиков, воспроизведение аудио и видео, визуальные эффекты, новые команды и многое другое. Пришло время прокачать свой терминал и сделать его более универсальным.
Сила в краткости
Bash-Oneliner
Bash-Oneliner — большая библиотека удобных команд и горячих клавиш для работы с Linux. Автор проекта несколько лет назад занимался изучением биоинформатики, и ему приходилось часто взаимодействовать с терминалом. Тогда он обнаружил, что если знать команды и простые скрипты, то консоль перестанет пугать. С тех пор разработчик собирает все интересные горячие клавиши и команды в одном месте.
Открыть репозиторий
Читайте также:
HTTP-клиент для терминала
Posting
Posting — мощная утилита для работы с протоколом HTTP. Умеет локально хранить запросы в простых YAML-файлах, есть автозаполнение, подсветка синтаксиса, горячие клавиши Vim, пользовательские темы и команды для быстрого доступа к функциям.

Изображение: darrenburns / GitHub
Парное программирование с ИИ-помощником
Aider
Aider — нейросетевой программист, который помогает редактировать код в локальном Git-репозитории. Если всегда хотели попробовать парное программирование, но пара не находилась, то самое время попробовать нейросеть. Aider можно подружить с любой языковой моделью, но лучше всего использовать GPT-4o или Claude 3.5 Sonnet. Это модели мощнее и предлагают наиболее подходящие фрагменты кода.

Скриншот: Aider / Skillbox Media
Aider может:
- отредактировать файлы;
- запушить изменения в Git;
- редактировать несколько файлов одновременно;
- работать с большинством популярных языков, включая Python, JavaScript, TypeScript и PHP.
Запись терминальных сессий
Asciinema
Asciinema — это инструмент для записи всего происходящего в терминале. Он может пригодиться, чтобы продемонстрировать работу приложения или поделиться забавной ошибкой. Главное преимущество Asciinema в том, что утилита записывает видео в специальном легковесном формате .cast, а не в громоздких .mp4 или .mov.
Полученный файл можно воспроизвести в терминале, встроить в веб-страницу и поделиться им в социальных сетях.
Открыть репозиторийСовременная альтернатива Ls
Eza
Eza — это переосмысление классической утилиты ls, которая выводит в терминал содержимое директории. В Eza пользователю предоставляется больше возможностей, например каждый тип файлов выделяется своим цветом, а также поддерживается работа с симлинками, расширенными атрибутами и Git.
Ещё один плюс Eza заключается в высокой скорости работы. Всё благодаря тому, что утилита состоит всего из одного бинарного файла.

Изображение: Eza
Особенности Eza:
- Поддержка гиперссылок.
- Детализация точек монтирования.
- Вывод статуса Git-репозиториев.
- Человекочитаемые относительные даты.
- Поддержка ярких цветов терминала.
Ещё одна альтернатива Ls
LSD
LSD — другая переработка команды Ls со множеством дополнительных возможностей, включая поддержку цветов, иконок, древовидный вывод и множество вариантов форматирования.

Скриншот: lsd-rs / GitHub
Музыка в терминале
Cmus
Cmus — это быстрый и мощный музыкальный проигрыватель для Unix-подобных операционных систем. С ним любимые треки можно слушать прямо в терминале.

Скриншот: Cmus / Skillbox Media
Особенности:
- Поддерживает разные форматы: Ogg Vorbis, MP3, FLAC, Opus, Musepack, WavPack, WAV, AAC, MP4, аудио-CD и WMA.
- Потоковое воспроизведение треков в форматах MP3 и Ogg с помощью Shoutcast/Icecast.
- Мгновенный запуск, даже если в коллекции несколько тысяч треков.
- Поддержка фильтров по названию, дате, исполнителю и другим параметрам.
- Есть очередь воспроизведения.
- Команды и поиск в режиме Vim/less.
- Программа работает в Linux, OS X, FreeBSD, NetBSD, OpenBSD и Cygwin.
- Можно настроить цветовую схему утилиты.
Управление Docker из терминала
Dry
Dry — утилита для управления Docker-контейнерами из консоли. С её помощью можно получать информацию о контейнерах, образах и сетях, а при работе с кластером Swarm — об узлах, сервисах, стеках и других конструкциях Swarm. Dry можно использовать как с локальными, так и с удалёнными демонами Docker.
В dry доступно большинство команд, представленных в официальном приложении Docker CLI. Утилита устанавливается с помощью всего одного бинарника и не требует применения внешних библиотек.
Открыть репозиторий
Читайте также:
API-клиент
ATAC
ATAC — это консольный API-клиент, похожий на Postman. Философия ATAC проста: быть бесплатным и автономным отныне и навсегда. С его помощью пользователи могут отправлять запросы через API и анализировать ответы сервера.

Изображение: ATAC
Интерактивная шпаргалка для командной строки
Navi
Navi — простой ридер файлов с чит-листами различных консольных утилит. Если забыли, что делает та или иная команда, то можете подсмотреть её синтаксис и описание с помощью Navi. Пользователи могут загружать дополнительные чит-листы из интернета или писать собственные.
Открыть репозиторийМощный и универсальный конвертер
Pandoc
Pandoc — это одновременно библиотека на Haskell для преобразования файлов из одного формата в другой, и инструмент командной строки, который использует эту библиотеку. С помощью Pandoc можно конвертировать DOCX в ODT или HTML в PDF. Поддерживается много форматов, включая редкие MARKUA, ORG, TEI и ZIMWIKI.
Примеры команд:
TXT — в HTML:
pandoc -s MANUAL.txt -o example2.html
TXT — в RTF:
pandoc -s MANUAL.txt -o example7.rtf
Веб-страница — в Markdown:
pandoc -s -r html http://www.gnu.org/software/make/ -o example12.text
Markdown — в PDF:
pandoc MANUAL.txt --pdf-engine=xelatex -o example13.pdf
TXT — в EPUB:
pandoc MANUAL.txt -o MANUAL.epub
Для экспериментов есть специальная онлайн-песочница.
Открыть репозиторийНе забывайте про бэкап
Restic
Restic — это быстрая, эффективная и безопасная программа для резервного копирования. Она поддерживает Linux, macOS, Windows, FreeBSD, OpenBSD.
Возможности Restic:
- Можно создавать бэкапы для различных типов хранилищ.
- Легко настраивается.
- Может копировать не весь файл сразу, а только ту часть, которая изменилась.
- Безопасность обеспечивается криптографическим шифрованием.

Читайте также:
Красивый файловый менеджер
Superfile
Superfile — это модная и современная утилита для работы с файлами. Её создавали с упором на красивый пользовательский интерфейс, и, надо признать, разработчики потрудились на славу.

Изображение: yorukot / GitHub
В Superfile реализованы все функции современного файлового менеджера, а тему и горячие клавиши пользователь может настроить под себя. Есть возможность просматривать сразу несколько каталогов и переносить файлы без необходимости возвращаться в основную директорию.
Открыть репозиторийПростой и мощный мультиплексор
Zellij
Zellij — это терминальный мультиплексор, то есть рабочее пространство, которое позволяет работать с несколькими сессиями в одном окне.

Изображение: Zellij
Zellij подойдёт как начинающим, так и опытным пользователям. Основные функции работают из коробки и легки в освоении, а продвинутые функции можно настроить. Также поддерживается автоматизация рутинных процессов и плагины для интеграции дополнительных возможностей.
Открыть репозиторий
Читайте также:
Музыкальный плеер
Musikcube
Musikcube — ещё один консольный проигрыватель с функциями хранилища коллекций и сервера потокового аудио. Утилита работает на Windows, Linux, macOS и Raspberry Pi OS.
Для владельцев Android-смартфонов есть приложение Musikdroid, которое выступает клиентом потокового вещания. С его помощью можно слушать музыку, которая хранится на домашнем сервере с установленной утилитой Musikcube. Получается самодельный Spotify с любой музыкой.

Изображение: clangen / GitHub
А Musikcore — кросс-платформенная библиотека на С++, которая может использоваться разработчиками как бэкенд для создания или прототипирования приложений, воспроизводящих музыку. Из коробки она обеспечивает сканирование файлов, индексацию тегов, управление очередью воспроизведения, плейлист, расширяемую архитектуру плагинов и поддержку библиотек, содержащих более 250 000 аудиодорожек.
Открыть репозиторийЗагрузка картинок
Gallery-dl
Gallery-dl — простая утилита для скачивания картинок с различных веб-ресурсов. Главный плюс в том, что парой нажатий можно сохранить сразу несколько изображений на странице. Приложение кросс-платформенное и поддерживает множество опций для настройки именования загружаемых файлов и их сортировки.
По сути, аналог Youtube-dl, только для картинок.
Открыть репозиторийСоздание регулярных выражений
Grex
Grex — это библиотека и приложение командной строки для создания регулярных выражений. Работает следующим образом: вы пишете тестовый пример, а на его основе автоматически генерируется регулярка.
По умолчанию Grex выдаёт точные регулярные выражения, соответствующие заявленному примеру. С помощью флагов командной строки или методов предварительной обработки из библиотеки можно создать обобщённые конструкции.
«Нужно ли теперь учить регулярные выражения?» — нередко спрашивают авторов утилиты. «Да, пожалуйста, научитесь писать их!» — отвечают они.
Cat с подсветкой
Bat
Bat — аналог классической утилиты Cat, которая чаще всего используется для вывода в консоль содержимого файлов, но с полезными фичами. Например, есть подсветка синтаксиса, интеграция с Git и нумерация строк.

Изображение: sharkdp / GitHub
Альтернатива Find
Fd
Fd — это быстрая программа для поиска записей в файловой системе.

Изображение: sharkdp / GitHub
Возможности Fd:
- Интуитивно понятный синтаксис: можно использовать команду fd PATTERN вместо find -iname '*PATTERN*'.
- Поддержка регулярных выражений.
- Высокая скорость работы.
- Цветное выделение разных типов файлов.
- Команды можно выполнять параллельно.
- Умный регистр: по умолчанию поиск не чувствителен к регистру.
- В базовых настройках утилита игнорирует скрытые каталоги и файлы, а также шаблоны из вашего .gitignore.
Визуальные эффекты в терминале
TerminalTextEffects
TerminalTextEffects (TTE) — утилита для создания визуальных эффектов в консоли, которую можно использовать и в качестве библиотеки Python.
TTE поддерживает работу с шестнадцатеричными цветами Xterm 256 и RGB. Пользователи могут реализовывать сложные анимации с использованием квадратичных и кубических кривых Безье. Важно отметить, что в терминале Windows некоторые эффекты могут работать медленно.

Изображение: Effects Showroom
Код — в картинки
Freeze
Freeze — генератор изображений в форматах PNG, SVG и WebP из фрагментов кода или вывода терминала. Если объяснять проще, то эта программа делает красивые скриншоты консоли, чтобы ими не стыдно было делиться с коллегами.

Изображение: charmbracelet / GitHub
В GitHub из консоли
Gh-dash
Gh-dash — расширение GitHub (gh) CLI для отображения в терминале панели с пул-реквестами и задачами. Пригодится, если часто работаете в терминале и не хотите отвлекаться на браузер.

Изображение: Gh-dash
Возможности Gh-dash:
- Широкие возможности настройки утилиты.
- Поддерживается поиск по задачам и пул-реквестам.
- Можно применять пользовательские темы.
- Доступен просмотр подробной информации о проекте.

Читайте также:
Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!