elbab CLI
CLI elbab хранит ключи и пароли в зашифрованном виде и дает агенту запускать команды с секретами, не показывая их.
- 268 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Утилита работает с API-ключами, SSH-ключами и облачными учетными данными.
- Команда `encrypt` заменяет исходные файлы зашифрованными, ошибка без резервной копии грозит потерей данных.
Установка
- Работает в
Ручная установка
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` сохраняет запись, которая истекает через два часа.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыagent-secrets выдает ИИ-агенту ключи на время: шифрование age, аренда секрета с TTL, журнал доступа и аварийный отзыв.
Vahta дает агенту использовать ваши пароли и API-ключи через зашифрованное хранилище, не показывая сами значения
Утилита хранит ключи в системной связке и подставляет их в запрос на транспортном уровне, так что агент значения не видит.
Обертка над 1Password CLI: агент находит, использует и сохраняет секреты, не видя значений, и реже просит одобрения
Скилл и CLI для .env.schema: агент видит имена, типы и правила переменных окружения, а значения секретов в его контекст не попадают
EnvLatch хранит API-ключи в связке ключей macOS и дает команде агента только выбранные переменные окружения, без файлов .env
Коротко о README
README объясняет угрозу открытых секретов и показывает установку, выбор места хранения ключа и основные команды. Отдельные разделы описывают защиту SSH, AWS, облачных CLI, `.env` и папок, а блок о пределах защиты перечисляет то, что утилита не закрывает.