Cylc 8.0b2 is an early full-system Cylc 8 preview release
It has a fully functional Python 3 workflow service and CLI that can run existing Cylc workflows.
But it is not production-ready yet.
Use the latest Cylc 7.9 (Python 2.7) or 7.8 (Python 2.6) release for production systems.
Cylc runs on Unix systems including Linux and Mac OS.
Via Conda (recommended):
Via Pip (+npm):
$ conda install cylc-flow # install the browser-GUI (optional) $ conda install cylc-uiserver # install Rose support (optional) $ conda install cylc-rose
$ pip install cylc-flow # install the browser-GUI (optional) # (requires nodejs & npm) $ pip install cylc-uiserver $ npm install configurable-http-proxy # install Rose support (optional) $ pip install cylc-rose
Requires Python 3.7+
We recommend using a virtual environment.
These dependencies are not installed by Conda or pip:
These dependencies are installed by Conda but not by pip (you can use npm):
Installing On Mac OS¶
Cylc requires some extra packages to function on Mac OS, we recommend installing them using the Homebrew package manager:
brew install bash coreutils gnu-sed
You will need to prepend the
gnu-sed installations to
$PATH, follow the instructions in the
brew install output.
at command) does not run out-of-the-box on Mac OS
for security reasons and must be manually enabled.
Newer version of Mac OS set
zsh as the default shell (as opposed to
bash). You do not need to change this but be aware that Cylc uses
bash which has a subtly different syntax.
For Mac OS Versions 10.15.0 (Catalina) and higher SSH is disabled by default. The ability to SSH into your Mac OS box may be required for certain Cylc installations.
See the Apple support page for instructions on enabling SSH.
For multi-user installation we recommend using Conda and installing Cylc components only where required.
The Cylc Packages¶
Cylc is split into a number of packages providing different functionality:
The places where you would want to install Cylc fall into the following “roles”:
- User Machines
The boxes where users write workflows and interact with the command line.
- Cylc Servers
The boxes where workflows are run.
- Job Hosts
The systems where jobs are run (e.g. supercomputers or clusters)
There may be a mix of purposes between the different “roles”, for example it is possible to use job hosts as cylc servers and vice versa.
In order for Cylc to run the correct environment must be activated. Cylc can not do this automatically.
We recommend using a wrapper script to activate the correct environment
and call the
An example can be found in
usr/bin/cylc, this should be installed to
a location in the system searchable
Cylc uses “sane and safe” defaults and is suitable for use “out of the box”, however, many things may need to be configured e.g:
Prior to Cylc 8,
global.cylc was named
global.rc, but that name is
no longer supported.
bash -l to run job scripts so sites and users should
ensure that their bash login scripts configure the environment correctly
for use with Cylc and don’t source unwanted systems or echo to stdout.