Last active
February 7, 2026 00:17
-
-
Save joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0 to your computer and use it in GitHub Desktop.
Revisions
-
joeblackwaslike revised this gist
Feb 7, 2026 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -fsSL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/3437a6f70517432fb339134a1036f0841fa08816/get-ms-exts-cursor.sh" | bash -s -- --input-file "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/42791d3e90ebc51d31e9632e78e13f4afc6c209a/vscode-exts.txt" ``` -
joeblackwaslike renamed this gist
Feb 7, 2026 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
joeblackwaslike revised this gist
Feb 7, 2026 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -fsSL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/c5f05ca395817a952e692931c380e82bf5d1dd48/get-ms-exts.sh" | bash -s -- --input-file "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/42791d3e90ebc51d31e9632e78e13f4afc6c209a/vscode-exts.txt" ``` -
joeblackwaslike revised this gist
Feb 7, 2026 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -fsSL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/c5f05ca395817a952e692931c380e82bf5d1dd48/get-ms-exts.sh" | bash -s -- --input-file vscode-exts.txt ``` -
joeblackwaslike revised this gist
Feb 7, 2026 . 3 changed files with 177 additions and 195 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,170 @@ #!/usr/bin/env bash # ============================================================================ # Maintainer: Joe Black # Contact: https://github.com/joeblackwaslike # # Copyright (c) 2025 Joe Black # # License: MIT # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # In short: Do what you want, just credit Joe Black. For questions, suggestions, # or contributions, reach out via GitHub. # ============================================================================ # This script is 99% POSIX compliant and should be portable across macos and linux environments. # WARNING: # This script requires GNU grep (ggrep) on macOS because BSD grep does not support the -P (Perl regex) flag. # If you see errors related to grep or -P, install GNU grep with: # brew install grep # This will provide 'ggrep', which the script will use automatically if available. # # On Linux, the standard 'grep' is usually GNU grep and works out of the box. # Function to display usage/help message show_usage() { local script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>]" echo -e "\n--input-file <file>: Path to a file containing one VS Code extension ID per line (default: vscode-exts.txt)." echo -e "\nThis script downloads the latest VSIX for each extension ID listed in the input file." } # Function to display error and usage, then exit error_and_usage() { echo "Error: $1" show_usage exit 1 } # Default values for CLI flags input_file="vscode-exts.txt" # Parse arguments if [[ "$1" == "--help" ]]; then show_usage exit 0 fi # Parse CLI flags while [[ $# -gt 0 ]]; do case "$1" in --input-file) input_file="$2" shift 2 ;; *) error_and_usage "Unknown argument: $1" ;; esac done # Choose the right grep command: use ggrep if available (for Mac), else fallback to grep if command -v ggrep >/dev/null 2>&1; then GREP_CMD="ggrep" else GREP_CMD="grep" fi # Check if input file exists if [[ ! -f "$input_file" ]]; then error_and_usage "File '$input_file' not found!" fi # Create output directory if it doesn't exist output_dir="tmp-vsix-files" mkdir -p "$output_dir" # Array to keep track of failed downloads FAILED_EXTENSIONS=() # Read file line by line and process each extension ID while IFS= read -r extensionId; do # Skip empty lines and lines starting with # (comments) if [[ -z "$extensionId" || "$extensionId" =~ ^# ]]; then continue fi # Validate extensionId format (should be publisher.name) if ! [[ "$extensionId" =~ ^[^.]+\.[^.]+$ ]]; then echo "Warning: Skipping invalid extension ID: $extensionId" continue fi echo "Downloading VSIX from marketplace: $extensionId" publisher="${extensionId%%.*}" name="${extensionId#*.}" downloadUrl="https://$publisher.gallery.vsassets.io/_apis/public/gallery/publisher/$publisher/extension/$name/latest/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage" # Retry mechanism for curl (up to 3 attempts) success=0 for attempt in {1..3}; do if curl -L "$downloadUrl" -o "$output_dir/$name.vsix"; then success=1 break else echo "Warning: Download attempt $attempt for $extensionId failed." sleep 2 fi done if [[ $success -ne 1 ]]; then echo "Error: Failed to download $extensionId after 3 attempts." rm -f "$output_dir/$name.vsix" FAILED_EXTENSIONS+=("$extensionId") continue fi # Extract version from the VSIX manifest version=$(unzip -p "$output_dir/$name.vsix" extension.vsixmanifest | $GREP_CMD -oP '<Identity[^>]+Version="\K[^"]+') if [[ -z "$version" ]]; then echo "Error: Could not extract version for $extensionId" rm -f "$output_dir/$name.vsix" FAILED_EXTENSIONS+=("$extensionId") continue fi # Rename the VSIX file to include extensionId and version mv "$output_dir/$name.vsix" "$output_dir/${extensionId}-${version}.vsix" if [[ $? -ne 0 ]]; then echo "Error: Failed to rename $output_dir/$name.vsix to $output_dir/${extensionId}-${version}.vsix" rm -f "$output_dir/$name.vsix" FAILED_EXTENSIONS+=("$extensionId") continue fi cursor --install-extension "$output_dir/${extensionId}-${version}.vsix" done < "$input_file" # Print a summary report of failed downloads if [[ ${#FAILED_EXTENSIONS[@]} -gt 0 ]]; then echo -e "\n===============================" echo "Download Summary:" echo "The following extensions failed to download:" for ext in "${FAILED_EXTENSIONS[@]}"; do echo " - $ext" done echo "===============================" else echo -e "\nAll extensions installed successfully." fi /bin/rm -rf "$output_dir" This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,136 +0,0 @@ This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,78 +1,26 @@ # Note these are just my extensions which are only available in the official Microsoft marketplace. Take what you want and leave what you dont. :) bierner.markdown-checkbox bierner.markdown-emoji bierner.markdown-footnotes bierner.markdown-yaml-preamble burkeholland.simple-react-snippets Codeium.codeium ConradLudgate.rust-playground dbaeumer.vscode-eslint deerawan.vscode-dash frhtylcn.pythonsnippets jacano.vscode-pnpm kaih2o.python-resource-monitor leighlondon.eml linear.linear-connect matt-meyers.vscode-dbml ms-python.debugpy ms-python.vscode-python-envs ms-vscode-remote.remote-containers ms-vscode-remote.remote-ssh ms-vscode.remote-server ms-vscode.vscode-typescript-next supabase.vscode-supabase-extension wilsonsio.color-vision zhouronghui.propertylist -
joeblackwaslike revised this gist
Dec 2, 2025 . 1 changed file with 13 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,15 +1,21 @@ # Codeium.codeium # GitHub.copilot # GitHub.copilot-chat alefragnani.Bookmarks alefragnani.project-manager Amerey.markdown-math-snippets antfu.vite Anthropic.claude-code bierner.markdown-checkbox bierner.markdown-emoji bierner.markdown-footnotes bierner.markdown-mermaid bierner.markdown-preview-github-styles bierner.markdown-yaml-preamble bradlc.vscode-tailwindcss burkeholland.simple-react-snippets charliermarsh.ruff christian-kohler.npm-intellisense ConradLudgate.rust-playground DavidAnson.vscode-markdownlint dbaeumer.vscode-eslint @@ -20,28 +26,26 @@ esbenp.prettier-vscode fill-labs.dependi frhtylcn.pythonsnippets gel.edgedb GitHub.github-vscode-theme github.vscode-github-actions GitHub.vscode-pull-request-github golang.go Gruntfuggly.todo-tree Jacano.vscode-pnpm jannchie.ruff-ignore-explainer JScearcy.rust-doc-viewer kaih2o.python-resource-monitor KevinRose.vsc-python-indent leighlondon.eml lextudio.restructuredtext linear.linear-connect LyonSyonII.rust-syntax matt-meyers.vscode-dbml mechatroner.rainbow-csv MeshIntelligentTechnologiesInc.pieces-vscode mhutchie.git-graph ms-azuretools.vscode-containers ms-python.debugpy ms-toolsai.jupyter ms-vscode-remote.remote-containers ms-vscode-remote.remote-ssh @@ -54,19 +58,21 @@ ms-vscode.vscode-typescript-next mtxr.sqltools mtxr.sqltools-driver-mysql mtxr.sqltools-driver-pg nortakales.flipper-zero-syntax-highlighting redhat.vscode-xml redhat.vscode-yaml Redis.redis-for-vscode reduckted.vscode-gitweblinks remcohaszing.schemastore rust-lang.rust-analyzer samuelcolvin.jinjahtml SanjulaGanepola.github-local-actions Supabase.vscode-supabase-extension tamasfe.even-better-toml timonwong.shellcheck tomoki1207.pdf trond-snekvik.simple-rst vitest.explorer vsls-contrib.gistfs wilsonsio.color-vision zhouronghui.propertylist -
joeblackwaslike revised this gist
Oct 24, 2025 . 1 changed file with 0 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -59,7 +59,6 @@ redhat.vscode-yaml reduckted.vscode-gitweblinks remcohaszing.schemastore RooVeterinaryInc.roo-cline rust-lang.rust-analyzer samuelcolvin.jinjahtml SanjulaGanepola.github-local-actions -
joeblackwaslike revised this gist
Oct 24, 2025 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -fsSL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/24e8b0e627d9520d40480000d548f9cdc3e96ed8/install-vscode-exts.sh" | bash -s -- --helper code-insiders ``` -
joeblackwaslike revised this gist
Oct 24, 2025 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -34,7 +34,7 @@ show_usage() { local script_name script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>] [--helper <helper>]" echo -e "\n--input-file <file|https-url>: Path or https URL to a file containing one VS Code extension ID per line (default: https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/f6d50ca759f5ac0d5182c2701bb6f9586917f76c/vscode-exts.txt)." echo -e "\n--helper <helper>: CLI helper command to use for installing extensions (default: code)." echo -e "\nThis script installs the latest extension from the microsoft marketplace for each extension ID listed in the input file." } @@ -47,7 +47,7 @@ error_and_usage() { } # Default values for CLI flags input_file="https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/f6d50ca759f5ac0d5182c2701bb6f9586917f76c/vscode-exts.txt" helper="code" # Temp directory for remote downloads. Empty means no temp dir used. -
joeblackwaslike revised this gist
Oct 24, 2025 . 2 changed files with 10 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -fsSL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/c9b9d9f49ff71dd2f0175042756a2a56d9d1da73/install-vscode-exts.sh" | bash -s -- --helper code-insiders ``` This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -33,8 +33,9 @@ show_usage() { local script_name script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>] [--helper <helper>]" echo -e "\n--input-file <file|https-url>: Path or https URL to a file containing one VS Code extension ID per line (default: https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/27c47c9f9e6c2376e9b7193be7178eb77c2a428c/vscode-exts.txt)." echo -e "\n--helper <helper>: CLI helper command to use for installing extensions (default: code)." echo -e "\nThis script installs the latest extension from the microsoft marketplace for each extension ID listed in the input file." } @@ -47,6 +48,7 @@ error_and_usage() { # Default values for CLI flags input_file="https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/27c47c9f9e6c2376e9b7193be7178eb77c2a428c/vscode-exts.txt" helper="code" # Temp directory for remote downloads. Empty means no temp dir used. temp_dir="" @@ -65,6 +67,11 @@ while [[ $# -gt 0 ]]; do shift 2 ;; --helper) helper="$2" shift 2 ;; *) error_and_usage "Unknown argument: $1" ;; @@ -123,7 +130,7 @@ while IFS= read -r extensionId; do continue else echo "Installing extension from marketplace: $extensionId" $helper --install-extension "$extensionId" fi done < "$input_file" -
joeblackwaslike revised this gist
Oct 23, 2025 . 1 changed file with 0 additions and 4 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,7 +13,6 @@ Codeium.codeium ConradLudgate.rust-playground DavidAnson.vscode-markdownlint dbaeumer.vscode-eslint donjayamanne.githistory eamodio.gitlens EditorConfig.EditorConfig @@ -27,8 +26,6 @@ GitHub.github-vscode-theme github.vscode-github-actions GitHub.vscode-pull-request-github golang.go Gruntfuggly.todo-tree jannchie.ruff-ignore-explainer JScearcy.rust-doc-viewer @@ -54,7 +51,6 @@ ms-vscode.makefile-tools ms-vscode.remote-server ms-vscode.vscode-speech ms-vscode.vscode-typescript-next mtxr.sqltools mtxr.sqltools-driver-mysql mtxr.sqltools-driver-pg -
joeblackwaslike revised this gist
Oct 18, 2025 . 1 changed file with 3 additions and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -28,6 +28,7 @@ github.vscode-github-actions GitHub.vscode-pull-request-github golang.go google.geminicodeassist google.gemini-cli-vscode-ide-companion Gruntfuggly.todo-tree jannchie.ruff-ignore-explainer JScearcy.rust-doc-viewer @@ -61,6 +62,7 @@ redhat.vscode-xml redhat.vscode-yaml reduckted.vscode-gitweblinks remcohaszing.schemastore RooVeterinaryInc.roo-cline rust-lang.rust rust-lang.rust-analyzer samuelcolvin.jinjahtml @@ -70,5 +72,6 @@ tamasfe.even-better-toml timonwong.shellcheck tomoki1207.pdf trond-snekvik.simple-rst vsls-contrib.gistfs wilsonsio.color-vision zhouronghui.propertylist -
joeblackwaslike revised this gist
Oct 14, 2025 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -SL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/c9b9d9f49ff71dd2f0175042756a2a56d9d1da73/install-vscode-exts.sh" | bash ``` -
joeblackwaslike revised this gist
Oct 14, 2025 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -34,7 +34,7 @@ show_usage() { local script_name script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>]" echo -e "\n--input-file <file|https-url>: Path or https URL to a file containing one VS Code extension ID per line (default: https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/27c47c9f9e6c2376e9b7193be7178eb77c2a428c/vscode-exts.txt)." echo -e "\nThis script installs the latest extension from the microsoft marketplace for each extension ID listed in the input file." } @@ -46,7 +46,7 @@ error_and_usage() { } # Default values for CLI flags input_file="https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/27c47c9f9e6c2376e9b7193be7178eb77c2a428c/vscode-exts.txt" # Temp directory for remote downloads. Empty means no temp dir used. temp_dir="" -
joeblackwaslike revised this gist
Oct 14, 2025 . 3 changed files with 66 additions and 31 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,5 +3,5 @@ ## Usage ### Remote (no download necessary) ```sh curl -SL "https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/0362be75ab14032826cbd21a21be58d83cda8b4a/install-vscode-exts.sh" | bash ``` This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -31,9 +31,10 @@ # Function to display usage/help message show_usage() { local script_name script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>]" echo -e "\n--input-file <file|https-url>: Path or https URL to a file containing one VS Code extension ID per line (default: https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/0b92ffc2c65b130e2581ba1763858af497fe6751/vscode-exts.txt)." echo -e "\nThis script installs the latest extension from the microsoft marketplace for each extension ID listed in the input file." } @@ -47,6 +48,9 @@ error_and_usage() { # Default values for CLI flags input_file="https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/0b92ffc2c65b130e2581ba1763858af497fe6751/vscode-exts.txt" # Temp directory for remote downloads. Empty means no temp dir used. temp_dir="" # Parse arguments if [[ "$1" == "--help" ]]; then show_usage @@ -68,6 +72,38 @@ while [[ $# -gt 0 ]]; do done # If input_file is an https URL, download it to a temp directory and use that file # We clean up the temp directory on exit (success or failure). if [[ "$input_file" =~ ^https:// ]]; then # Ensure curl exists. We use curl for simple, reliable downloads. if ! command -v curl >/dev/null 2>&1; then error_and_usage "curl is required to fetch remote input files over https" fi # Create a temp directory. We store the fetched file here. temp_dir="$(mktemp -d -t vscode-exts.XXXXXXXX)" || error_and_usage "Failed to create temporary directory" # Define cleanup function and register EXIT trap right after we create temp_dir cleanup() { # Only remove if we actually created it if [[ -n "$temp_dir" && -d "$temp_dir" ]]; then rm -rf "$temp_dir" fi } trap cleanup EXIT # Destination path for the downloaded list remote_list="$temp_dir/vscode-exts.txt" # Fetch the URL. -f fails on HTTP errors. -s silent. -S shows errors. -L follows redirects. if ! curl -fSsL "$input_file" -o "$remote_list"; then error_and_usage "Failed to download input file from URL: $input_file" fi # Point input_file to the downloaded local file input_file="$remote_list" fi # Check if input file exists if [[ ! -f "$input_file" ]]; then error_and_usage "File '$input_file' not found!" This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,16 +2,27 @@ alefragnani.Bookmarks alefragnani.project-manager Amerey.markdown-math-snippets Anthropic.claude-code bierner.markdown-checkbox bierner.markdown-emoji bierner.markdown-footnotes bierner.markdown-mermaid bierner.markdown-preview-github-styles bierner.markdown-yaml-preamble charliermarsh.ruff Codeium.codeium ConradLudgate.rust-playground DavidAnson.vscode-markdownlint dbaeumer.vscode-eslint deerawan.vscode-dash donjayamanne.githistory eamodio.gitlens EditorConfig.EditorConfig esbenp.prettier-vscode fill-labs.dependi frhtylcn.pythonsnippets gel.edgedb GitHub.copilot GitHub.copilot-chat GitHub.github-vscode-theme github.vscode-github-actions GitHub.vscode-pull-request-github @@ -20,21 +31,36 @@ google.geminicodeassist Gruntfuggly.todo-tree jannchie.ruff-ignore-explainer JScearcy.rust-doc-viewer kaih2o.python-resource-monitor KevinRose.vsc-python-indent leighlondon.eml lextudio.restructuredtext LyonSyonII.rust-syntax matt-meyers.vscode-dbml mechatroner.rainbow-csv MeshIntelligentTechnologiesInc.pieces-vscode mhutchie.git-graph ms-azuretools.vscode-containers ms-python.debugpy ms-python.python ms-python.vscode-pylance ms-toolsai.jupyter ms-vscode-remote.remote-containers ms-vscode-remote.remote-ssh ms-vscode.cpptools ms-vscode.cpptools-extension-pack ms-vscode.makefile-tools ms-vscode.remote-server ms-vscode.vscode-speech ms-vscode.vscode-typescript-next ms-windows-ai-studio.windows-ai-studio mtxr.sqltools mtxr.sqltools-driver-mysql mtxr.sqltools-driver-pg redhat.vscode-xml redhat.vscode-yaml reduckted.vscode-gitweblinks remcohaszing.schemastore rust-lang.rust rust-lang.rust-analyzer samuelcolvin.jinjahtml @@ -44,32 +70,5 @@ tamasfe.even-better-toml timonwong.shellcheck tomoki1207.pdf trond-snekvik.simple-rst wilsonsio.color-vision zhouronghui.propertylist -
joeblackwaslike revised this gist
Oct 14, 2025 . 2 changed files with 9 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,7 @@ # VSCode Extension Installer ## Usage ### Remote (no download necessary) ```sh curl -SL ``` This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -33,7 +33,7 @@ show_usage() { local script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>]" echo -e "\n--input-file <file>: Path to a file containing one VS Code extension ID per line (default: https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/0b92ffc2c65b130e2581ba1763858af497fe6751/vscode-exts.txt)." echo -e "\nThis script installs the latest extension from the microsoft marketplace for each extension ID listed in the input file." } @@ -45,7 +45,7 @@ error_and_usage() { } # Default values for CLI flags input_file="https://gist.githubusercontent.com/joeblackwaslike/2767cc00b6aa45a15f5369f7189260a0/raw/0b92ffc2c65b130e2581ba1763858af497fe6751/vscode-exts.txt" # Parse arguments if [[ "$1" == "--help" ]]; then -
joeblackwaslike created this gist
Oct 14, 2025 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,93 @@ #!/usr/bin/env bash # ============================================================================ # Maintainer: Joe Black # Contact: https://github.com/joeblackwaslike # # Copyright (c) 2025 Joe Black # # License: MIT # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # In short: Do what you want, just credit Joe Black. For questions, suggestions, # or contributions, reach out via GitHub. # ============================================================================ # Function to display usage/help message show_usage() { local script_name="$(basename "$0")" echo "Usage: $script_name [--input-file <file>]" echo -e "\n--input-file <file>: Path to a file containing one VS Code extension ID per line (default: vscode-exts.txt)." echo -e "\nThis script installs the latest extension from the microsoft marketplace for each extension ID listed in the input file." } # Function to display error and usage, then exit error_and_usage() { echo "Error: $1" show_usage exit 1 } # Default values for CLI flags input_file="vscode-exts.txt" # Parse arguments if [[ "$1" == "--help" ]]; then show_usage exit 0 fi # Parse CLI flags while [[ $# -gt 0 ]]; do case "$1" in --input-file) input_file="$2" shift 2 ;; *) error_and_usage "Unknown argument: $1" ;; esac done # Check if input file exists if [[ ! -f "$input_file" ]]; then error_and_usage "File '$input_file' not found!" fi # Read file line by line and process each extension ID while IFS= read -r extensionId; do # Skip empty lines and lines starting with # (comments) if [[ -z "$extensionId" || "$extensionId" =~ ^# ]]; then continue fi # Validate extensionId format (should be publisher.name) if ! [[ "$extensionId" =~ ^[^.]+\.[^.]+$ ]]; then echo "Warning: Skipping invalid extension ID: $extensionId" continue else echo "Installing extension from marketplace: $extensionId" code --install-extension "$extensionId" fi done < "$input_file" This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,75 @@ alefragnani.Bookmarks alefragnani.project-manager Amerey.markdown-math-snippets Anthropic.claude-code bierner.markdown-mermaid bierner.markdown-preview-github-styles charliermarsh.ruff DavidAnson.vscode-markdownlint donjayamanne.githistory eamodio.gitlens EditorConfig.EditorConfig esbenp.prettier-vscode fill-labs.dependi gel.edgedb GitHub.github-vscode-theme github.vscode-github-actions GitHub.vscode-pull-request-github golang.go google.geminicodeassist Gruntfuggly.todo-tree jannchie.ruff-ignore-explainer JScearcy.rust-doc-viewer KevinRose.vsc-python-indent lextudio.restructuredtext LyonSyonII.rust-syntax mechatroner.rainbow-csv MeshIntelligentTechnologiesInc.pieces-vscode mhutchie.git-graph ms-azuretools.vscode-containers ms-toolsai.jupyter ms-vscode.makefile-tools mtxr.sqltools mtxr.sqltools-driver-mysql mtxr.sqltools-driver-pg redhat.vscode-xml redhat.vscode-yaml reduckted.vscode-gitweblinks rust-lang.rust rust-lang.rust-analyzer samuelcolvin.jinjahtml SanjulaGanepola.github-local-actions Tailscale.vscode-tailscale tamasfe.even-better-toml timonwong.shellcheck tomoki1207.pdf trond-snekvik.simple-rst bierner.markdown-checkbox bierner.markdown-emoji bierner.markdown-footnotes bierner.markdown-yaml-preamble ConradLudgate.rust-playground dbaeumer.vscode-eslint deerawan.vscode-dash frhtylcn.pythonsnippets kaih2o.python-resource-monitor leighlondon.eml matt-meyers.vscode-dbml ms-python.python ms-python.vscode-pylance ms-python.debugpy ms-vscode-remote.remote-containers ms-vscode-remote.remote-ssh ms-vscode.cpptools ms-vscode.cpptools-extension-pack ms-vscode.remote-server ms-vscode.vscode-typescript-next wilsonsio.color-vision zhouronghui.propertylist remcohaszing.schemastore ms-windows-ai-studio.windows-ai-studio Codeium.codeium GitHub.copilot GitHub.copilot-chat ms-vscode.vscode-speech