Открытый код & Чистый Zsh

Менеджер плагинов, который ждал ваш .zshrc

Объявляйте плагины прямо в коде. Фиксируйте на точных коммитах. Устанавливайте параллельно. Нулевые зависимости помимо Zsh и Git.

~/.zshrc
# объявите ваши плагины
zert zsh-users/zsh-autosuggestions
zert zsh-users/zsh-syntax-highlighting
zert ohmyzsh lib/clipboard
zert zert # zert управляет собой
Zsh 5.0+ Чистый Zsh GPLv3 Без файлов конфигурации

Добавьте это в ваш .zshrc

Вставьте фрагмент кода ниже. При первом запуске shell Zert автоматически клонирует себя.

~/.zshrc
# бутстрап zert — запускается один раз, автоматически клонируется при первом запуске
export ZERT_PLUGINS_DIR="${ZERT_PLUGINS_DIR:-${ZERT_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/zert}/plugins}"
[[ -f "$ZERT_PLUGINS_DIR/zert/zert.zsh" ]] || \
  (curl -fsSL https://raw.githubusercontent.com/oxcl/zert/main/bootstrap.sh | zsh)
source "$ZERT_PLUGINS_DIR/zert/zert.zsh"

# объявите ваши плагины
zert zsh-users/zsh-autosuggestions
zert zsh-users/zsh-syntax-highlighting
zert zert  # zert управляет собой

Откройте новый терминал, и Zert сделает всё остальное — автоматически клонирует, компилирует и загружает ваши плагины.

Всё что нужно. Ничего лишнего.

Нет Python. Нет Ruby. Нет Node. Только Zsh делает то, что он умеет лучше всего.

Декларативный

Объявляйте плагины прямо в вашем .zshrc. Нет отдельного файла конфигурации. Нет YAML, TOML или JSON — просто zert user/repo.

Воспроизводимость через lock-файл

Каждый плагин зафиксирован на точном SHA коммита в zert.lock. Закоммитьте его в dotfiles для бит-в-бит идентичных установок везде.

Параллельная установка

Отсутствующие плагины клонируются одновременно с помощью git treeless clones. Установка параллельная, загрузка последовательная — без сюрпризов с порядком.

Нулевые зависимости

Чистый Zsh. Нет Python, Ruby, Node или Perl. Только внешние бинарные файлы: git, curl и стандартные инструменты POSIX.

Самоуправление

Добавьте zert zert в ваш .zshrc, и Zert будет отслеживать и обновлять себя, как любой другой плагин. Даже на определённой ветке.

Совместимость с OMZ & Prezto

Загружайте библиотеки Oh-My-Zsh и модули Prezto без установки этих фреймворков. Используйте zert use ohmyzsh и zert use prezto.

Четыре шага. Вот и всё.

От нуля до полностью управляемого shell менее чем за минуту.

1

Бутстрап

Вставьте фрагмент установки в ваш .zshrc. При первом запуске Zert автоматически клонирует себя.

2

Объявление

Добавьте строки zert user/repo под бутстрапом. Используйте флаги like --pin, --branch или --no-alias.

3

Установка

Откройте новый shell. Zert обнаруживает отсутствующие плагины, клонирует их параллельно, компилирует и записывает zert.lock.

4

Загрузка

Плагины загружаются последовательно в порядке объявления. Ваш shell готов. Закоммитьте zert.lock для воспроизводимости.

Простой синтаксис. Мощные возможности.

Всё настраивается прямо в вашем .zshrc.

~/.zshrc
# Самоуправление
zert zert  # zert управляет собой

# Совместимость с Oh-My-Zsh / Prezto
zert use ohmyzsh
zert ohmyzsh lib/clipboard
zert use prezto
zert prezto modules/utility

# Сокращение GitHub
zert zsh-users/zsh-autosuggestions

# Полный URL
zert https://github.com/user/repo

# Отслеживание ветки
zert user/repo --branch dev

# Локальный плагин
zert /home/me/my-plugin
Флаги плагинов
# Зафиксировать на определённом коммите
zert user/plugin --pin abc123def

# Отслеживать ветку вместо ветки по умолчанию
zert user/plugin --branch dev

# Пропустить загрузку алиасов
zert user/plugin --no-alias

# Пропустить загрузку автодополнений
zert user/plugin --no-completion

# Загрузить только автодополнения
zert user/plugin --only-completion
Подкоманды
zert list     # показать установленные плагины
zert update   # обновить все плагины
zert prune    # удалить неиспользуемые плагины
zert.lock
# АВТОМАТИЧЕСКИ СГЕНЕРИРОВАННЫЙ ФАЙЛ. НЕ РЕДАКТИРУЙТЕ ВРУЧНУЮ.
# Закоммитьте этот файл в систему контроля версий для воспроизводимых установок.
version::1
zert::git::https://github.com/oxcl/zert::a1b2c3d::
zsh-autosuggestions::git::https://github.com/zsh-users/zsh-autosuggestions::f7g8h9i::
clipboard::ohmyzsh::https://github.com/ohmyzsh/ohmyzsh::l3m4n5o::
my-plugin::local::::r9s0t1u::
Скопировано в буфер обмена