| name | shared-env |
| description | Environment variable management with validation, documentation, and .env.example generation. |
| argument-hint | [--validate] [--generate-example] [--document] [--check-secrets] |
| allowed-tools | Bash, Write, Read, Glob, Grep |
Purpose
Manage environment variables safely: validate required vars are set, generate .env.example, document variables, and detect accidentally committed secrets.
Arguments
--validate — Check all required env vars are set (default)
--generate-example — Create/update .env.example from .env
--document — Generate ENV.md documentation
--check-secrets — Scan for secrets in codebase
What gets created/updated
.env.example # Template with placeholders
ENV.md # Documentation of all variables
.gitignore # Ensure .env is ignored
Environment file hierarchy
.env # Local overrides (git-ignored)
.env.local # Local secrets (git-ignored)
.env.development # Dev defaults (committed)
.env.production # Prod defaults (committed, no secrets)
.env.example # Template (committed)
Validation rules
For each variable, specify:
- required — Must be set
- optional — May be empty
- format — URL, email, number, boolean, etc.
- secret — Should never be committed
.env.example format
MONGODB_URI=mongodb://localhost:27017/myapp
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
LOG_LEVEL=info
Workflow
Validate (--validate)
- Load env schema (from code or config)
- Check each required var is set
- Validate formats
- Report missing/invalid
Generate example (--generate-example)
- Read current
.env
- Redact secret values
- Add placeholder comments
- Write
.env.example
Document (--document)
- Parse all env vars from codebase
- Extract from schema (Zod, etc.)
- Generate ENV.md with descriptions
Check secrets (--check-secrets)
- Scan codebase for env patterns
- Detect hardcoded secrets
- Report violations
Output
- Validation results (pass/fail per var)
- Files created/updated
- Warnings for potential issues
Reference
For schema patterns and validation, see reference/shared-env-reference.md