Automated scripts to create VS Code profiles with predefined extension sets. Each profile includes a common set of extensions plus profile-specific ones.
├── extensions-common.txt # Extensions included in ALL profiles (required)
├── extensions-*.txt # Profile-specific extensions (create your own!)
├── setup-profiles.ps1 # Windows PowerShell script
├── setup-profiles.sh # Linux/macOS Bash script
└── README.md # This file
├── extensions-minimal.txt # Minimal profile example
├── extensions-python.txt # Python development example
├── extensions-java.txt # Java development example
├── extensions-web.txt # Web development example
├── extensions-cpp-dotnet.txt # C++ and .NET example
└── extensions-devops.txt # DevOps and containers example
The scripts automatically discover all extensions-*.txt files in the directory and create a profile for each one:
- Reads
extensions-common.txt(included in all profiles) - Scans for all
extensions-<ProfileName>.txtfiles - Creates a VS Code profile for each file found
- Installs common + profile-specific extensions (duplicates removed)
Profile names are automatically normalized from filenames:
- Converts to lowercase first, then capitalizes each word
- Replaces dashes (
-) and underscores (_) with spaces - Case-insensitive:
extensions-python.txt,extensions-PYTHON.txt,extensions-PyThOn.txt→ all create Python profile
Examples:
extensions-python.txt→ Python profileextensions-web-dev.txt→ Web Dev profileextensions-MY_custom_SETUP.txt→ My Custom Setup profileextensions-c++.txt→ C++ profile
The repository includes these example profiles:
| Profile | Extensions | Description |
|---|---|---|
| Minimal | Common + 1 | Basic setup with org-mode |
| Python | Common + 9 | Python, Jupyter, and data science tools |
| Java | Common + 13 | Java, Spring Boot, Maven, Gradle |
| Web | Common + 8 | Tailwind, Node.js, Live Server |
| C++ and .NET | Common + 8 | C++, C#, .NET DevKit |
| DevOps | Common + 5 | Docker, Azure, Remote containers |
Note: These are just examples! You can modify them or create your own.
All profiles include these extensions:
- Themes: Catppuccin theme and icons, VSCode icons
- AI: GitHub Copilot and Copilot Chat
- IntelliCode: AI-assisted development
- Git: GitLens
- Editor: Prettier, ESLint
- Utilities: Rainbow CSV, Version Lens, Path IntelliSense, NPM IntelliSense
- Keybindings: IntelliJ IDEA keybindings
.\setup-profiles.ps1 -DryRun.\setup-profiles.ps1chmod +x setup-profiles.sh./setup-profiles.sh --dry-run
# or
./setup-profiles.sh -d./setup-profiles.shOnce created, you can launch VS Code with a specific profile:
# Launch with a specific profile
code --profile "Python"
code --profile "Java"
code --profile "Web"
# Or switch profiles from VS Code
# Click on the profile icon in the bottom left corner-
Create a new file named
extensions-<YourProfileName>.txt# Example: Create a React profile touch extensions-react.txt # or on Windows New-Item extensions-react.txt
-
Add extension IDs (one per line)
dsznajder.es7-react-js-snippets burkeholland.simple-react-snippets msjsdiag.vscode-react-native -
Run the setup script
# The script will automatically detect the new file ./setup-profiles.ps1 # Windows ./setup-profiles.sh # Linux/macOS
-
Launch VS Code with your new profile
code --profile React
- ✅
extensions-golang.txt→ Golang profile - ✅
extensions-rust-dev.txt→ Rust Dev profile - ✅
extensions-data-science.txt→ Data Science profile - ❌
my-extensions.txt→ Won't be detected (must start withextensions-) - ❌
extensions-common.txt→ Reserved for common extensions
- Open VS Code Extensions view (
Ctrl+Shift+X/Cmd+Shift+X) - Click on an extension
- Find the ID in the extension details (e.g.,
ms-python.python)
Simply edit the corresponding extensions-*.txt file and run the script again.
Share your extensions-*.txt files with your team! They can:
- Copy the files to their directory
- Run the setup script
- Get the same extensions automatically
- Scans directory for all
extensions-*.txtfiles - Reads common extensions from
extensions-common.txt - For each profile file found:
- Extracts profile name from filename
- Reads profile-specific extensions
- Merges common + specific extensions
- Removes duplicates
- Creates the VS Code profile
- Installs all extensions
Create extensions-team-standard.txt with your team's required extensions.
extensions-frontend.txt- React, Vue, Angularextensions-backend.txt- Node.js, databases, API toolsextensions-mobile.txt- React Native, Flutter
extensions-rust.txtextensions-golang.txtextensions-typescript.txt
extensions-data-analysis.txtextensions-ml-research.txtextensions-game-dev.txt
- VS Code installed and available in PATH
- PowerShell 5.1+ (Windows) or Bash (Linux/macOS)
- Internet connection for downloading extensions
The full setup takes approximately 5-10 minutes depending on:
- Number of extensions
- Internet connection speed
- VS Code startup time
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser- Check internet connection
- Verify extension ID is correct
- Some extensions may not be available in all regions
- Ensure you have at least one
extensions-*.txtfile (besidesextensions-common.txt) - Check file naming: must start with
extensions-and end with.txt - Verify files are in the same directory as the script
- Restart VS Code
- Check the profile icon in the bottom left corner
- Verify the script completed without errors
Free to use and modify as needed.
Feel free to:
- Add more extension lists
- Improve the scripts
- Share your profile configurations
Note: Extensions are installed from the VS Code Marketplace. Make sure you review extensions before installing them in production environments.