This guide covers how to publish the extension to the Visual Studio Code Marketplace.
- Microsoft Account: You need a Microsoft account to create a publisher
- Azure DevOps Organization: Required for publishing
- Personal Access Token (PAT): For authentication
- Go to Visual Studio Marketplace Publisher Management
- Sign in with your Microsoft account
- Click "Create Publisher"
- Fill in the details:
- Publisher ID:
objectui(must matchpublisherin package.json) - Display name: Object UI
- Description: Official publisher for Object UI
- Publisher ID:
- Go to Azure DevOps
- Click on your profile → Personal Access Tokens
- Click "New Token"
- Settings:
- Name: "VSCode Marketplace - Object UI"
- Organization: All accessible organizations
- Expiration: Custom (1 year recommended)
- Scopes: Marketplace → Manage
- Copy the token (you won't see it again!)
# Install vsce globally (if not already installed)
npm install -g @vscode/vsce
# Login with your publisher
vsce login objectui
# Enter your Personal Access Token when promptedcd packages/vscode-extension
# Install dependencies
pnpm install
# Build
pnpm build# Package the extension (creates .vsix file)
pnpm package
# Install in VSCode for testing
code --install-extension object-ui-0.1.0.vsix
# Test the extension
# 1. Open a .objectui.json file
# 2. Try auto-completion
# 3. Open preview
# 4. Test all commands# Verify the package
vsce ls
# Should list all files that will be included
# Make sure no unnecessary files are included# From packages/vscode-extension directory
# Publish to marketplace
pnpm publish
# Or manually with vsce
vsce publishThis will:
- Run
vscode:prepublishscript (builds the extension) - Package the extension
- Upload to the marketplace
- Make it available within a few minutes
-
Update version in
package.json:# Patch version (0.1.0 → 0.1.1) vsce publish patch # Minor version (0.1.0 → 0.2.0) vsce publish minor # Major version (0.1.0 → 1.0.0) vsce publish major
-
Update CHANGELOG.md with changes
-
Commit changes:
git add . git commit -m "Release v0.1.1" git push
-
Create GitHub Release:
- Go to GitHub releases
- Create new release
- Tag version:
vscode-extension-v0.1.1 - Attach the
.vsixfile - Document changes
For beta testing:
# Publish as pre-release
vsce publish --pre-releaseUsers can opt-in to pre-release versions in VSCode.
Warning: This removes the extension from the marketplace.
# Unpublish a specific version
vsce unpublish objectui.object-ui@0.1.0
# Unpublish all versions (careful!)
vsce unpublish objectui.object-ui- Visit: https://marketplace.visualstudio.com/items?itemName=objectui.object-ui
- Check that all information displays correctly
- Test installation from marketplace
Add marketplace badge to README:
[](https://marketplace.visualstudio.com/items?itemName=objectui.object-ui)- Update main Object UI README
- Post on GitHub Discussions
- Share on social media
- Update documentation
Solution: Make sure the publisher field in package.json matches your publisher ID.
Solution: Either:
- Convert icon.svg to icon.png (see ICON.md)
- Remove the
iconfield from package.json (not recommended)
Solution: Check .vscodeignore to exclude unnecessary files:
- Source files (src/)
- Test files
- Configuration files (tsconfig.json, etc.)
- node_modules is already excluded by default
Solution: Test the build locally first:
pnpm build
pnpm packageFor automated releases via GitHub Actions:
# .github/workflows/publish-vscode.yml
name: Publish VSCode Extension
on:
push:
tags:
- 'vscode-extension-v*'
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2
with:
version: 9
- uses: actions/setup-node@v3
with:
node-version: 18
cache: 'pnpm'
- run: pnpm install
- name: Publish to Marketplace
working-directory: packages/vscode-extension
run: pnpm publish
env:
VSCE_PAT: ${{ secrets.VSCE_PAT }}Add VSCE_PAT secret to your GitHub repository settings.
- Test thoroughly before publishing
- Update CHANGELOG.md with every release
- Use semantic versioning (major.minor.patch)
- Keep icon simple and recognizable at small sizes
- Write clear descriptions in package.json
- Respond to user feedback and issues promptly
- Maintain backward compatibility when possible
- VSCode Extension Publishing Guide
- Extension Manifest Reference
- Marketplace Publisher Portal
- vsce CLI Documentation
For issues related to publishing, contact:
- VSCode Marketplace Support: https://aka.ms/vsmarketplace-help
- Object UI Team: hello@objectui.org