EnvSync-LE: Zero Hassle .env Sync
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!
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!
✅ Why EnvSync‑LE
- 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.
🚀 More from the LE Family
Each tool follows the same philosophy: Zero Hassle, Maximum Productivity.
💡 Use Cases & Examples
Monorepo Environment Management
Keep environment variables synchronized across multiple services:
project/
├── frontend/.env.local
├── backend/.env.local
├── database/.env.local
└── shared/.env.template
Development Team Coordination
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=true
CI/CD Pipeline Validation
Validate 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.com
Configuration Drift Detection
Monitor for configuration changes across different environments and alert when inconsistencies are detected.
🚀 Quick Start
- Install from VS Code Marketplace or Open VSX
- 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
🔁 Comparison Modes
- 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.
📣 Status Bar & Notifications
- 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, or silent.
🧾 Sync Details Report
- 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.
🧭 Commands
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)
⚙️ Configuration
Basic Settings
envsync-le.enabled – Enable or disable the extension
envsync-le.watchPatterns – Glob patterns for files to watch (default: **/.env*)
envsync-le.excludePatterns – Globs to exclude from watching
envsync-le.notificationLevel – all | important | silent
envsync-le.statusBar.enabled – Toggle status bar indicator
Advanced Options
envsync-le.debounceMs – Debounce time (ms) before checking sync
envsync-le.ignoreComments – Ignore # commented lines when parsing
envsync-le.caseSensitive – Case‑sensitive key comparison
envsync-le.comparisonMode – auto | manual | template
envsync-le.compareOnlyFiles – Explicit files list for manual mode
envsync-le.templateFile – Template path for template mode
envsync-le.temporaryIgnore – Files temporarily excluded from checks
Real-World Configuration Examples
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
}
🌍 English + 12 translations
- Chinese (Simplified), Spanish, French, Russian, Portuguese (Brazil)
- Japanese, Korean, German, Italian, Vietnamese, Ukrainian, Indonesian
🧩 System Requirements
- 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
🧩 Compatibility
- Works in standard workspaces.
- Limited support in virtual/untrusted workspaces (no file watching in some cases).
EnvSync-LE is optimized for workspace monitoring. For detailed information, see Performance 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
🔒 Privacy & Telemetry
- Runs locally; no data is sent off your machine.
- Optional local‑only logs can be enabled with
envsync-le.telemetryEnabled.
🔧 Troubleshooting
Common Issues
Status bar not showing sync status
- Ensure workspace contains
.env* files
- Check that
envsync-le.statusBar.enabled is set to true
- Verify
envsync-le.enabled is true in settings
- Try reloading VS Code window (
Ctrl/Cmd + Shift + P → "Developer: Reload Window")
Files not being detected
- Check
envsync-le.watchPatterns includes your file patterns (default: **/.env*)
- Ensure files are not excluded by
envsync-le.excludePatterns
- Verify files are not in
envsync-le.temporaryIgnore list
Sync comparison issues
- Check
envsync-le.caseSensitive setting matches your environment
- Ensure
envsync-le.ignoreComments is appropriate for your files
- Verify comparison mode (
auto, manual, template) is correctly configured
Performance issues
- Increase
envsync-le.debounceMs for large workspaces
- Use
envsync-le.temporaryIgnore for files you don't need to monitor
- Consider reducing
envsync-le.notificationLevel to important or silent
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
Getting Help
- Check the Issues page for known problems
- Enable telemetry logging:
envsync-le.telemetryEnabled: true
- Review logs in Output panel → "EnvSync-LE"
❓ FAQ
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.
📊 Testing
45 unit tests • 97.65% function coverage, 95.08% line coverage
Powered by Vitest • Run with bun run test:coverage
Core Principle
No broken or failed tests are allowed in commits. All tests must pass before code can be committed or merged.
Test Coverage
- 45 passing unit tests across 5 test suites
- Tests powered by Vitest with V8 coverage
- Runs quickly and locally:
bun test or bun test --coverage
- Coverage reports output to
coverage/ (HTML summary at coverage/index.html)
- Core logic is designed for unit testing; additional suites will expand over time
For detailed testing guidelines, see Testing Guidelines.
Copyright © 2025
@OffensiveEdge. All rights reserved.