ende outdated

Checking for outdated dependencies

The outdated subcommand checks for new versions of the JSR dependencies listed in ende.json files, and displays dependencies that could be updated. Workspaces are fully supported.

For example, take a project with an ende.json file:

ende.json
{
  "imports": {
    "@ende/fmt": "jsr:@ende/fmt@^2026.10.14",
    "@ende/path": "jsr:@ende/[email protected]"
  }
}
ende outdated
┌────────────────┬────────────┬────────────┬────────────┐
│ Package        │ Current    │ Update     │ Latest     │
├────────────────┼────────────┼────────────┼────────────┤
│ jsr:@ende/path │ 2026.10.14 │ 2026.10.14 │ 2026.10.15 │
└────────────────┴────────────┴────────────┴────────────┘

The Update column lists the newest version the import's range allows, while the Latest column lists the latest version. @ende/path is pinned to an exact version, so it can't be updated without changing its range.

If you would prefer to only show packages that have new compatible versions you can pass the --compatible flag.

Updating dependencies

The outdated subcommand can also update dependencies with the --update flag. By default, it will only update dependencies within their ranges:

ende outdated --update
Updated 1 dependency:
 - jsr:@ende/fmt ^2026.10.14 -> ^2026.10.15

To update to the latest versions regardless of the ranges, pass the --latest flag:

ende outdated --update --latest
Updated 2 dependencies:
 - jsr:@ende/fmt  ^2026.10.14 -> ^2026.10.15
 - jsr:@ende/path  2026.10.14 ->  2026.10.15

ende update does the same as ende outdated --update.

Selecting packages

The outdated subcommand also supports selecting which packages to operate on. This works with or without the --update flag.

ende outdated --update --latest @ende/path

Multiple selectors can be passed, and wildcards (*) or exclusions (!) are also supported. For instance, to update all packages in the @ende scope, except for @ende/fmt:

ende outdated --update --latest "@ende/*" "!@ende/fmt"

Note that if you use wildcards, you will probably need to surround the argument in quotes to prevent the shell from trying to expand them.

Updating to specific versions

You can also select a specific version to update to by appending it after @.

ende outdated --update @ende/[email protected]

Workspaces

In a workspace setting, by default outdated will only operate on the current workspace member.

For instance, given a workspace:

ende.json
{
  "workspace": ["./member-a", "./member-b"]
}

Running

ende outdated

from the ./member-a directory will only check for outdated dependencies listed in ./member-a/ende.json.

To include all workspace members, pass the --recursive flag (the -r shorthand is also accepted).

ende outdated --recursive
ende outdated --update --latest -r

Command line usage:

outdated

Find outdated dependencies

Options

--cert

Load certificate authority from PEM encoded file.

--compatible

Only consider versions that satisfy semver requirements.

--config, -c

Configure different aspects of ende including TypeScript, linting, and code formatting. Typically the configuration file will be called ende.json or ende.jsonc and automatically detected; in that case this flag is not necessary.

--env-file

Load environment variables from local file Only the first environment variable with a given key is used. Existing process environment variables are not overwritten, so if variables with the same names already exist in the environment, their values will be preserved. Where multiple declarations for the same environment variable exist in your .env file, the first one encountered is applied. This is determined by the order of the files you pass as arguments.

--frozen-lockfile

Error out if lockfile is out of date.

--import-map

Load import map file from local file or remote URL.

--interactive, -i

Interactively select which dependencies to update.

--latest

Consider the latest version, regardless of semver constraints.

--lock

Check the specified lock file. (If value is not provided, defaults to "./ende.lock").

--lockfile-only

Install only updating the lockfile.

--min-dep-age

(Unstable) The age in minutes, ISO-8601 duration or RFC3339 absolute timestamp (e.g. '120' for two hours, 'P2D' for two days, '2025-09-16' for cutoff date, '2025-09-16T12:00:00+00:00' for cutoff time, '0' to disable).

--no-check

Skip type-checking. If the value of "remote" is supplied, diagnostic errors from remote modules will be ignored.

--no-config

Disable automatic loading of the configuration file.

--no-lock

Disable auto discovery of the lock file.

--no-remote

Do not resolve remote modules.

--recursive, -r

Include all workspace members.

--reload, -r

Reload source code cache (recompile TypeScript). With no value, reloads everything. Pass a comma-separated list of specifiers to reload only those modules; jsr:@ende/http/file-server,jsr:@ende/assert/equals reloads specific modules.

--unsafely-ignore-certificate-errors

DANGER: Disables verification of TLS certificates.

--update, -u

Update dependency versions.

--vendor

Toggles local vendor folder usage for remote modules.