Effortlessly detect, compare, and synchronize .env files across your workspace.
Featuring visual diffs, automatic, manual, and template-based comparison modes.
Designed for enterprise environments and large monorepos.
Tested on Ubuntu, macOS, and Windows for maximum compatibility.
Thank you for using EnvSync-LE! If this extension has been helpful in managing your environment files, please consider leaving a rating on VS Code Marketplace and Open VSX. Your feedback helps other developers discover this tool and motivates continued development.
⭐ Enjoying EnvSync-LE? Leave a rating and help others find it too!
- Simple sync detection: Instantly see if your environment files are in sync.
- One‑click details: Click the status bar to open a comprehensive visual diff report showing which files are out of sync and which keys are missing.
- Clear signals: Status bar indicators for in-sync, missing/extra keys, and parse errors.
- Flexible modes: Auto scan, manual selection, or compare all files to a template.
- Noise control: Ignore comments, toggle case sensitivity, and debounce checks.
- Granular scope: Include/exclude file patterns and temporarily ignore specific files.
EnvSync-LE is part of a growing family of developer tools designed to make your workflow effortless:
-
Strings-LE - Extract every user-visible string from JSON, YAML, CSV, TOML, INI, and .env files with zero hassle
[VS Code Marketplace] [Open VSX] -
Numbers-LE - Extract and analyze numeric data from JSON, YAML, CSV, TOML, INI, and .env files
[VS Code Marketplace] [Open VSX] -
Paths-LE - Extract and analyze file paths from imports, configs, and dependencies
[VS Code Marketplace] [Open VSX] -
Scrape-LE - Verify page reachability and detect anti-scraping measures before deploying scrapers
[VS Code Marketplace] -
Colors-LE - Extract and analyze colors from CSS, HTML, JavaScript, and TypeScript
[VS Code Marketplace] [Open VSX] -
Dates-LE - Extract and analyze dates from logs, APIs, and temporal data
[VS Code Marketplace] [Open VSX] -
URLs-LE - Extract and analyze URLs from web content, APIs, and resources
[VS Code Marketplace] [Open VSX]
Each tool follows the same philosophy: Zero Hassle, Maximum Productivity.
Keep environment variables synchronized across multiple services:
project/
├── frontend/.env.local
├── backend/.env.local
├── database/.env.local
└── shared/.env.template
Ensure all team members have consistent environment configurations:
# .env.development (template)
DATABASE_URL=postgresql://localhost:5432/myapp_dev
REDIS_URL=redis://localhost:6379
API_BASE_URL=http://localhost:3000
# .env.local (individual)
DATABASE_URL=postgresql://localhost:5432/myapp_dev
REDIS_URL=redis://localhost:6379
API_BASE_URL=http://localhost:3000
DEBUG_MODE=trueValidate environment files before deployment:
# .env.production
DATABASE_URL=postgresql://prod-db:5432/myapp
REDIS_URL=redis://prod-redis:6379
API_BASE_URL=https://api.myapp.com
# .env.staging
DATABASE_URL=postgresql://staging-db:5432/myapp
REDIS_URL=redis://staging-redis:6379
API_BASE_URL=https://staging-api.myapp.comMonitor for configuration changes across different environments and alert when inconsistencies are detected.
- Install from VS Code Marketplace or Open VSX
- VS Code Marketplace: Install here
- Open VSX (Cursor, VSCodium): Install here
- Open a workspace containing one or more
.env*files. - Watch the status bar for sync status, or run commands:
- Compare Selected .env Files
- Set/Clear Template
- Ignore/Stop Ignoring/Clear All Ignored
- Open DotSync‑LE Settings
- Auto: Discover and compare all
.env*files automatically. - Manual: You pick which files to compare.
- Template: Treat one file as the source of truth and compare others to it.
- In‑sync: Green check with tooltip summary.
- Out‑of‑sync: Warning with number of affected files; click to open a detailed sync report.
- Parse errors: Error state with guidance to fix.
- Notification levels:
all,important, orsilent.
- Open via status bar click or the command:
DotSync‑LE: Show Sync Details. - Summarizes checked files, overall status, and issues.
- Lists missing keys per file and the reference file used for comparison.
- Includes parse/read errors, when present.
EnvSync‑LE: Show Sync Details(envsync-le.showIssues)EnvSync‑LE: Open Settings(envsync-le.openSettings)EnvSync‑LE: Compare Selected .env Files(envsync-le.compareSelected)EnvSync‑LE: Set Template File(envsync-le.setTemplate)EnvSync‑LE: Clear Template File(envsync-le.clearTemplate)EnvSync‑LE: Ignore File(envsync-le.ignoreFile)EnvSync‑LE: Stop Ignoring File(envsync-le.stopIgnoring)EnvSync‑LE: Clear All Ignored Files(envsync-le.clearAllIgnored)
envsync-le.enabled– Enable or disable the extensionenvsync-le.watchPatterns– Glob patterns for files to watch (default:**/.env*)envsync-le.excludePatterns– Globs to exclude from watchingenvsync-le.notificationLevel–all|important|silentenvsync-le.statusBar.enabled– Toggle status bar indicator
envsync-le.debounceMs– Debounce time (ms) before checking syncenvsync-le.ignoreComments– Ignore#commented lines when parsingenvsync-le.caseSensitive– Case‑sensitive key comparisonenvsync-le.comparisonMode–auto|manual|templateenvsync-le.compareOnlyFiles– Explicit files list for manual modeenvsync-le.templateFile– Template path for template modeenvsync-le.temporaryIgnore– Files temporarily excluded from checks
Monorepo Setup
{
"envsync-le.enabled": true,
"envsync-le.watchPatterns": ["**/.env*", "**/config/.env*"],
"envsync-le.excludePatterns": ["**/node_modules/**", "**/dist/**"],
"envsync-le.comparisonMode": "template",
"envsync-le.templateFile": ".env.template",
"envsync-le.notificationLevel": "important"
}Development Team
{
"envsync-le.enabled": true,
"envsync-le.watchPatterns": ["**/.env*"],
"envsync-le.ignoreComments": true,
"envsync-le.caseSensitive": false,
"envsync-le.debounceMs": 1000,
"envsync-le.notificationLevel": "all"
}CI/CD Pipeline
{
"envsync-le.enabled": true,
"envsync-le.comparisonMode": "manual",
"envsync-le.compareOnlyFiles": [".env.production", ".env.staging"],
"envsync-le.notificationLevel": "silent",
"envsync-le.statusBar.enabled": false
}- Chinese (Simplified), Spanish, French, Russian, Portuguese (Brazil)
- Japanese, Korean, German, Italian, Vietnamese, Ukrainian, Indonesian
- VS Code: 1.70.0 or higher
- Node.js: Not required (extension runs in VS Code's built-in runtime)
- Platform: Windows, macOS, Linux
- Memory: 30MB minimum, 100MB recommended for large workspaces
- Storage: 10MB for extension files
- Works in standard workspaces.
- Limited support in virtual/untrusted workspaces (no file watching in some cases).
EnvSync-LE is optimized for workspace monitoring:
| Operation | Performance | File Count Range | Hardware Tested |
|---|---|---|---|
| File Detection | <100ms | 1-1000 files | M1 Mac, Intel i7 |
| Sync Comparison | 50K+ keys/sec | 1-100 files | M1 Mac, Intel i7 |
| Status Updates | <50ms | Real-time | M1 Mac, Intel i7 |
| Large Workspace | <500ms | 1000+ files | M1 Mac, Intel i7 |
- Memory Usage: ~30MB base + 1MB per 100 .env files monitored
- File Watching: Debounced to prevent excessive processing (configurable)
- Large Workspaces: Monitors up to 10,000 .env files efficiently
- Real-time Updates: Status bar updates within 50ms of file changes
- Hardware Requirements: Minimum 2GB RAM, recommended 4GB+ for large workspaces
- Runs locally; no data is sent off your machine.
- Optional local‑only logs can be enabled with
envsync-le.telemetryEnabled.
Status bar not showing sync status
- Ensure workspace contains
.env*files - Check that
envsync-le.statusBar.enabledis set totrue - Verify
envsync-le.enabledistruein settings - Try reloading VS Code window (
Ctrl/Cmd + Shift + P→ "Developer: Reload Window")
Files not being detected
- Check
envsync-le.watchPatternsincludes your file patterns (default:**/.env*) - Ensure files are not excluded by
envsync-le.excludePatterns - Verify files are not in
envsync-le.temporaryIgnorelist
Sync comparison issues
- Check
envsync-le.caseSensitivesetting matches your environment - Ensure
envsync-le.ignoreCommentsis appropriate for your files - Verify comparison mode (
auto,manual,template) is correctly configured
Performance issues
- Increase
envsync-le.debounceMsfor large workspaces - Use
envsync-le.temporaryIgnorefor files you don't need to monitor - Consider reducing
envsync-le.notificationLeveltoimportantorsilent
Parse errors in .env files
- Check for malformed key-value pairs
- Ensure quotes are properly closed
- Verify no special characters in keys without proper escaping
Extension crashes or freezes
- Check VS Code version compatibility (requires 1.70.0+)
- Disable other environment-related extensions temporarily
- Check Output panel → "EnvSync-LE" for error messages
- Check the Issues page for known problems
- Enable telemetry logging:
envsync-le.telemetryEnabled: true - Review logs in Output panel → "EnvSync-LE"
Q: What file patterns are watched by default?
A: EnvSync-LE watches **/.env* files by default, which includes .env, .env.local, .env.production, etc. You can customize this with envsync-le.watchPatterns.
Q: How do I ignore specific files?
A: Use envsync-le.temporaryIgnore to temporarily ignore files, or envsync-le.excludePatterns for permanent exclusions using glob patterns.
Q: What's the difference between comparison modes? A: Auto discovers and compares all .env files automatically. Manual lets you pick which files to compare. Template treats one file as the source of truth.
Q: Can I make comparisons case-sensitive?
A: Yes, enable envsync-le.caseSensitive: true to make key comparisons case-sensitive. This is useful when your environment variables have specific casing requirements.
Q: How do I handle comments in .env files?
A: Enable envsync-le.ignoreComments: true to ignore lines starting with # when parsing .env files for comparison.
Q: What's the largest workspace supported? A: EnvSync-LE can monitor up to 10,000 .env files efficiently. For larger workspaces, consider using exclude patterns to limit the scope.
- 45 passing unit tests across 5 test suites
- 97.65% function coverage, 95.08% line coverage
- Tests powered by Vitest with V8 coverage
- Runs quickly and locally:
bun testorbun test --coverage - Coverage reports output to
coverage/(HTML summary atcoverage/index.html) - Core logic is designed for unit testing; additional suites will expand over time
Copyright © 2025 @OffensiveEdge. All rights reserved.

