Add and remove dependencies
Ende manages dependencies through your project’s ende.json import map. The
ende add and ende remove commands edit it for you, and ende install with a
package argument does the same.
Adding packages
Use the jsr: prefix for JSR packages:
$ ende add jsr:@ende/path jsr:@ende/fmt
Add jsr:@ende/path@^2026.10.15
Add jsr:@ende/fmt@^2026.10.15
ende install jsr:@ende/path is equivalent: it records the dependency the same
way and installs everything in one step.
Both end up in the imports map of ende.json, with a caret range:
{
"imports": {
"@ende/fmt": "jsr:@ende/fmt@^2026.10.15",
"@ende/path": "jsr:@ende/path@^2026.10.15"
}
}Import them by their bare name anywhere in the project:
import { join } from "@ende/path";
import { green } from "@ende/fmt/colors";
To pin an exact version instead of a caret range, pass --save-exact. To
request a specific version, spell it out:
ende add --save-exact jsr:@ende/[email protected]
Aliasing a package
The import map maps any name you like to any specifier. Aliases are also the way to use two versions of one package side by side:
{
"imports": {
"@ende/path": "jsr:@ende/path@^2026.10.15",
"path-old": "jsr:@ende/[email protected]"
}
}For overriding a dependency with a local copy, or remapping your own imports, see Overriding dependencies and Re-map import paths.
Removing packages
ende remove deletes the entry by its import-map name (not the package name, if
they differ):
$ ende remove @ende/fmt
Removed @ende/fmt
The lockfile keeps records of removed packages until you run ende install
again; see
the lockfile documentation
for how ende.lock tracks all of this.