ende install
ende install installs dependencies and caches them for your project. For more
on how Ende handles modules, see
Modules and dependencies.
Examples
ende install
Use this command to install all dependencies defined in
ende.json. They are installed in the
global cache.
ende install [PACKAGES]
Use this command to install particular packages and add them to ende.json.
ende install jsr:@ende/testing jsr:@ende/path
Tip
You can also use ende add which is an alias to ende install [PACKAGES]
ende install --entrypoint [FILES]
Use this command to install all dependencies that are used in the provided files and their dependencies.
This is particularly useful if you use jsr:, http: or https: specifiers in
your code and want to cache all the dependencies before deploying your project.
import * as colors from "jsr:@ende/fmt/colors";
import { join } from "jsr:@ende/path";ende install -e main.js
Download jsr:@ende/fmt
Download jsr:@ende/path
ende install --global [PACKAGE_OR_URL]
Use this command to install the provided package or script as a globally available binary on your system.
This command creates a thin, executable shell script which invokes ende using
the specified CLI flags and main module. It is placed in the installation root.
Example:
ende install --global --allow-net --allow-read jsr:@ende/http/file-server
Download jsr:@ende/http/file-server...
✅ Successfully installed file-server.
/Users/ende/.ende/bin/file-server
To change the executable name, use -n/--name:
ende install -g -N -R -n serve jsr:@ende/http/file-server
The executable name is inferred by default:
- Attempt to take the file stem of the URL path. The above example would become 'file-server'.
- If the file stem is something generic like 'main', 'mod', 'index' or 'cli', and the path has no parent, take the file name of the parent path. Otherwise settle with the generic name.
- If the resulting name has an '@...' suffix, strip it.
To change the installation root, use --root:
ende install -g -N -R --root /usr/local/bin jsr:@ende/http/file-server
The installation root is determined, in order of precedence:
--rootoptionENDE_INSTALL_ROOTenvironment variable$HOME/.ende
Executables are placed in the bin subdirectory of the installation root,
unless the root path already ends with bin, in which case it is used directly.
The resulting directory must be added to the path manually if required.
echo 'export PATH="$HOME/.ende/bin:$PATH"' >> ~/.bashrc
You must specify permissions that will be used to run the script at installation time.
ende install -g -N -R jsr:@ende/http/file-server -- -p 8080
The above command creates an executable called file_server that runs with
network and read permissions and binds to port 8080.
For good practice, use the
import.meta.main idiom to specify the
entry point in an executable script.
Example:
// https://example.com/awesome/cli.ts
async function myAwesomeCli(): Promise<void> {
// -- snip --
}
if (import.meta.main) {
myAwesomeCli();
}
When you create an executable script make sure to let users know by adding an example installation command to your repository:
# Install using ende install
ende install -n awesome_cli https://example.com/awesome/cli.ts
ende install --global --compile [PACKAGE_OR_URL]
Use this command to compile a package or script into a standalone, self-contained binary. The resulting executable can be distributed and run without requiring Ende to be installed on the target system.
ende install --global --compile -A -n satz jsr:@ende/satz/cli
This combines the behavior of ende compile
with global installation — producing a native binary placed in the installation
root (same as --global without --compile).
--quiet flag
The --quiet flag suppresses diagnostic output when installing dependencies.
When used with ende install, it will hide progress indicators, download
information, and success messages.
ende install --quiet jsr:@ende/http/file-server
This is useful for scripting environments or when you want cleaner output in CI pipelines.
Uninstall
You can uninstall dependencies or binary script with ende uninstall command:
ende uninstall express
Removed express
ende uninstall -g file-server
deleted /Users/ende/.ende/bin/file-server
✅ Successfully uninstalled file-server
See ende uninstall page for more details.
Command line usage:
installInstalls dependencies either in the local project or globally to a bin directory
Options
--cached-only
Require that remote dependencies are already cached.
--cert
Load certificate authority from PEM encoded file.
--check
Set type-checking behavior. This subcommand type-checks local modules by default, so passing --check is redundant; pass --check=all to also type-check remote modules. Alternatively, use the 'ende check' subcommand.
--compile
Install the script as a compiled executable.
--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.
--entrypoint, -e
Install dependents of the specified entrypoint(s).
--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.
--force, -f
Forcefully overwrite existing installation.
--frozen-lockfile
Error out if lockfile is out of date.
--global, -g
Install a package or script as a globally available executable.
--import-map
Load import map file from local file or remote URL.
--inspect
Activate inspector on host:port [default: 127.0.0.1:9229]. Host and port are optional. Using port 0 will assign a random free port.
--inspect-brk
Activate inspector on host:port, wait for debugger to connect and break at the start of user script.
--inspect-publish-uid
--inspect-wait
Activate inspector on host:port and wait for debugger to connect before running user code.
--location
Value of globalThis.location used by some web APIs.
--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).
--name, -n
Executable file name.
--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.
--no-save
Install the package(s) without adding them to the configuration file.
--preload
A list of files that will be executed before the main module.
--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.
--root
Installation root.
--save-exact
Save exact version without the caret (^).
--seed
Set the random number generator seed.
--unsafely-ignore-certificate-errors
DANGER: Disables verification of TLS certificates.
--unscoped
Use the package name without its scope as the alias (ex. jsr:@david/jsonc-morph is added as jsonc-morph). Packages given an explicit alias are unaffected.
--v8-flags
To see a list of all available flags use --v8-flags=--help
Flags can also be set via the ENDE_V8_FLAGS environment variable.
Any flags set with this flag are appended after the ENDE_V8_FLAGS environment variable.
--vendor
Toggles local vendor folder usage for remote modules.