Skip to content

import Update from "/snippets/cli/update.mdx";

NOTE

To upgrade your Bun CLI version, see [`bun upgrade`](/installation#upgrading).

To update all dependencies to the latest version:

sh
bun update

To update a specific dependency to the latest version:

sh
bun update [package]

--interactive ​

For a more controlled update experience, use the --interactive flag to select which packages to update:

sh
bun update --interactive
bun update -i

This launches an interactive terminal interface that shows all outdated packages with their current and target versions. You can then select which packages to update.

Interactive Interface ​

The interface displays packages grouped by dependency type:

txt
? Select packages to update - Space to toggle, Enter to confirm, a to select all, n to select none, i to invert, l to toggle latest

  dependencies                Current  Target   Latest
    □ react                   17.0.2   18.2.0   18.3.1
    □ lodash                  4.17.20  4.17.21  4.17.21

  devDependencies             Current  Target   Latest
    □ typescript              4.8.0    5.0.0    5.3.3
    □ @types/node             16.11.7  18.0.0   20.11.5

  optionalDependencies        Current  Target   Latest
    □ some-optional-package   1.0.0    1.1.0    1.2.0

Sections:

  • Packages are grouped under section headers: dependencies, devDependencies, peerDependencies, optionalDependencies
  • Each section shows column headers aligned with the package data

Columns:

  • Package: Package name (may have suffix like dev, peer, optional for clarity)
  • Current: Currently installed version
  • Target: Version that would be installed (respects semver constraints)
  • Latest: Latest available version

Keyboard Controls ​

Selection:

  • Space: Toggle package selection
  • Enter: Confirm selections and update
  • a/A: Select all packages
  • n/N: Select none
  • i/I: Invert selection

Navigation:

  • ↑/↓ Arrow keys or j/k: Move cursor
  • l/L: Toggle between target and latest version for current package

Exit:

  • Ctrl+C or Ctrl+D: Cancel without updating

Visual Indicators ​

  • ☑ Selected packages (will be updated)
  • □ Unselected packages
  • > Current cursor position
  • Colors: Red (major), yellow (minor), green (patch) version changes
  • Underlined: Currently selected update target

Package Grouping ​

Packages are organized in sections by dependency type:

  • dependencies - Regular runtime dependencies
  • devDependencies - Development dependencies
  • peerDependencies - Peer dependencies
  • optionalDependencies - Optional dependencies

Within each section, individual packages may have additional suffixes ( dev, peer, optional) for extra clarity.

--recursive ​

Use the --recursive flag with --interactive to update dependencies across all workspaces in a monorepo:

sh
bun update --interactive --recursive
bun update -i -r

This displays an additional "Workspace" column showing which workspace each dependency belongs to.

--latest ​

By default, bun update will update to the latest version of a dependency that satisfies the version range specified in your package.json.

To update to the latest version, regardless of if it's compatible with the current version range, use the --latest flag:

sh
bun update --latest

In interactive mode, you can toggle individual packages between their target version (respecting semver) and latest version using the l key.

For example, with the following package.json:

json
{
  "dependencies": {
    "react": "^17.0.2"
  }
}
  • bun update would update to a version that matches 17.x.
  • bun update --latest would update to a version that matches 18.x or later.