Skip to content

Type to search extensions

NPM Package.json Update Checker

v1.0.7

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

Updated 1 month ago
34k downloads 19 stars Repository β†—

Logo

NPM Update Checker for Zed IDE

Highlights outdated npm packages and changelogs in package.json files minimalistically using a Rust LSP.

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

Zed auto-complete to upgrade quickly with the option to show multiple recent releases on current track.

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.

Key Type Default Description
registry_url string "https://registry.npmjs.org" Registry base URL used for package metadata lookups (manual override; .npmrc/env discovery is not used).
cache_ttl_seconds number 300 Cache TTL in seconds (0 disables cache reuse).
max_concurrent_requests number 10 Max concurrent registry requests (minimum 1).
max_concurrent_changelog_requests number 4 Max concurrent changelog requests (minimum 1).
request_timeout_seconds number 15 HTTP timeout in seconds (minimum 1).
show_loading_hints boolean true Show loading inlay hints while package version metadata is being fetched. Zed's global inlay_hints.enabled setting must also be enabled.
show_experimental_tracks boolean false Show extra hint diagnostics for newer non-current tracks (including experimental/pre-release tracks).
recent_releases_in_code_actions number 2 Number 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_format string "%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"
      }
    }
  }
}
ZedExt An unofficial community project. Not affiliated with Zed Industries.

Data from Zed’s extension registry and GitHub Β· updated