ceylon run [--auto-export-maven-dependencies] [--cacherep=<url>] [--compile[=<flags>]] [--cwd=<dir>] [--flat-classpath] [--link-with-current-distribution] [--maven-overrides=<url>] [--no-default-repositories] [--offline] [--overrides=<url>] [--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.



When using JBoss Modules (the default), treats all module dependencies between Maven modules as shared.


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


Determines if and how compilation should be handled. Allowed flags include: never, once, force, check.


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


Launches the Ceylon module using a flat classpath.

Link modules which were compiled with a more recent version of the distribution to the version of that module present in this distribution (1.2.2). This might fail with a linker error at runtime. For example if the module depended on an API present in the more recent version, but absent from 1.2.2. Allowed arguments are upgrade, downgrade or abort. Default: upgrade


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.

--offline, -L

Enables offline mode that will prevent connections to remote repositories.


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,


Specifies the fully qualified name of a toplevel method or class with no parameters. The format is: with :: acting as separator between the package name and the toplevel class or method name.


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, cmr.

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 --compile 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 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 com.example.foobar/1.0.0

The following would execute the bob function in the com.example.foobar.gee package of the same previous module:

ceylon run --run com.example.foobar.gee::bob com.example.foobar/1.0.0