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

@davmash/bygone

v0.5.2

Published

See how change happened. Visual diff and file history.

Readme

Bygone

Bygone is a VS Code extension and standalone desktop app for visual diff and file history.

Bygone screenshot

Features

  • Editable two-way side-by-side diff view
  • Dynamic adjacent multi-panel diff view
  • Flowing connectors, block contours, and inline change highlighting
  • Git file history viewer with commit-by-commit navigation

Status

This project is usable as a local or private pre-release VS Code extension. The two-way diff and git history flows are the most complete. The multi-panel view is diff-focused, not a merge tool.

Migration Note

This project was renamed from Melden to Bygone.

  • VS Code extension id changed from davidmashburn.melden to davidmashburn.bygone
  • CLI changed from melden to bygone
  • Git difftool names changed from melden / melden-vscode to bygone / bygone-vscode
  • Existing users should reinstall the extension and re-run the difftool setup scripts

Install For Development

Install dependencies and compile:

npm install
npm run compile

Run the extension in VS Code:

  1. Open this folder in VS Code.
  2. Press F5.
  3. In the Extension Development Host, run one of the Bygone commands from the Command Palette.

Run the standalone desktop app locally:

npm run standalone:start

Run a headless standalone smoke check:

npm run standalone:smoke

For development only, you can install the repo-local launcher globally:

npm install -g .
bygone
bygone path/to/file-or-directory
bygone --diff path/to/left path/to/right
bygone --diff path/to/file1 path/to/file2 path/to/file3 [...]
bygone --dir path/to/left-dir path/to/right-dir
bygone --diff3 path/to/left path/to/middle path/to/right
bygone --dir3 path/to/left-dir path/to/middle-dir path/to/right-dir
bygone --history path/to/file
bygone --help

CLI defaults:

  • bygone opens Git directory history for the current directory.
  • bygone <file> opens file history.
  • bygone <directory> opens Git directory history for that directory.
  • bygone <left> <right> auto-selects file diff or directory compare.
  • bygone --diff <file1> <file2> <file3> ... opens multi-panel diff.

If the native desktop app is installed, the npm/source launcher prefers it and forwards the shell working directory. Set BYGONE_FORCE_BUNDLED=1 to force the npm-bundled Electron runtime instead.

The desktop app also includes Help -> Install Command Line Tools... for non-npm installs. Homebrew cask installs can provide the bygone command automatically.

Package For External Use

This repo is set up for local/private packaging. A typical release flow is:

npm install
npm test
npx @vscode/vsce package

That produces a .vsix you can install with Extensions: Install from VSIX....

Build the standalone desktop packages:

npm install
npm run package:desktop

That produces a macOS DMG in dist/. Cross-target packaging is split out because Windows and Linux builds may need additional Electron downloads or Wine support:

npm run package:desktop:mac:zip
npm run package:desktop:linux
npm run package:desktop:win
npm run package:desktop:all

Stage the scoped npm standalone package:

npm install
npm run package:npm
npm pack --dry-run ./dist/npm-package

The root package.json is the VS Code extension manifest and intentionally keeps the unscoped extension name bygone. The npm distribution is staged separately as @davidmashburn/bygone so the global launcher can avoid the already-taken bygone package name while preserving the VS Code extension id davidmashburn.bygone.

Homebrew packaging templates live in packaging/homebrew/. They are staged for local validation only until release artifact URLs and checksums exist.

Build the full local release artifact matrix:

npm run release:build

That runs tests, rebuilds the VSIX, stages and dry-run checks the npm package, builds desktop artifacts, and styles the Homebrew templates. If the local macOS DMG or Windows cross-build toolchain is unavailable, use node ./scripts/release.mjs --skip-dmg or node ./scripts/release.mjs --skip-windows while validating the rest of the matrix.

Publishing is intentionally explicit:

npm run release:publish

release:publish publishes the npm package, publishes the VS Code package, creates a GitHub release for desktop artifacts, and updates a Homebrew tap. Set BYGONE_HOMEBREW_TAP to a local tap checkout before publishing Homebrew formulas.

Run the release checks:

npm run release:check
npm run standalone:smoke

The standalone smoke check is intentionally run directly because Electron can abort on macOS when launched from a longer nested npm command chain, while the same smoke check passes as a direct release gate.

In the standalone window, you can also drag and drop:

  • 1 file to open git history for that file
  • 2 files or directories to open a side-by-side compare
  • 3 or more files to open a multi-panel compare
  • 3 directories to open a three-directory compare

Git Difftool

Bygone can be launched from git difftool through either the standalone app or the VS Code extension.

Configure the standalone launcher:

./scripts/configure-git-difftool-standalone.sh

That registers:

git difftool -t bygone

Configure the VS Code launcher:

./scripts/configure-git-difftool.sh

That registers:

git difftool -t bygone-vscode

The VS Code path launches:

vscode://davidmashburn.bygone/diff?left=...&right=...

The wrapper scripts are:

./scripts/bygone-difftool.sh <left-file> <right-file>
./scripts/bygone-standalone-difftool.sh <left-file> <right-file>

Commands

  • Bygone: Compare Files
  • Bygone: Compare Directories
  • Bygone: Compare Three Directories (Prototype)
  • Bygone: Compare Multiple Files
  • Bygone: Compare with Selected
  • Bygone: Compare Test Files
  • Bygone: Compare File History
  • Bygone: Compare Active File History

Limitations

  • Bygone is intentionally diff-focused; merge tooling is not exposed as a product feature.
  • Directory compare supports modified-file detection and file drill-down; deep tree ergonomics are still early.
  • The git history viewer currently steps through single-parent commit history for one file at a time.
  • Marketplace publishing metadata is not finalized yet.

Release Work

The current release checklist and remaining publication blockers are tracked in RELEASE_PLAN.md.

Codebase Guide

Architecture and implementation details are documented in CODEBASE.md.

Walkthrough

A screenshot-based walkthrough using Bygone on its own source tree lives in docs/walkthrough.md.

Why “Bygone”?

In short: this project is openly inspired by Meld, and Bygone is meant to carry that visual tradition into a more history-aware tool.

Meld was a direct inspiration for this project. Its visual diff metaphor is still one of the clearest and most human ways to understand change, and Bygone builds on that lineage while pushing further into revision history.

The name also nods to the bygone era before vibe-coding, when people were at least pretending to read, understand, and take responsibility for the code they were writing. This tool is about looking directly at what changed, where it came from, and how the current state emerged.

And yes, Codex, the irony is noted. Thanks for the assist.

Tests

Run the current unit checks with:

npm test