CLI Reference

Elide command groups, global options, and exit codes

Run elide --help for the everyday command list and elide --help-all for advanced commands and flags. Every subcommand also supports --help, and elide help <command> prints that command’s section of this page.

Run and develop

run

Run a source file, a named script, or the project entrypoint. JavaScript, TypeScript, JSX, TSX, and Python run as guest code; .java and .kt files compile and run on the JVM.

elide run app.ts
elide run app.js -- --port 3000
elide run -s 'console.log("hi")'

Script arguments follow --. A name that is not a file on disk resolves as a named script, and a bare elide run uses the project entrypoint; see Elide for AI Agents for the resolution order in full.

FlagEffect
-s, --snippet CODERun an inline snippet instead of a file. --code is accepted too.
-l, --language LANGLanguage for an inline snippet: js, ts, or python.
--debugger[=DEBUGGER]Attach a debugger: auto, cdp, or dap.
--profiler[=PROFILER]Collect a profile: cputracing, cpusampling, or memtracing.
--coverage[=auto]Collect coverage.

python

Run Python with a CPython-shaped command line: every token after the script is a program argument, so no -- separator is needed.

elide python script.py --flag-for-the-script
elide python -c 'print(1)'

-c CMD runs a program passed as a string, and -s leaves the user site directory off sys.path.

serve

Serve static files over HTTP. Defaults to 127.0.0.1:8080, with or without a terminal attached; --host and --port override that, and --no-tui replaces the dashboard with plain logs.

elide serve ./public
elide serve --no-tui --port 3000 ./dist

dev

Serve a directory or script with file watching and live reload. Defaults to 127.0.0.1:3000. --no-tui selects plain logs, --no-watch disables watching.

elide dev ./public
elide dev --no-tui ./public

install

Install project dependencies. Maven is the only ecosystem installed by default; npm is opt-in.

elide install
elide install --ecosystems=npm
elide install --workspace
elide install --with=sources
FlagEffect
--ecosystems ECOSYSTEMInstall the named ecosystems, e.g. npm.
--workspaceInstall every ecosystem the project declares.
--with CLASSIFIERAlso fetch a Maven classifier, e.g. sources.
--slimSkip the classifiers a plain install also downloads.
--freshRe-download, refreshing the global cache.
--directCopy artifacts into the project instead of symlinking them.

An ecosystem the project declares but the run skips is named on stderr under --verbose, and asking for an ecosystem this build cannot serve is a usage error.

repl

Start the interactive REPL. Also entered by a bare elide with no script and a terminal attached.

Build and test

build

Assemble the artifacts declared by an elide.pkl manifest. Bare tokens name targets, and a leading : is optional; deps, compile and test select a whole task group.

elide build
elide build --inspect
elide build deps compile

--inspect lists the project’s real task names, --no-cache disables the build cache for one run, and --offline avoids fetching remote resources. Anything after -- reaches the underlying subprocess unchanged.

test

Discover and run tests. JavaScript and TypeScript tests are found without configuration; JVM tests need a test source set declared in elide.pkl. Bare tokens narrow the run to the paths they name.

elide test
elide test src/api
elide test -t 'parses .+ headers'
elide test --coverage --bail=3
FlagEffect
-t, --test-name-pattern REGEXRun only tests whose name matches.
--bail[=N]Stop after N failures, one by default.
--test-timeout MSPer-test budget, in milliseconds.
--onlyRun only tests marked .only.
--concurrency NTests to run at once; both engines are sequential by default.
--reporter NAMEEmit results through console or junit.
--reporter-outfile PATHWhere the reporter writes.

--timeout is the global flag bounding the whole invocation; --test-timeout is the per-test one.

format (alias fmt)

Format Java and Kotlin sources. Files and directories, and every formatter-specific flag, follow --; directory arguments are expanded and both languages are formatted in one pass.

elide format -- src
elide format --list-files -- --dry-run src

Write mode is the default. A check-mode run (--dry-run) exits 1 on its own when a file would change — --set-exit-if-changed is accepted for drop-in parity but not required, and there is no --check. --list-files names the offending files and belongs before --; --list-diffs[=N] prints a unified diff for each.

project

Interrogate an Elide project.

CommandPurpose
elide project infoShow resolved project metadata.
elide project adviceShow project advice for coding agents.

Setup and integration

elide agent rounds this group out with agent-oriented guidance, diagnostics, and a bug-report body; see Elide for AI Agents.

init

Create a project from a bundled template. With no flags it opens a TUI editor.

elide init --templates
elide init --plain --skip-defaults --skip-run --template java
FlagEffect
--templatesPrint template IDs and exit.
-t, --template TEMPLATESelect a template.
--parametersPrint template parameters and exit.
-i, --plainAsk plain questions instead of opening the editor.
-d, --skip-defaultsSkip parameters that have defaults. Needs --plain.
-s, --skip-runDo not run Elide after generating files.
--overwriteGenerate over existing files.

info

Show binary, platform, and language information. --cargo-lockfile prints the embedded lockfile instead.

upgrade

Check for and apply updates. --check reports without applying, --force updates even when current, and --channel selects release, preview, or nightly.

use

Write a project .elideversion pin and download that version.

elide use 1.5.0
elide use --no-install 1.5.0

--no-install writes the pin without downloading. Pass --ignore-version on a later invocation to run the installed binary anyway.

help

Read the documentation embedded in the binary. A command name prints that command’s section of this page; a slug or page title prints the whole page.

elide help
elide help run --format=markdown
elide help sandbox --lang=fr

--format selects auto, interactive, or markdown; a non-interactive caller gets Markdown without asking. -w, --width bounds the rendered width and --languages lists the languages the binary carries.

lsp

Start a Language Server Protocol instance over stdio. Only the Java server is registered today, so a bare elide lsp selects it.

mcp

Start a Model Context Protocol instance. --mode selects stdio (the default) or http, which binds localhost:8125 unless --host and --port say otherwise.

JVM tools

Elide embeds java, javac, kotlinc, jar, javadoc, javap, jdeps, javaformat, ktfmt, mvn, and native-image. Tool arguments follow --, and compiler diagnostics pass through verbatim:

elide javac -- -d target Main.java

Setup and integration

classpath

Print a resolved classpath. A usage is [<sourceSet>:]<usage>, lowercase, with usage one of toolchain, processor, compile, modules, runtime, or provided; the default is main:compile.

elide classpath
elide classpath test:runtime

An unrecognized spec, or one naming a usage that does not exist, is a usage error rather than empty output.

manifest

Print the resolved project manifest as JSON on stdout, with no ANSI. Do not pass --quiet: it silences the output entirely.

Global options

Common global flags include:

OptionEffect
-p, --project PATHSelect a project directory.
-q, --quietReduce progress output.
-v, --verbose / --debugIncrease logging.
--timeout DURATIONBound the invocation, for example 30s or 5m.
--color / --no-colorForce color on or off.
`—error-format autopretty
--ignore-versionIgnore .elideversion for this invocation.
--sandboxDeny guest filesystem access by default.
--allow-read[=PATHS]Grant filesystem reads.
--allow-write[=PATHS]Grant filesystem writes.
--allow-net[=HOSTS]Grant network access.
--allow-run[=CMDS]Grant subprocess access.

See Filesystem Sandbox for capability examples.

Exit codes

CodeMeaning
0Success, help, or version output.
1The command or guest program ran and failed.
2Invalid CLI usage or an unresolved run target.
124--timeout expired.
otherA guest program or embedded tool selected its own exit code.

For machine-oriented usage, see Elide for AI Agents.