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

fileswitcher

v1.0.0

Published

An unopinionated extension that will quickly jump to a file, of any type or location in your project)], related to the currently opened file.

Readme

FileSwitcher

FileSwitcher is an unopinionated VSCode extension that allows you to quickly jump to a file, of any type or location in your project, related to the currently opened file.

Switch to a test file and back to your code, go from JS to CSS, from a models folder to a controllers folder, and so on.

Easily write your own rules to match any file type based on your own application structure.5

Preview

Switch File

FileSwitcher Switch File

Create File

FileSwitcher Create File

Commands and Keybindings

Switch File

Opens a matching file in the current editor. If multiple matches are found a select will be displayed.

Default Keybind: alt + R

Switch File in Split Editor

Opens a matching file like "Switch File" but in a split editor.

Default Keybind: alt + shift + R

Create file from mapping

Will display a list of mappings for the current file that do not exist. When selecting one it will create the file at the given path.

List generated mappings for current file

Displays the generated file names used for matching for the current file. Useful for debugging mappings.

Configuration

fileswitcher.mappings

A configurable set of rules for files to match related files. Mappings should be an array of JSON objects. Each object should include a from and a to key.

The from key must be a string that converts to a regex. This regex should match the file you are triggering the "Switch File" command on.

The to key should be a string path to the target file to open when "Switch File" is triggered. You may use matches in the regex in the from setting by using :<match number>.

Example

"fileswitcher.mappings": [
  {
    "from": "app/(.+)\\.(.+)", // app/components/button/button.js
    "to": "test/:1.test.:2"    // test/components/button/button.test.js
  },
  {
    "from": "test/(.+).test\\.(.+)", // test/components/button/button.test.js
    "to": "app/:1.:2"                // app/components/button/button.js
  }
]

In the example above, triggering switch file on app/components/button/button.js will match the first mapping, set :1 to components/button/button and :2 to js. Then it will open the related file test/components/button/button_test.js. Triggering again on the test file will then match with the second mapping, and switch back to app/components/button/button.js.

Credits

Inspired by atom-ruby-test-switcher.