elbab CLI

CLI elbab хранит ключи и пароли в зашифрованном виде и дает агенту запускать команды с секретами, не показывая их.

  • 268 ★ репозитория
  • Последний коммит
  • MIT
CLI

Широкий доступ

Почему такой уровень

  • Утилита работает с API-ключами, SSH-ключами и облачными учетными данными.
  • Команда `encrypt` заменяет исходные файлы зашифрованными, ошибка без резервной копии грозит потерей данных.
Все причины и проверки

dreamers-laboratory/good-door

Установка

Работает в

Ручная установка

git clone https://github.com/dreamers-laboratory/good-door && cd good-door

Первая команда из README; далее `install -m 755 bin/elbab ~/.local/bin/elbab` и `elbab init --recovery ~/elbab-recovery.txt`.

Доступ и проверки

Как мы проверяем

Широкий доступИнструмент может менять данные, выполнять команды или работать с секретами.

  • Утилита работает с API-ключами, SSH-ключами и облачными учетными данными.
  • Команда `encrypt` заменяет исходные файлы зашифрованными, ошибка без резервной копии грозит потерей данных.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

elbab — локальное хранилище секретов на возрасте age. Команда `elbab set-key openai OPENAI_API_KEY` сохраняет ключ без записи в историю оболочки, а `elbab run openai -- python app.py` кладет значение в окружение процесса и нигде не пишет в файл. Ключ шифрования лежит в связке macOS, TPM, Secret Service, DPAPI, на аппаратном ключе или в менеджере паролей. Утилита защищает уже лежащее на диске: SSH-ключи получают случайную фразу, файл AWS заменяется выдачей ключей по запросу, `.env` и произвольные папки шифруются, а `elbab scan` ищет секреты по именам без значений. Скилл `skill/SKILL.md` велит агенту только запускать команды через `elbab run` и никогда не читать значения.

Для кого. Разработчикам, которые отдают агентам доступ к API-ключам, SSH и облачным CLI и не хотят оставлять секреты в открытом виде и в логах.

Подходит, если

  • Агенту нужно запустить скрипт с `OPENAI_API_KEY`, и значение не должно попасть в транскрипт.
  • Файл `~/.aws/credentials` лежит открытым, и его нужно заменить выдачей ключей по запросу.
  • SSH-ключ без фразы надо защитить командой `elbab ssh-protect`.
  • Каталог с кошельком или `.env` нужно зашифровать и расшифровывать только на время команды.

Не подходит, если

  • Аккаунт на машине уже скомпрометирован: утилита защищает копии, а не работающий под вами процесс.
  • Нужен общий менеджер секретов для команды с аудитом: elbab локальный и однопользовательский.
  • Файл или папка крупнее 256 МБ либо содержат ссылки.

Пример запроса к агенту

Запусти приложение через `elbab run openai -- python app.py`, не печатай значения ключа и сообщи, чего не хватает в хранилище.

Ограничения

Нужны Python 3.9 и age 1.2 или новее. Все, что запущено от вашего имени, может вызвать elbab. Утилита защищает копии (резервные копии, синхронизацию, транскрипты), но не взломанную учетную запись. После `encrypt` старые блоки могут остаться на SSD, поэтому включайте полнодисковое шифрование. Файлы и папки ограничены 256 МБ без ссылок, а `--show` и `--dump` выгружают все после пароля ОС. Последний коммит датирован ноябрем 2026.

Как отключить. Расшифруйте защищенные файлы командой `elbab decrypt PATH`, удалите бинарный файл `~/.local/bin/elbab` и папку скилла. Хранилище и ключ лежат в каталоге данных elbab, файл восстановления из `elbab init --recovery` храните отдельно.

Частые вопросы

Как поставить elbab?

Склонируйте репозиторий, выполните `install -m 755 bin/elbab ~/.local/bin/elbab` и затем `elbab init --recovery ~/elbab-recovery.txt`. Файл восстановления перенесите на отдельный носитель.

Где хранится ключ шифрования?

На macOS по умолчанию в связке ключей, опционально в Secure Enclave. На Linux в TPM или Secret Service, на Windows через DPAPI. Любой ключ можно взять из файла идентичности или команды менеджера паролей.

Видит ли агент значения секретов?

Нет, если работает через `elbab run ENTRY -- CMD`. В оболочках агентов вывод `show` маскируется, а скилл запрещает читать `*.age`, использовать `--show` и `--dump`.

Как защитить файл AWS?

Выполните `elbab aws-protect ~/.aws/credentials`: файл станет безключевым, а AWS будет получать ключи через `credential_process`.

Можно ли задать срок жизни секрета?

Да, `elbab tmp wifi 2h` сохраняет запись, которая истекает через два часа.

Обсуждение

Вопросов и отзывов пока нет.

agent-secrets выдает ИИ-агенту ключи на время: шифрование age, аренда секрета с TTL, журнал доступа и аварийный отзыв.

CLIШирокий доступ114Звезды репозитория

Vahta дает агенту использовать ваши пароли и API-ключи через зашифрованное хранилище, не показывая сами значения

CLIШирокий доступ71Звезды репозитория

Утилита хранит ключи в системной связке и подставляет их в запрос на транспортном уровне, так что агент значения не видит.

CLIШирокий доступ197Звезды репозитория

Обертка над 1Password CLI: агент находит, использует и сохраняет секреты, не видя значений, и реже просит одобрения

CLIШирокий доступ326Звезды репозитория

Скилл и CLI для .env.schema: агент видит имена, типы и правила переменных окружения, а значения секретов в его контекст не попадают

СкиллРасширенный доступ5 тыс.Звезды репозитория

EnvLatch хранит API-ключи в связке ключей macOS и дает команде агента только выбранные переменные окружения, без файлов .env

CLIШирокий доступ99Звезды репозитория

Коротко о README

README объясняет угрозу открытых секретов и показывает установку, выбор места хранения ключа и основные команды. Отдельные разделы описывают защиту SSH, AWS, облачных CLI, `.env` и папок, а блок о пределах защиты перечисляет то, что утилита не закрывает.

Бейдж для README

Сообщить о проблеме