A powerful, cross-platform tool for exporting, sharing, and installing VSCode configurations. Perfect for developers who want to sync their setup across multiple machines or share their configuration with team members.
- 🔄 Bidirectional Sync: Export and install VSCode configurations
- 🌍 Cross-Platform: Works on macOS, Linux, and Windows
- 📦 Complete Backup: Settings, keybindings, and extensions
- 🛡️ Safe Installation: Automatic backup before changes
- 📋 Multiple Formats: Bash, Batch, and Python scripts
- 🎯 Team Ready: Perfect for standardizing team environments
- 📊 Detailed Reports: Clear summaries of exports and installations
Using Make (Recommended):
git clone https://github.com/your-username/vscode-config-export.git
cd vscode-config-export
make setup
make exportManual Method:
# Bash (macOS/Linux)
chmod +x scripts/export.sh
./scripts/export.sh
# Python (Cross-platform)
python3 scripts/export.py
# Windows
scripts\export.bat# Clone your exported config
git clone YOUR_REPO_URL
cd vscode-config-export
# Install using Make
make install
# Or manually
chmod +x scripts/install.sh
./scripts/install.shAll export and install operations automatically create backups that are stored in git for version control and team sharing:
# Manual backup management
make backup # Create backup of current config
make list-backups # List all available backups
make restore-backup # Show restore options
make backup-stats # Show backup statistics
# Restore from specific backup
make restore-from BACKUP=exports/backup-20250903-140530
# Cleanup old backups
make clean-old-backups # Remove backups older than 30 daysBackup Storage: All backups are stored in the backups/ directory and tracked in git for version control, team sharing, and collaboration.
| Component | Description | File |
|---|---|---|
| Settings | All VSCode preferences, themes, editor config | settings.json |
| Keybindings | Custom keyboard shortcuts | keybindings.json |
| Extensions | Installed extensions list | extensions.txt |
| Versioned Extensions | Extensions with specific versions | extensions-with-versions.txt |
# Export your setup
make export
# On new machine
git clone https://github.com/yourusername/my-vscode-config.git
cd my-vscode-config
make install# Team lead exports standardized config
make export
git add .
git commit -m "feat: team VSCode configuration"
git push
# Team members install
git clone TEAM_REPO_URL
cd vscode-config-export
make installUse make help to see all available commands:
make help # Show all commands
make setup # Set up development environment
make export # Export current config
make install # Install exported config
make test # Run tests
make lint # Check code quality
make clean # Clean temporary files- Review Before Sharing: Check
settings.jsonfor sensitive information - Remove Personal Data: Remove personal file paths and API keys
- Create Clean Versions: Use sanitized configs for team sharing
# Remove sensitive settings
cp settings.json settings-clean.json
# Manually remove sensitive keys or use jq:
jq 'del(.["github.accessToken"])' settings.json > settings-clean.json"code: command not found"
# Install VSCode CLI (macOS/Linux)
# In VSCode: Cmd/Ctrl + Shift + P → "Shell Command: Install 'code' command in PATH""Permission denied"
make setup # This will fix permissions
# Or manually:
chmod +x scripts/*.sh scripts/*.py"Extensions fail to install"
# Test individual extensions
cat extensions.txt | while read extension; do
echo "Installing $extension..."
code --install-extension "$extension" || echo "Failed: $extension"
done- 📚 Check CONTRIBUTING.md for development guidelines
- 🐛 Report bugs in GitHub Issues
- 💬 Ask questions in GitHub Discussions
| Platform | Export | Install | Status |
|---|---|---|---|
| macOS | ✅ | ✅ | Fully Supported |
| Linux | ✅ | ✅ | Fully Supported |
| Windows | ✅ | ✅ | Fully Supported |
vscode-config-export/
├── 📋 settings.json # VSCode settings
├── ⌨️ keybindings.json # Custom keybindings
├── 🧩 extensions.txt # Extension list
├── 🧩 extensions-with-versions.txt # Versioned extensions
├── 📁 scripts/ # All executable scripts
│ ├── export.sh # Export script (Bash)
│ ├── export.bat # Export script (Windows)
│ ├── export.py # Export script (Python)
│ └── install.sh # Install script (Bash)
├── 📁 tests/ # Test suite
├── 📁 docs/ # Documentation
├── 📁 .github/ # GitHub templates and workflows
├── 📄 Makefile # Development commands
├── 📦 package.json # Project metadata
├── 📚 CONTRIBUTING.md # Contribution guidelines
├── 📄 LICENSE # MIT License
├── 🔒 SECURITY.md # Security policy
├── 📋 CHANGELOG.md # Version history
└── 📖 README.md # This file
We welcome contributions! Please see CONTRIBUTING.md for detailed guidelines.
Quick Start for Contributors:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes and test:
make test - Lint your code:
make lint - Commit with conventional commits:
git commit -m 'feat: add amazing feature' - Push and create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Thanks to the VSCode team for creating an amazing editor
- Inspired by the developer community's need for better configuration management
- Built with ❤️ by contributors worldwide
⭐ Star this repository if you find it useful!
Made with ❤️ for the VSCode community
Last updated: September 3, 2025