EnvLatch CLI

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

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

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

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

  • Хранит и подставляет в процессы API-ключи и токены: любая запущенная программа видит выбранные значения
  • Широкий запуск `envlatch run -- команда` без `--using` открывает программе все сохраненные ключи
Все причины и проверки

raylinkh/envlatch

Установка

Работает в

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

git clone https://github.com/Raylinkh/envlatch.git && cd envlatch && ./scripts/install.sh

Нужны macOS 13 или новее и Xcode 16 либо Swift 6. Установщик собирает EnvLatch.app в `~/Applications`, ставит команду `~/.local/bin/envlatch` и скилл в `~/.agents/skills/envlatch` со ссылками для Codex, Claude Code и Gemini CLI.

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

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

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

  • Хранит и подставляет в процессы API-ключи и токены: любая запущенная программа видит выбранные значения
  • Широкий запуск `envlatch run -- команда` без `--using` открывает программе все сохраненные ключи

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

Что делает

EnvLatch — нативное приложение для macOS 13 и новее с командой `envlatch`. Ключи вроде OPENAI_API_KEY, ANTHROPIC_API_KEY или GITHUB_TOKEN сохраняются в обычной связке ключей и никуда не синхронизируются. Команда `envlatch run --using ANTHROPIC_API_KEY -- claude` запускает программу с нужной переменной окружения, поэтому код и SDK читают ее как из .env. Несколько ключей выбираются повторением `--using`, а постоянный набор сохраняется как группа командой `envlatch groups create`. К ключу можно привязать метаданные эндпоинта: тип API (Anthropic, OpenAI Chat Completions, OpenAI Responses, Gemini), базовый адрес HTTPS и имя переменной, которую ждет клиент. Так ключ MINIMAX_API_KEY приходит в клиент Anthropic как ANTHROPIC_AUTH_TOKEN вместе с ANTHROPIC_BASE_URL. Перед чтением значений EnvLatch проверяет весь выбор целиком и отвергает дубли, пропавшие ключи и конфликты привязок. В комплекте идет скилл: он учит агента смотреть только имена ключей и групп (`envlatch list`, `envlatch groups`, `envlatch doctor`) и оборачивать обычную команду в `envlatch run`. Команд показа значений, копирования в буфер, экспорта и `eval` в программе нет.

Для кого. Разработчикам на macOS, которые запускают Claude Code, Codex или скрипты с несколькими API-ключами и устали копировать .env между проектами.

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

  • Один ключ OpenAI нужен в пяти проектах, и хочется хранить его в одном месте
  • Агент запускает тесты, которым нужны только OPENAI_API_KEY и GITHUB_TOKEN, а остальные ключи ему видеть незачем
  • Клиент с Anthropic-совместимым API получает ключ другого провайдера через `envlatch run` и привязку эндпоинта
  • Ключи не должны попадать в историю терминала, профиль оболочки и репозиторий

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

  • Нужна защита от вредоносного агента или зависимости: запущенный процесс видит все выбранные переменные, песочницы здесь нет
  • Работа идет на Linux или Windows: приложение собирается только под macOS 13 и новее
  • Ключи нужны на нескольких машинах: синхронизации и серверной части нет
  • Команда использует общий менеджер секретов вроде 1Password или Vault: EnvLatch его не заменяет

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

Поставь EnvLatch, запусти тесты проекта через envlatch run с ключами OPENAI_API_KEY и GITHUB_TOKEN и не показывай значения ключей

Ограничения

  • Подстановка переменных окружения не изолирует секрет: запущенный процесс и его потомки читают все выбранные значения, а сбои и отладочные инструменты могут раскрыть память процесса. Автор советует ключи с узкими правами и лимитами расходов у провайдера.
  • Установка собирает приложение из исходников (нужны macOS 13 или новее и Xcode 16 либо Swift 6). Сборка подписана локально без сертификата разработчика, после пересборки macOS может снова запросить доступ к связке ключей.
  • EnvLatch сохраняет унаследованное окружение: ключи, уже экспортированные родительской оболочкой, он не вычищает.
  • Внутри песочницы агента счетчик `saved_key_count` может показать ноль, хотя ключи есть. Команду нужно запускать обычным путем одобрения с доступом к связке ключей.

Как отключить. Удалите приложение из `~/Applications` и символическую ссылку `~/.local/bin/envlatch`, затем скилл `~/.agents/skills/envlatch` вместе со ссылками для Codex, Claude Code и Gemini CLI. Сохраненные ключи остаются в связке ключей macOS, удалять их можно в Keychain Access.

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

Как запустить Claude Code с ключом из связки ключей macOS?

Выполните `envlatch run --using ANTHROPIC_API_KEY -- claude`. Программа claude стартует с переменной ANTHROPIC_API_KEY, а в .env и профиле оболочки ключ не появляется.

Может ли агент прочитать значение ключа через EnvLatch?

Напрямую нет: команд показа, копирования, экспорта и `eval` в EnvLatch нет, а скилл запрещает агенту выводить значения. Запущенная программа при этом читает выбранные переменные, поэтому выдавайте ключи с узкими правами.

Как дать программе несколько ключей сразу?

Повторите `--using` для каждого ключа или сохраните набор командой `envlatch groups create "Backend" --using OPENAI_API_KEY --using GITHUB_TOKEN` и запускайте `envlatch run --using "Backend"`. Группу нельзя смешивать с отдельными ключами в одном запуске.

Работает ли EnvLatch с Cursor или Cline?

Скилл ставит ссылки для Codex, Claude Code и Gemini CLI, и это лишь удобство: ограничения на агентов нет. Другому агенту достаточно прочитать скилл из ~/.agents/skills/envlatch и вызывать `envlatch run`.

Что делает `envlatch doctor`?

Команда сообщает число ключей, видимых текущему процессу, и состояние установки. Если песочница хозяина скрывает связку ключей, она завершается с ошибкой `keychain_visibility_warning`, и тогда команду стоит перезапустить с доступом к связке ключей.

Обсуждение

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

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

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

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

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

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

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

Lade выдает команде секреты и доступ к закрытой сети только на время ее работы, а потом убирает, для людей и для агентов

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

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

CLIРасширенный доступ5,9 тыс.Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйЗвезды репозиторияГлавное отличие
EnvLatch (эта карточка)нет99
agent-secretsнет114выдает агенту секреты на время с шифрованием age и журналом доступа
dotenvxнет5 880шифрует конфигурацию .env, значения получает только приложение с ключом

Коротко о README

В репозитории лежат приложение на SwiftUI, команда envlatch и портативный скилл. README объясняет установку из исходников, сохранение ключей в графическом интерфейсе, запуск через `envlatch run`, группы и метаданные эндпоинтов. Отдельный раздел описывает границу безопасности: подстановка переменных защищает от случайных утечек в репозиторий, историю и логи, но не от вредоносного процесса.

Бейдж для README

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