npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vsxpub

v0.1.2

Published

A CLI tool to publish VS Code extensions to Marketplace, OpenVSX, and GitHub Releases.

Readme

vsxpub

npm version bundle JSDocs License

A CLI tool for publishing VS Code extensions to the Marketplace, OpenVSX, and GitHub Releases.

Usage

npx vsxpub

You can skip publishing to specific platforms by using the --include or --exclude. exclude is higher priority than include.

Examples:

  • Local development: npx vsxpub --exclude git to skip GitHub releases
  • CI/CD pipeline: npx vsxpub --include git to avoid configuring secrets

Environment Variables

Required environment variables:

  • GITHUB_TOKEN - GitHub personal access token
  • VSCE_PAT - VS Code Marketplace personal access token
  • OVSX_PAT - OpenVSX registry personal access token

For local development, follow the Visual Studio Marketplace and Open VSX Registry documentation to set up personal access tokens. For CI/CD, add these as GitHub repository secrets or skip specific platforms.

GitHub Actions Integration

Important: Release Page Creation

Before using vsxpub, ensure that your GitHub release page has been created. You can use tools like changelogithub to automatically create release pages with changelogs.

Example Workflow

name: Release

permissions:
  contents: write

on:
  push:
    tags:
      - 'v*'

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Set node
        uses: actions/setup-node@v4
        with:
          node-version: lts/*

      - name: Install pnpm
        uses: pnpm/action-setup@v3

      - run: pnpm install

      # Create release page with changelog
      - run: npx changelogithub
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}

      # Generate .vsix file
      - name: Generate .vsix file
        run: npx vsce package --no-dependencies

      # Publish extension to all platforms
      # Or you can skip publishing to specific platforms in CI and run npx vsxpub locally without configuring secrets
      - name: Publish Extension
        run: npx vsxpub --no-dependencies
        env:
          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
          VSCE_PAT: ${{secrets.VSCE_PAT}}
          OVSX_PAT: ${{secrets.OVSX_PAT}}

Why?

Modern IDEs like Cursor and Windsurf that fork VS Code obtain their extensions from OpenVSX instead of the official VS Code Marketplace. This creates significant additional workload for VS Code extension developers who need to manually synchronize their extensions to OpenVSX.

When versions become inconsistent between the two platforms, it causes numerous problems for users who expect the same extension experience across different IDEs.

Additionally, to handle more complex scenarios, vsxpub also uploads the .vsix file to the GitHub release page, providing users with the option for manual installation when automatic publishing to platforms is not possible or desired.

License

MIT License © jinghaihan