Varlock — скилл
Скилл и CLI для .env.schema: агент видит имена, типы и правила переменных окружения, а значения секретов в его контекст не попадают
- 4 820 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Varlock читает файлы .env и подтягивает значения из менеджеров секретов вроде 1Password и AWS
- Скилл защищает инструкциями, а не изоляцией: агент с доступом к оболочке технически может прочитать секреты
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/varlockОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Varlock читает файлы .env и подтягивает значения из менеджеров секретов вроде 1Password и AWS
- Скилл защищает инструкциями, а не изоляцией: агент с доступом к оболочке технически может прочитать секреты
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Varlock заменяет .env.example файлом .env.schema, где в комментариях-декораторах описаны тип, обязательность, чувствительность и документация каждой переменной. Схему безопасно коммитить и читать агенту. Скилл в папке skills/varlock учит агента не выводить секреты: вместо `cat .env` он вызывает `varlock load --agent`, который печатает JSON с замаскированными чувствительными значениями. Команда `varlock run -- python script.py` передает вычисленные переменные процессу, `varlock scan` с git-хуками ищет утечки в коде, который сгенерировал ИИ. Плагины подтягивают значения из 1Password, Infisical, AWS, Azure, GCP и HCP Vault.
Для кого. Для разработчиков, которые дают Claude Code или Cursor доступ к проекту с ключами API и не хотят, чтобы секреты оказались в контексте модели.
Подходит, если
- В проекте есть .env с ключами, и агент должен работать с конфигурацией, не читая значения
- Нужна единая схема переменных вместо устаревающего .env.example
- Хотите проверять утечки секретов в коде от ИИ через `varlock scan` и git-хуки
- Секреты лежат в 1Password или AWS, а агенту нужна только схема
- Нужны типы для env.d.ts и валидация портов, URL и перечислений
Не подходит, если
- Проект вообще не использует переменные окружения или секреты
- Нужно хранилище секретов с шифрованием: значения Varlock берет из внешних бэкендов
- Команда не готова вести .env.schema в репозитории
- Нужна защита от агента с доступом к оболочке: скилл полагается на правила, а не на изоляцию
Пример запроса к агенту
Добавь в .env.schema переменную STRIPE_API_KEY как обязательную и чувствительную и проверь конфигурацию через `varlock load`Ограничения
Скилл работает как набор правил для агента: ничто не мешает модели с доступом к оболочке прочитать .env напрямую, если она нарушит инструкцию. Varlock нужно установить отдельно: CLI ставится через npx, Homebrew, скрипт или Docker. Плагины для хранилищ секретов требуют собственных токенов и аккаунтов. Если Varlock стоит как зависимость в package.json, команды запускают через менеджер пакетов, например `npm exec varlock load`.
Как отключить. Удалите папку скилла из каталога скиллов агента и пакет командой `npm uninstall varlock` или `brew uninstall varlock`. Файл .env.schema можно оставить как документацию переменных.
Частые вопросы
Чем .env.schema лучше .env.example?
Схема хранит типы, обязательность, чувствительность и описания, поэтому служит единым источником и не расходится с кодом. Из нее можно генерировать типы для TypeScript.
Как Varlock прячет секреты от агента?
Команда `varlock load --agent` печатает JSON, где чувствительные значения замаскированы. Скилл запрещает агенту выполнять `cat .env`, `echo $SECRET` и `printenv`.
Как поставить Varlock?
В JavaScript-проекте выполните npx varlock init. Автономный бинарник ставится через brew install dmno-dev/tap/varlock или curl с varlock.dev/install.sh, есть образ Docker ghcr.io/dmno-dev/varlock.
Откуда Varlock берет значения секретов?
Из локальных файлов .env.local или окружения, а плагины подключают 1Password, Infisical, AWS, Azure, GCP, HCP Vault и Bitwarden.
Что делает `varlock scan`?
Ищет утечки секретов в коде, в том числе созданном ИИ, и работает вместе с git-хуками.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыVarlock Skill
Varlock Skill for Claude Code
Скилл для Claude Code, который не дает секретам из .env попасть в контекст агента: проверка и запуск через Varlock с маскировкой значений
VibeSec
VibeSec-Skill
Скилл безопасной разработки: агент смотрит на код глазами багхантера и предотвращает типовые уязвимости веб-приложений
Сканер безопасности для скиллов агентов: ищет промпт-инъекции, утечку данных и вредоносный код перед установкой
Сканер безопасности для скиллов и MCP агентов: ищет промпт-инъекции, утечки данных и риски цепочки поставок до установки
Скилл аудита безопасности кода от Cloudflare: агент проходит разведку, охоту по покрытию и независимую проверку находок и выдает структурированный отчет
Скилл для аудита вайбкод-приложений: секреты, RLS в Supabase, авторизация, платежи, лимиты запросов, мобильные и ИИ-интеграции
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| Varlock (эта запись) | нет | 4 820 | |
| Varlock Skill | нет | 33 | сторонний скилл для Claude Code, а здесь скилл и CLI от самих авторов Varlock |
| 2password | нет | 305 | обертка над 1Password CLI |
Коротко о README
Описание подает Varlock как безопасный для ИИ способ вести .env: схемы для агентов, секреты для людей. Список возможностей включает проверку типов, утечек, редактирование логов и работу с несколькими окружениями. Дальше показаны примеры схемы с декораторами, установка, рабочий цикл с load и run, раздел про безопасную конфигурацию для ИИ и перечень опубликованных пакетов: ядро, плагины, расширение VS Code и образ Docker.
Бейдж для README
Исходный SKILL.md
--- name: varlock description: >- Secure environment variable management with Varlock. Use when handling secrets, API keys, credentials, or any sensitive configuration. Ensures secrets are never exposed in terminal, logs, or LLM context. Provides guidance around integrating varlock into a project, reading/editing .env.schema and other .env files, using the varlock CLI, adding plugins and framework integrations. Trigger phrases include "environment variable", "env var", "secrets", ".env", "API key", "credentials", "sensitive", "varlock" --- # Varlock This skill helps securely manage env vars and secrets in your project using varlock. > **Docs**: https://varlock.dev > **Repo**: https://github.com/dmno-dev/varlock Varlock uses `.env.schema` (instead of `.env.example`) to provide a single source of truth for your project's env vars. Schema info is expressed using `@decorator` style comments. Sensitive values can be set in git-ignored `.env.local` files, passed in via the environment, or use functions to load from secure backends like 1Password, Vault, AWS, etc. Basic `.env.schema` example: ```env-spec # @defaultSensitive=false @defaultRequired=infer # @currentEnv=$APP_ENV # @generateTsTypes(path=env.d.ts) # --- # @type=enum(dev, staging, prod) APP_ENV=dev # @type=url API_URL=https://api.example.com # Description of this var # @sensitive @required @type=string(startsWith=sk-) # @docs(https://xyzapi.com/docs/auth) XYZ_API_KEY= ``` Your `.env.schema` is committed to version control and safe for agents to read and update. The `varlock` CLI helps load and validate env vars while masking anything sensitive, and can securely inject env vars into commands. **NOTE:** If varlock is installed locally via `package.json` (not as a standalone binary), invoke it via your package manager — e.g., `pnpm exec varlock load`, `bunx varlock load`, `npm exec varlock load`. Check the project's package manager before running CLI commands. ## CRITICAL: Security rules These rules are non-negotiable: ### Do not expose secrets ```bash # NEVER do these - exposes secrets to agent context cat .env cat .env.local echo $SECRET_KEY printenv | grep API # SAFE alternatives varlock load --agent # JSON output, sensitive values redacted varlock load # human-readable, sensitive values masked