Skip to content

Instantly share code, notes, and snippets.

@paulmillr
Created March 23, 2025 17:35
Show Gist options
  • Save paulmillr/5a5c9acb64ef68ab43ad2cac3a8f5c00 to your computer and use it in GitHub Desktop.
Save paulmillr/5a5c9acb64ef68ab43ad2cac3a8f5c00 to your computer and use it in GitHub Desktop.
download vscode extensions as .vsix
javascript:(function()%7Bconst%20URL_VSIX_PATTERN%20%3D%20'https%3A%2F%2Fmarketplace.visualstudio.com%2F_apis%2Fpublic%2Fgallery%2Fpublishers%2F%24%7Bpublisher%7D%2Fvsextensions%2F%24%7Bextension%7D%2F%24%7Bversion%7D%2Fvspackage'%3B%0A%0Alet%20itemName%20%3D%20new%20URL(window.location.href).searchParams.get('itemName')%3B%0Alet%20%5Bpublisher%2C%20extension%5D%20%3D%20itemName.split('.')%3B%0Alet%20version%20%3D%20document.querySelector('%23versionHistoryTab%20tbody%20tr%20.version-history-container-column').textContent%3B%0A%0Alet%20url%20%3D%20URL_VSIX_PATTERN.replace('%24%7Bpublisher%7D'%2C%20publisher)%0A%09%09%09%09%09%09%20%20.replace('%24%7Bextension%7D'%2C%20extension)%0A%09%09%09%09%09%09%20%20.replace('%24%7Bversion%7D'%2C%20version)%3B%0A%0Awindow.open(url%2C%20'_blank')%3B%7D)()%3B
(() => {
let itemName = new URL(window.location.href).searchParams.get('itemName');
let [publisher, extension] = itemName.split('.');
let version = document.querySelector('#versionHistoryTab tbody tr .version-history-container-column').textContent;
let URL_VSIX_PATTERN = 'https://marketplace.visualstudio.com/_apis/public/gallery/publishers/${publisher}/vsextensions/${extension}/${version}/vspackage';
let url = URL_VSIX_PATTERN.replace('${publisher}', publisher).replace('${extension}', extension).replace('${version}', version);
// window.open(url, '_blank');
console.log(url);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment