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

buddy-workbench

v0.1.92

Published

A minimal local workbench. Express serves both the interface and API, and manages local project scripts.

Readme

DevBuddy Workbench

A minimal local workbench. Express serves both the interface and API, and manages local project scripts.

Run

npm install
npm run build
npm start

Open http://localhost:3100. To use another port, run PORT=4000 npm start. Startup attempts to stop any process currently using the selected port.

When using the devbuddy CLI, pass the port directly with --port:

devbuddy start --port 4000
devbuddy restart --port 4000

Update the globally installed CLI from npm:

devbuddy self-update
devbuddy self-update 0.1.32

Running on macOS

Double-click Launcher (Terminal)

A pre-configured macOS launcher Start Buddy.command is available in the root directory.

  1. Simply double-click Start Buddy.command in Finder to start the workbench.
  2. A terminal window will open showing the server logs.
  3. Close the terminal window to stop the workbench and all of its running service processes.

Background App (Automator)

To run the workbench in the background without leaving a terminal window open:

  1. Open the Automator app on your Mac.
  2. Create a new document and choose Application.
  3. Search for the Run Shell Script action and drag it into the workflow.
  4. Set the Shell option to /bin/bash (or /bin/zsh).
  5. Paste the following script:
     # Load user shell profile to inherit full terminal PATH (like nvm, fnm, npm-global, etc.)
     if [ -f "$HOME/.zprofile" ]; then source "$HOME/.zprofile"; fi
     if [ -f "$HOME/.zshrc" ]; then source "$HOME/.zshrc"; fi
        
     # Fallbacks for standard paths and npm global binaries
     export PATH="$HOME/.npm-global/bin:/usr/local/bin:/opt/homebrew/bin:$PATH"
        
     cd "/Users/lynan/Documents/GitHub/buddy"
     npm start
    (Note: Adjust the path if the directory moves.)
  6. Save (Cmd + S) the document as Buddy.app in your Applications folder or Desktop.
  7. Custom Icon:
    • Copy the icon file ui/public/devbuddy.icns (Cmd + C).
    • Select Buddy.app, press Cmd + I (Get Info), click the small icon at the top-left of the info panel, and press Cmd + V.

UI development

The UI is an independent React + Vite project in ui/, built with Ant Design. Run npm run build to build it, then run npm start to start Express. For UI development, use npm run dev in one terminal and npm run dev:ui in another; Vite proxies API and plugin requests to Express.

Plugins

Create a manifest at plugins/<plugin-name>/plugin.json to add an item to the sidebar:

{ "name": "My feature", "icon": "✦", "view": "view.html" }

Plugins are discovered automatically. view points to an HTML fragment in the plugin directory. Place your HTML, scripts, and styles in an isolated plugin folder. Add API routes as needed for server-side capabilities.

Scripts and logs

Each service can have multiple named scripts. Run, stop, and view the last 1,000 lines of output for each script from the launcher. Logs are retained in memory until the workbench is restarted and refresh in the browser every second while the log window is open.