π dotenvy makes it effortless to manage and switch between your .env files directly inside VS Code. No more manual renaming or copy-pastingβjust pick your environment and start coding immediately!
π₯ Install from VS Code Marketplace β’ π Documentation β’ π Report Issues
Effortlessly switch between .env.development, .env.staging, .env.production, or any custom .env.* file with a single click.
Automatically scans your workspace for .env files and syncs seamlessly across multi-workspace setups.
Automatically switch environments based on Git branch changes (develop β .env.development, staging β .env.staging, etc.)
Validate .env files for syntax errors, required variables, and type checking with custom regex patterns.
Compare environment files side-by-side before switching to preview changes and avoid surprises.
Prevent committing sensitive data with pre-commit hooks that scan for secrets, validation errors, and block .env files.
Bidirectional cloud sync with Doppler Secrets Manager for team-based environment variable management.
Automatic backup creation before switching, with portable AES-256-GCM encrypted backups that work across any device.
Real-time environment indicator in status bar showing current configuration, validation status, and cloud sync state.
Deleted a crucial variable by mistake? No worries. Restore it with a single click from the new Session Trash Bin.

Review your .env changes exactly like you review Git commits.

Track your usage, stability metrics, and most active environments directly from your dashboard.

Manage all your environments seamlessly from a clean, native sidebar.

Production-grade secret detection powered by a custom ML model with HMAC-secured communication and an interactive Secrets Panel.
- π OS-Encrypted Secret Storage β Shared secret stored in VS Code SecretStorage (Keychain / libsecret / Credential Manager), never in the compiled bundle
- 35-Feature ML Model (fixed) β Feature count corrected from 31 β 35, entropy normalization fixed to match Python backend exactly
- π Secrets Panel β Full WebviewPanel shows all detected secrets (no more 5-item cap) with filter by confidence, search, View / Move to .env / Not a Secret buttons
- π§ AI Training Feedback β "Not a Secret" and "Move to .env" send labeled training samples to the Railway model β it learns from your corrections
- π« .dotenvyignore β New file (same syntax as
.gitignore) lets you exclude files and folders from secret scanning - π Centralized Logging β All extension logs visible in VS Code Output panel β DotEnvy
- π Smart Fallback β Local fallback analysis uses all 35 features including variable name signals (e.g.
DB_PASSincreases risk even with low entropy)
We take your code's security seriously. Here is exactly how DotEnvy handles your data during AI secret scanning:
- Targeted Analysis: DotEnvy does NOT upload your entire workspace. Only the specific line containing a suspected secret (and its immediate surrounding context) is sent to our LLM engine for verification.
- Zero Retention (Ephemeral Processing): The
secret_valueandcontextsent for analysis are processed exclusively in-memory. We do not store, log, or save your source code or secrets on our servers. - Opt-in Model Training: We only use data to train our ML models when you explicitly provide feedback (e.g., clicking "Not a Secret" or "Move to .env"). This sends 35 anonymized numerical features and your action label.
- Secure Communication: All API requests are strictly authenticated using a unique
X-Machine-IDand an HMACX-Extension-Signatureto prevent abuse and secure data in transit.
All commands are accessible via the Command Palette (Ctrl+Shift+P / β+Shift+P).
DotEnvy: Switch Environmentβ Switch between.envfilesDotEnvy: Open Variable Managerβ Open the full-page variable editor tabDotEnvy: Validate Environment Filesβ Validate for syntax errors and required variables
DotEnvy: View Environment Historyβ View the dense history table and slide-over advanced filtersDotEnvy: Open Trash Binβ Recover accidental deletions or changes in real-timeDotEnvy: Open Analytics Panelβ View heatmap and stability metricsDotEnvy: Open Timeline Panelβ View the SVG timeline viewer tab
DotEnvy: Install Git Commit Hookβ Block commits containing secretsDotEnvy: Remove Git Commit Hookβ Remove the installed hook
DotEnvy: Pull Environment from Cloudβ Pull from DopplerDotEnvy: Push Environment to Cloudβ Push to Doppler
DotEnvy: Scan for Secretsβ Scan workspace with AI-powered detection; opens Secrets Panel with all findingsDotEnvy: Init .dotenvyignoreβ Create a pre-populated.dotenvyignorefileDotEnvy: Setup LLM Secretβ Store the HMAC shared secret securely in OS vault
DotEnvy: Ignore this pathβ Right-click any file or folder β add to.dotenvyignoreinstantly
DotEnvy: Feedback & Supportβ Access feedback and support resourcesDotEnvy: Show What's Newβ View changelog for current version
Control which files DotEnvy skips when scanning for secrets β same syntax as .gitignore:
# .dotenvyignore
# DotEnvy's own data (always recommended)
.dotenvy/**
.dotenvy-backups/**
# Test files (often contain example secrets)
**/*.test.ts
**/*.spec.ts
tests/**
# Docs with example secrets
docs/**
README.md
SECURITY.md
# Specific files
k8s/secrets.yamlRun DotEnvy: Init .dotenvyignore to create a default file, or right-click any file/folder in the Explorer and choose "DotEnvy: Ignore this path".
- Open VS Code
- Go to Extensions (
Ctrl+Shift+X/β+Shift+X) - Search for "dotenvy"
- Click Install
- Download from VS Code Marketplace
- Manual: Download
.vsixfile and install via VS Code
- VS Code 1.90.0 or later
-
Place your environment files in your project root:
.env.development .env.staging .env.production
-
Open the Command Palette (
Ctrl+Shift+P). -
Run
DotEnvy: Switch Environmentand pick your environment. -
The selected file is copied to
.envautomatically.
β The status bar updates to show the active environment.
{
"cloudSync": {
"provider": "doppler",
"project": "your-project-name",
"config": "development",
"token": "dp.pt.your_token_here"
}
}For upcoming features, see ROADMAP.md.
Issues and PRs are welcome! Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.
