ceylon run-js [--assembly=<archive>] [--cacherep=<url>] [--compile[=<flags>]] [--compiler-arguments=<option>...] [--cwd=<dir>] [--debug=<debug>] [--maven-overrides=<file>] [--no-default-repositories] [--node-exe=<node-exe>] [--offline] [--overrides=<file>] [--rep=<url>...] [--run=<toplevel>] [--sysrep=<url>] [--timeout=<seconds>] [--verbose[=<flags>]] [--] [<module>]


Executes the ceylon program specified as the module argument. The module may optionally include a version.


--assembly=archive, -a archive

Specifies the path to a Ceylon archive that should be executed


Specifies the folder to use for caching downloaded modules. (default: ~/.ceylon/cache)

--compile[=flags], -c

Determines if and how compilation should be handled. Allowed flags include: never, once, force, check. If no flags are specified, defaults to check.


Passes an option to the underlying ceylon compiler.


Specifies the current working directory for this tool. (default: the directory where the tool is run from)


Shows more detailed output in case of errors.


Specifies the XML file to use to load Maven artifact overrides. See for information. Deprecated: use --overrides.


Indicates that the default repositories should not be used.


The path to the Node.js executable. Will be searched in standard locations if not specified.

--offline, -L

Enables offline mode that will prevent connections to remote repositories.

--overrides=file, -O file

Specifies the XML file to use to load module overrides. See for information. Experimental.


Specifies a module repository containing dependencies. Can be specified multiple times. (default: modules, ~/.ceylon/repo,

--run=toplevel, -x toplevel

Specifies the fully qualified name of a toplevel method or class to run. The indicated declaration must be shared by the module and have no parameters. The format is: with :: acting as separator between the package name and the toplevel class or method name. (default:


Specifies the system repository containing essential modules. (default: $CEYLON_HOME/repo)

--timeout=seconds, -T seconds

Sets the timeout for connections to remote repositories, use 0 for no timeout (default: 20).

--verbose[=flags], -d

Produce verbose output. If no flags are given then be verbose about everything, otherwise just be verbose about the flags which are present. Allowed flags include: all, loader.

Compile flags

The --compile option can take the following flags:

  • never - Never perform any compilation
  • once - Only compile when the compiled module is not available
  • check - Compile when the sources are newer than the compiled module
  • force - Always compile

If the flag is given without an argument it's the same as specifying check. If no flag is given at all it's the same as specifying never.

Configuration file

The run-js tool accepts the following option from the Ceylon configuration file: runtool.compile (the equivalent option on the command line always has precedence).


The following would execute the com.example.foobar module:

ceylon run-js com.example.foobar/1.0.0