โ† All extensions

NPM Package.json Update Checker

v1.0.7 ยท by Evan Simpson ยท added 3 November 2026

๐Ÿ“ฅ Highlights outdated npm packages and shows changelogs in package.json. Changelogs from GitHub releases and/or CHANGELOG.md. Shown minimalistically without UI bloat.

Language servers

How to install

With Forge Super installed, the button above opens the app on this extension, where you press Install. Nothing is installed until you do.

You can also open the Extensions panel in the app and search for NPM Package.json Update Checker. The extension's id is npm-package-json-checker.

Don't have Forge Super yet? Download it here.

README

From the extension's repository, written by its authors and not by Mentenaz. See the source.

Features

  • ๐Ÿ“ฅ Highlights outdated packages in package.json in real-time
  • ๐Ÿ” Changelog between current version and latest version
    • Parses and combines GitHub releases and/or CHANGELOG.md
    • Shows changes from current to latest if possible
    • Goes direct without API calls with rate limits
  • ๐Ÿ”ง Offers auto-complete to update the package
    • Shows available release tracks
    • Includes fallback update targets from the current track (older than latest, newer than current)
  • ๐Ÿ“š Distinguishes between release tracks (major/minor/patch/canary/nightly/beta/alpha/experimental)

Auto-completions

Optional loading Indicator

The extension-side loading hint is enabled by default, but Zed disables inlay hints globally by default. Enable both layers in your Zed settings:

// settings.json
{
  "inlay_hints": {
    "enabled": true,
    "show_value_hints": true
  },
  "lsp": {
    "npm-package-json-checker-lsp": {
      "settings": {
        "show_loading_hints": true
      }
    }
  }
}

Install via Zed Extensions

  1. Open Zed
  2. cmd+shift+p and select zed: extensions
  3. Search/select NPM Update Checker and Install

Manual Installation

  1. Clone this repository
  2. Build the LSP:
    cargo build --locked --release -p npm-package-json-checker-lsp
    cp target/release/npm-package-json-checker-lsp .
    
  3. In Zed: Command Palette โ†’ "zed: install dev extension" โ†’ select this directory

The extension prefers this copied root binary during dev-extension testing, so it will not silently substitute a previously published GitHub asset.

To test the checkout locally, run cargo test --locked --workspace --all-features and cargo fmt --all -- --check. The release workflow also builds the extension for wasm32-wasip2.

Misc

  • Caches packages and attempts to not re-pull them if it doesn't need to

Configuration

Configure the extension in your Zed settings.json under lsp.npm-package-json-checker-lsp.settings.

Make sure to restart Zed or the LSP server after making changes.

KeyTypeDefaultDescription
registry_urlstring"https://registry.npmjs.org"Registry base URL used for package metadata lookups (manual override; .npmrc/env discovery is not used).
cache_ttl_secondsnumber300Cache TTL in seconds (0 disables cache reuse).
max_concurrent_requestsnumber10Max concurrent registry requests (minimum 1).
max_concurrent_changelog_requestsnumber4Max concurrent changelog requests (minimum 1).
request_timeout_secondsnumber15HTTP timeout in seconds (minimum 1).
show_loading_hintsbooleantrueShow loading inlay hints while package version metadata is being fetched. Zed's global inlay_hints.enabled setting must also be enabled.
show_experimental_tracksbooleanfalseShow extra hint diagnostics for newer non-current tracks (including experimental/pre-release tracks).
recent_releases_in_code_actionsnumber2Number of fallback "recent release" code actions on the current track (0 disables them).
date_tag_mode"date" | "timeago" | "date+timeago""date+timeago"Controls how release dates are rendered in labels/changelog headers.
date_formatstring"%d/%m/%Y"chrono date format string used when date_tag_mode includes date output.

Default settings snippet:

{
  "lsp": {
    "npm-package-json-checker-lsp": {
      "settings": {
        "registry_url": "https://registry.npmjs.org",
        "cache_ttl_seconds": 300,
        "max_concurrent_requests": 10,
        "max_concurrent_changelog_requests": 4,
        "request_timeout_seconds": 15,
        "show_loading_hints": true,
        "show_experimental_tracks": false,
        "recent_releases_in_code_actions": 2,
        "date_tag_mode": "date+timeago",
        "date_format": "%d/%m/%Y"
      }
    }
  }
}