Slinky — локальное хранилище API-ключей, .env и кодов восстановления для Mac

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

Slinky — бесплатное приложение с открытым исходным кодом для хранения API-ключей, переменных окружения проектов, кодов двухфакторной аутентификации и ключей восстановления. Вместо того чтобы держать секреты в незашифрованных файлах `.env`, приложении предлагают хранить их в одном зашифрованном файле на Mac и выдавать программам только при необходимости.

Доступ к хранилищу подтверждается через Touch ID. Slinky предназначена для работы разработчика с проектами и ИИ-агентами: она не только сохраняет секреты, но и помогает находить их копии в репозиториях, истории команд и сохранённых переписках с агентами.

Где хранятся секреты

Данные остаются в одном зашифрованном файле на компьютере. По описанию разработчика, ключ к хранилищу защищён через Secure Enclave и Touch ID; бумажный ключ восстановления служит запасным способом доступа. Учётная запись, сервер и синхронизация между компьютерами не требуются. Резервную копию файла может сохранять Time Machine — она остаётся зашифрованной.

Отсутствие синхронизации важно учитывать заранее: Slinky не перенесёт хранилище на новый Mac автоматически. Ключ восстановления нужно сохранить отдельно в надёжном месте. Приложение не предназначено для хранения обычных паролей и не принимает фразы восстановления криптокошельков.

Работа с проектами и файлами .env

Чтобы подключить проект, достаточно указать его папку. Slinky читает существующие файлы `.env`, группирует переменные по окружениям Local, Preview и Production, проверяет, внесён ли файл в `.gitignore`, и сверяет переменные с `.env.example`. Также можно скопировать нужное окружение или создать файл-пример только с названиями переменных.

Запуск приложения без .env в папке проекта

Команда Slinky может запускать программу с переменными окружения, не создавая постоянный `.env` в репозитории. Например, разработчик запускает проект через `slinky run — npm run dev`, а приложение после подтверждения Touch ID передаёт переменные запущенному процессу. Для сборок Xcode предусмотрена отдельная команда, а для программ, которым нужен файл, можно передать временный файл с ограниченными правами доступа.

Как Slinky взаимодействует с ИИ-агентами

Интеграция с Claude Code, Cursor и Codex устроена через MCP и команду Slinky. Агент может узнать названия сохранённых секретов и проверить, каких переменных не хватает, но, по документации проекта, не получает сами значения через MCP. Для запуска команд используется `slinky run`; пользователь подтверждает запуск через Touch ID, а приложение показывает, какую именно команду собирается выполнить.

Это помогает не вставлять ключи прямо в диалог с агентом и не хранить их в файлах проекта. При этом команда всё равно получает переменные, нужные запущенной программе, поэтому перед подтверждением стоит проверять, что именно запускается и в каком проекте.

Поиск оставленных ключей и другие функции

Раздел Health ищет точные совпадения сохранённых значений в проектах и истории Git, локальной истории командной оболочки и сохранённых переписках с Claude Code, Codex и Cursor. Поиск выполняется на Mac; приложение показывает названия и места найденных совпадений. Slinky также проверяет пропущенные переменные, повторно сохранённые ключи и коды восстановления, которые заканчиваются.

  • Хранит коды двухфакторной аутентификации и отмечает использованные.
  • Импортирует секреты из экспорта 1Password `.1pux` или CSV из Apple Passwords, Bitwarden и таблиц; обычные пароли остаются в менеджере паролей.
  • Поддерживает ключи App Store Connect, сертификаты и файлы учётных данных разработчика Apple.
  • Может отправлять переменные проекта в Vercel, Netlify, Cloudflare Workers/Pages или Fly через соответствующие командные инструменты.
  • Помечает скопированные значения как приватные и очищает буфер обмена через минуту.

Сеть, лицензия и требования

Основные данные не отправляются на сервер: Slinky не создаёт аккаунт и не синхронизирует хранилище. По документации, приложение раз в день проверяет обновления на GitHub; эту проверку можно отключить. Запросы к сайтам за значками выполняются только при включённой настройке загрузки значков. Если пользователь выбирает передачу переменных на хостинг, значения отправляет его официальный командный инструмент выбранного сервиса.

Программа написана на Swift, распространяется бесплатно по лицензии MIT и требует Mac с процессором Apple Silicon. Для текущей версии 1.0.0 необходима macOS 26 Tahoe. Приложение подписано разработчиком, но пока не прошло нотариальную проверку Apple, поэтому при первом запуске macOS покажет предупреждение и попросит вручную разрешить открытие в настройках безопасности.

Кому подойдёт Slinky

Slinky может быть полезна разработчикам, которые хотят убрать секреты из репозитория и давать агентам доступ к проектным переменным через проверяемый запуск. Это локальный инструмент, а не облачный сейф для команды: сейчас синхронизации между Mac нет, а требования к системе и предупреждение о нотариальной проверке стоит учесть до установки.