CLI Reference
Elide supports multiple sub-commands organized by function.
Usage Syntax
Usage:
elide srcfile.{js|ts|jsx|tsx|py|java|kt...} [OPTIONS] [--] [ARG...]
or: elide {script} [OPTIONS] [--] [ARG...]
or: elide build|test|project [OPTIONS] [TASKS...]
or: elide info|help [OPTIONS]
or: elide run|serve [OPTIONS] [FILE] [ARG...]
or: elide javac|kotlinc|jar|javadoc|... [OPTIONS] [SOURCES...]Manage, configure, and run polyglot applications with Elide.
Server Commands
serve
HTTP server with static file serving and an interactive TUI dashboard. elide start is a visible alias for elide serve.
$ elide serve ./public # serve static files
$ elide serve --host 0.0.0.0 --port 8080 ./dist # custom bind
$ elide serve --no-tui ./public # plain log output| Flag | Default | Description |
|---|---|---|
--host <ADDR> |
127.0.0.1 |
Hostname or IP to bind to. |
--port <PORT> |
3000 |
Port to serve on. |
--no-tui |
false |
Disable the TUI dashboard, use plain log output. |
The subject argument is a directory to serve static files from.
dev
Development server with live-reload, file watching, and an interactive TUI dashboard. Automatically enables dev mode.
$ elide dev ./public
$ elide dev --no-tui ./public
$ elide dev --no-watch ./public
$ elide dev --port 8080 ./public| Flag | Default | Description |
|---|---|---|
--host <ADDR> |
127.0.0.1 |
Hostname or IP to bind to. |
--port <PORT> |
3000 |
Port to serve on. |
--no-tui |
false |
Disable the TUI dashboard. |
--no-watch |
false |
Disable file watching. |
Runner Commands
run
Run a script file or a snippet of code. Elide selects an appropriate language if given a clearly identifiable source file.
$ elide run app.js
$ elide run script.py
$ elide run --debugger app.js
$ elide run --coverage app.js| Flag | Description |
|---|---|
—debugger[=MODE] | Enable debugger (auto, cdp, dap). |
—profiler[=MODE] | Enable profiler (cputracing, cpusampling). |
—coverage[=MODE] | Enable code coverage collection. |
—lsp | Enable LSP features. |
—insights | Activate insight scripts. |
—allow-threads | Permit guest code to create host threads (denied by default). |
python
Run the embedded Python interpreter with a CPython-compatible CLI. An alias for elide run with the language pinned to Python.
$ elide python script.py
$ elide python -c "print('hello')"
$ elide python -m http.server
$ echo "print(1)" | elide python -| Flag | Description |
|---|---|
-c CMD | Run the given command string; trailing tokens become sys.argv. |
-m MODULE | Run a library module as __main__. |
-E | Ignore PYTHON* environment variables. |
-S | Don't imply import site on startup. |
-I | Isolate from the environment and user site packages. |
-B | Don't write bytecode (.pyc) files. |
-O | Increase the optimization level (repeatable). |
-u | Force unbuffered stdout/stderr. |
-W ARG | Configure warnings (repeatable). |
-P | Don't prepend a potentially unsafe path to sys.path. |
-b | Accepted for compatibility; currently a no-op. |
-x | Accepted for compatibility; currently a no-op. |
elide binary can stand in as python (e.g. via sys.executable).
test
Run a polyglot script, server, or interactive shell in test mode.
$ elide testProject Commands
init
Initialize a new Elide project.
$ elide initbuild
Run the project build or a build script.
$ elide build
$ elide build --no-cache
$ elide build --inspect| Flag | Description |
|---|---|
—inspect | Inspect the build. |
—no-cache | Disable build cache. |
—offline | Build offline; avoid remote fetches. |
install
Resolve and install all project dependencies across npm, PyPI, and Maven. See Dependencies for the full guide.
$ elide install
$ elide install --slim
$ elide install --with=sources
$ elide install --fresh| Flag | Description |
|---|---|
—slim | Slim installation — skip extra Maven classifiers (sources, javadoc). |
—with= | Also fetch a Maven classifier — —with=sources or —with=docs (alias for javadoc); attach with =/:, a space is not parsed. |
—fresh | Ignore caches/lockfiles and re-resolve everything. |
—direct | Copy resolved artifacts into the project repo instead of symlinking them. |
—ecosystems= | Restrict install to specific ecosystems (e.g. —ecosystems=maven,npm); empty means all. Conflicts with —workspace. |
—workspace | Install every discovered ecosystem (the default; conflicts with —ecosystems). |
aube
Run Elide's embedded npm package manager (aube). Arguments after -- pass through to aube.
$ elide aube -- install --ignore-scripts
$ elide aube -- --helpuv
Run Elide's embedded Python package manager (uv). Arguments after -- pass through to uv.
$ elide uv -- pip install rich
$ elide uv -- --helpaube and uv run only in the native Elide binary. They are handled directly by the native entrypoint and are not available when running Elide in JVM mode.
project
Manage Elide projects defined by elide.pkl or other manifests. Two
subcommands are available: project info prints resolved project metadata, and
project advice reports actionable suggestions about the project.
$ elide project # summary
$ elide project info # resolved project metadata
$ elide project advice # actionable project suggestionsLicensing Commands
pro
Manage Elide Pro licensing.
Subcommands:| Command | Description | |
|---|---|---|
pro activate | Activate Elide Pro with a license token. | |
`pro use | FILE>` | Install an offline license key or file. | |
pro whoami | Display current license information. | |
pro yeet | Remove the current license. |
$ elide pro activate elide_pro_1234567890abcdef
$ elide pro use /path/to/license.key
$ elide pro whoami
$ elide pro yeetLifecycle Commands
upgrade
Self-update the Elide binary using TUF (The Update Framework) for verified, secure updates.
$ elide upgrade
$ elide upgrade --check
$ elide upgrade --channel preview| Flag | Default | Description |
|---|---|---|
—check | false | Check for updates without applying. |
—force | false | Force update even if on latest version. |
—channel | build channel | Release channel (release, preview, nightly); defaults to the channel this build came from. Local/dev or unknown-channel builds fall back to release. |
info
Show information about the current Elide installation. Prints the Elide masthead
followed by version, build, platform, and provider details; pass --quiet (-q)
to omit the masthead.
$ elide info
$ elide info -q # omit the masthead
$ elide info --cargo-lockfile # print embedded Cargo.lock| Flag | Description |
|---|---|
—cargo-lockfile | Print the embedded Cargo.lock and exit. |
JVM Toolchain Commands
These commands expose embedded JVM tools. All accept tool-specific flags after--.
| Command | Description |
|---|---|
javac | Java compiler (up to JDK 25). |
kotlinc | Kotlin compiler. |
jar | Build and manage Java Archives. |
javadoc | Generate Java documentation. |
javap | Java class file disassembler. |
jdeps | Java class dependency analyzer. |
native-image | Native Image compiler. |
jib | Container image builder for JVM/native apps. |
java | Run a JAR or class via the embedded JVM (drop-in java). |
javaformat | Java code formatter. |
ktfmt | Kotlin code formatter. |
mvn | Embedded Maven build tool. |
$ elide javac -- [JAVAC_OPTIONS] [SOURCES...]
$ elide kotlinc -- [KOTLINC_OPTIONS] [SOURCES...]
$ elide jar -- [TOOL_OPTIONS] [FILES...]
$ elide native-image [OPTIONS]Developer Tools
lsp
Run an LSP (Language Server Protocol) instance for an Elide project.
$ elide lspmcp
Run an MCP (Model Context Protocol) server for an Elide project.
$ elide mcp
$ elide mcp --mode stdio
$ elide mcp --mode http --host localhost --port 8125| Flag | Default | Description |
|---|---|---|
—mode | none | Operating mode: stdio or http. |
—host | localhost | Bind host (HTTP mode). |
—port | 8125 | Bind port (HTTP mode). |
help
Show the documentation you are reading right now in the terminal.
$ elide help
$ elide help "something to search"To show documentation in languages other than your own:
$ elide help --lang fr
$ elide help -lukTo show all supported languages:
$ elide help --languagesrepl
Start an interactive polyglot REPL. Running elide with no arguments in a TTY
also drops into the REPL.
$ elide replOther Commands
format (alias fmt)
Format source files across languages. With no file arguments it formats the
project's manifest sources; otherwise it formats the files passed after --.
$ elide format # format the project's manifest sources
$ elide fmt -- src/app.ts # format specific filesmanifest
Inspect the resolved project manifest (elide.pkl).
$ elide manifestclasspath
Resolve and print the project's JVM classpath.
| Flag | Description |
|---|---|
—offline | Resolve without contacting remote repositories. |
$ elide classpathGlobal Options
All commands support these global options:
| Option | Description |
|---|---|
-h, --help |
Show help text for any command. |
-V, --version |
Print version information and exit. On Linux x86_64, --version is intercepted before runtime init for instant response. |
-v, --verbose |
Enable verbose output (debug logging). Sets ELIDE_LOG=debug. |
--debug |
Activate debugging features and trace-level logging. Sets ELIDE_LOG=trace. |
-q, --quiet |
Squelch most output. |
-p, --project <PATH> |
Path to a specific project directory. |
--color |
Force color mode. |
--no-color |
Force no-color mode. |
--error-format <FORMAT> |
Uncaught-error output format: pretty (default, decorative box on stdout) or plain (a parseable Name: message line plus an at <name> (<file>:<line>:<column>) stack on stderr, for scripts and test harnesses). Same effect as ELIDE_ERROR_FORMAT. |
--timeout <DURATION> |
Timeout to apply when exiting (human-readable, e.g. 30s, 5m). |
--locale <LOCALE> |
Override the display locale. |
--use-version <VERSION> |
Delegate to a specific installed Elide version. |
--ignore-version |
Ignore .elideversion and --use-version; run the current binary. |
--no-telemetry |
Disallow telemetry. Has no effect on unlicensed EAP builds. |
--no-sidecar |
Disable sidecar process; forces UDP fallback for telemetry on Linux. |
--cloud |
Enable cloud connection (overrides default for subcommand). |
--no-cloud |
Disable cloud connection. |
--no-native |
Disallow native access. |
--coverage[=MODE] |
Enable code coverage collection. (--debugger / --profiler are not global — see the run command.) |
-X, --vm <KEY=VALUE> |
Set a VM/engine property (can be repeated). |
--insights <FILES> |
Activate insight scripts. |
--sandbox |
Enable the filesystem capability sandbox (deny by default). Implied by any --allow-read / --allow-write. |
--allow-read[=PATHS] |
Grant filesystem read access. Bare --allow-read grants all reads; --allow-read=PATH[,PATH] scopes it. May be passed multiple times. |
--allow-write[=PATHS] |
Grant filesystem write access. Bare --allow-write grants all writes; --allow-write=PATH[,PATH] scopes it. May be passed multiple times. |
--fs-audit |
Log each filesystem access decision to stderr (sandbox audit). |
--transport <BACKEND> |
Select the network transport backend: auto, nio, epoll, io_uring, or kqueue. |
--pkgst / --no-pkgst |
Use the pkg.st accelerated package proxies (on by default); --no-pkgst hits upstream registries directly. |
-s, --snippet=<CODE> (alias --code) |
Execute an inline snippet (like Node/CPython -c): the first value is code, any following values become script arguments. |
-l, --language=<LANG> |
Language for --snippet: js, ts, or py (defaults to JavaScript). |
-Xmx<SIZE> / -XX:MaxHeapSize=<SIZE> |
JVM-style maximum-heap sizing for the isolate (e.g. 512m, 8g); recognized only before --. |
--safe-close |
Force a clean shutdown even in one-shot mode (needed for PGO profiling). |
--crash |
Immediately crash (for testing). |
-- |
Separator between Elide options and positional parameters / script arguments. |
Elide supports argument files (argfiles). Prefix a filename with @ to read options from that file, one per line. Arguments after -- are never expanded.
Exit Codes
| Code | Meaning |
|---|---|
0 |
Successful execution or --help / --version. |
1 |
Generic failure: invalid arguments, server error, configuration error, license gate block, EAP expired, initialization failure. |
2 |
Exception in user code (guest language runtime error). |
On Linux x86_64, --version exits via a raw syscall(exit_group, 0) before the Rust runtime initializes, so the exit code is always 0.
Environment Variables
| Variable | Description |
|---|---|
ELIDE_LOG |
Log level (trace, debug, info, warn, error). Overridden by --verbose and --debug. |
ELIDE_ERROR_FORMAT |
Set to plain to emit a parseable Name: message line plus stack frames to stderr for uncaught errors (the eshost / Test262 shell-host contract) instead of the decorative box. Same effect as --error-format=plain. |
ELIDE_JS_TEST262 |
Internal — for the Test262 conformance harness only. Set to 1 to expose the GraalJS $262 host object (createRealm, evalScript, detachArrayBuffer, global, gc) via js.test262-mode. Off by default; $262 is never present in normal runs. |