Bun

bun outdated

Use bun outdated to check for outdated dependencies in your project. This command displays a table of dependencies that have newer versions available.

$bun outdated
bun outdated v1.2.2
Package
Current
Update
Latest
@sinclair/typebox
0.34.15
0.34.16
0.34.16
@types/bun (dev)
1.2.0
1.2.2
1.2.2
eslint (dev)
8.57.1
8.57.1
9.20.0
eslint-plugin-security (dev)
2.1.1
2.1.1
3.0.1
eslint-plugin-sonarjs (dev)
0.23.0
0.23.0
3.0.1
expect-type (dev)
0.16.0
0.16.0
1.1.0
prettier (dev)
3.4.2
3.5.0
3.5.0
tsup (dev)
8.3.5
8.3.6
8.3.6
typescript (dev)
5.7.2
5.7.3
5.7.3

Version Information

The output table shows three version columns:

  • Current: The version currently installed
  • Update: The latest version that satisfies your package.json version range
  • Latest: The latest version published to the registry

Dependency Filters

bun outdated supports searching for outdated dependencies by package names and glob patterns.

To check if specific dependencies are outdated, pass the package names as positional arguments:

$bun outdated eslint-plugin-security eslint-plugin-sonarjs
bun outdated v1.2.2
Package
Current
Update
Latest
eslint-plugin-security (dev)
2.1.1
2.1.1
3.0.1
eslint-plugin-sonarjs (dev)
0.23.0
0.23.0
3.0.1

You can also pass glob patterns to check for outdated packages:

$bun outdated 'eslint*'
bun outdated v1.2.2
Package
Current
Update
Latest
eslint (dev)
8.57.1
8.57.1
9.20.0
eslint-plugin-security (dev)
2.1.1
2.1.1
3.0.1
eslint-plugin-sonarjs (dev)
0.23.0
0.23.0
3.0.1

For example, to check for outdated @types/* packages:

$bun outdated '@types/*'
bun outdated v1.2.2
Package
Current
Update
Latest
@types/bun (dev)
1.2.0
1.2.2
1.2.2

Or to exclude all @types/* packages:

$bun outdated '!@types/*'
bun outdated v1.2.2
Package
Current
Update
Latest
@sinclair/typebox
0.34.15
0.34.16
0.34.16
eslint (dev)
8.57.1
8.57.1
9.20.0
eslint-plugin-security (dev)
2.1.1
2.1.1
3.0.1
eslint-plugin-sonarjs (dev)
0.23.0
0.23.0
3.0.1
expect-type (dev)
0.16.0
0.16.0
1.1.0
prettier (dev)
3.4.2
3.5.0
3.5.0
tsup (dev)
8.3.5
8.3.6
8.3.6
typescript (dev)
5.7.2
5.7.3
5.7.3

Workspace Filters

Use the --filter flag to check for outdated dependencies in a different workspace package:

$bun outdated --filter='@monorepo/types'
bun outdated v1.2.2
Package
Current
Update
Latest
tsup (dev)
8.3.5
8.3.6
8.3.6
typescript (dev)
5.7.2
5.7.3
5.7.3

You can pass multiple --filter flags to check multiple workspaces:

$bun outdated --filter @monorepo/types --filter @monorepo/cli
bun outdated v1.2.2
Package
Current
Update
Latest
eslint (dev)
8.57.1
8.57.1
9.20.0
eslint-plugin-security (dev)
2.1.1
2.1.1
3.0.1
eslint-plugin-sonarjs (dev)
0.23.0
0.23.0
3.0.1
expect-type (dev)
0.16.0
0.16.0
1.1.0
tsup (dev)
8.3.5
8.3.6
8.3.6
typescript (dev)
5.7.2
5.7.3
5.7.3

You can also pass glob patterns to filter by workspace names:

$bun outdated --filter='@monorepo/{types,cli}'
bun outdated v1.2.2
Package
Current
Update
Latest
eslint (dev)
8.57.1
8.57.1
9.20.0
eslint-plugin-security (dev)
2.1.1
2.1.1
3.0.1
eslint-plugin-sonarjs (dev)
0.23.0
0.23.0
3.0.1
expect-type (dev)
0.16.0
0.16.0
1.1.0
tsup (dev)
8.3.5
8.3.6
8.3.6
typescript (dev)
5.7.2
5.7.3
5.7.3

CLI Usage

$bun outdated filter

Flags

Configuration

-c,--config=<val>
Specify path to config file (bunfig.toml)
--registry=<val>
Use a specific registry by default, overriding .npmrc, bunfig.toml and environment variables

Lockfile Management

-y,--yarn
Write a yarn.lock file (yarn v1)
--no-save
Don't update package.json or save a lockfile
--save
Save to package.json (true by default)
--frozen-lockfile
Disallow changes to lockfile
--save-text-lockfile
Save a text-based lockfile
--lockfile-only
Generate a lockfile without installing dependencies

Dependency Management

-p,--production
Don't install devDependencies
-f,--force
Always request the latest versions from the registry & reinstall all dependencies
--ignore-scripts
Skip lifecycle scripts in the project's package.json (dependency scripts are never run)
--trust
Add to trustedDependencies in the project's package.json and install the package(s)
--omit=<val>
Exclude 'dev', 'optional', or 'peer' dependencies from install

Caching and Verification

--cache-dir=<val>
Store & load cached data from a specific directory path
--no-cache
Ignore manifest cache entirely
--no-verify
Skip verifying integrity of newly downloaded packages

Logging and Output

--silent
Don't log anything
--verbose
Excessively verbose logging
--no-progress
Disable the progress bar
--no-summary
Don't print a summary

Installation Behavior

--dry-run
Don't install anything
--concurrent-scripts=<val>
Maximum number of concurrent jobs for lifecycle scripts (default 5)
--network-concurrency=<val>
Maximum number of concurrent network requests (default 48)
--backend=<val>
Platform-specific optimizations for installing dependencies. Possible values: "clonefile" (default), "hardlink", "symlink", "copyfile"

Security and Certificates

--ca=<val>
Provide a Certificate Authority signing certificate
--cafile=<val>
The same as `--ca`, but is a file path to the certificate

Installation Scope

-g,--global
Install globally
--cwd=<val>
Set a specific cwd

Help

-h,--help
Print this help menu

Filtering

-F,--filter=<val>
Display outdated dependencies for each matching workspace

Examples

Display outdated dependencies in the current workspace.
bun outdated
Use --filter to include more than one workspace.
bun outdated --filter="*"
bun outdated --filter="./app/*"
Filter dependencies with name patterns.
bun outdated jquery
bun outdated "is-*"