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