Cheat Sheet

A cheat sheet covering most of the major Cylc commands. For a full list see cylc help all.

See also the Cylc 7 to 8 migration cheat sheet.

Working with Workflows

cylc validate

Validates the workflow configuration (will tell you if there are any problems).

cylc install

Install a workflow (i.e. copy its files into the ~/cylc-run directory).

cylc play

Start a workflow running.

Install and start a workflow:

# validate a workflow
cylc validate <name|path>

# install a workflow
cylc install <name|path>

# start a workflow
cylc play <id>

For convenience, these three operations can be combined with the cylc vip command (vip = validate + install + play):

# validate, install and play a workflow
cylc vip <name|path>

When you’re done with a workflow run, remove it with cylc clean:

# delete a workflow installation
cylc clean <id>

Starting and Stopping Workflows

Start workflows with cylc play, stop them with cylc stop.

Workflows can be started or stopped multiple times, Cylc will always continue where it left off:

# start a workflow
cylc play <id>

# stop a workflow
cylc stop <id>

# restart a workflow
cylc play <id>

You can also “pause” a workflow. A paused workflow will not submit any new jobs. Pausing workflows can be handy if you need to perform interventions on them. Use cylc play to resume a workflow:

# pause a workflow
cylc pause <id>

# resume a workflow
cylc play <id>

The Cylc play, pause and stop commands work similarly to the play, pause and stop buttons on an old tape player. You can play, pause or stop a workflow as many times as you like; Cylc will never lose its place in the workflow.

List Workflows

The cylc scan command can list your installed workflows:

# list all running workflows
cylc scan

# get information about running workflows
cylc scan --format=rich

# list all installed workflows
cylc scan --states=all

You can also view your workflows in the GUI or Tui.

Opening the GUI/Tui

Cylc has an in-terminal utility for monitoring and controlling workflows:

# view all workflows
cylc tui

# open a specific workflow
cylc tui <id>

There is also a GUI which opens in a web browser:

# open the GUI to the homepage
cylc gui

# open the GUI to a specific workflow
cylc gui <id>

Making Changes To Running Workflows

You can make changes to a workflow without having to shut it down and restart it.

First, make your required changes to the files in the workflow’s source directory, then run the cylc vr command (more information):

# validate, reinstall and reload the workflow
cylc vr <id>

If you want to quickly edit a task’s configuration, e.g. whilst developing a workflow or testing changes, the “Edit Runtime” feature in the GUI can be convenient.

Inspecting Workflows

Validate the workflow configuration (good for spotting errors):

cylc validate <path|id>

Check the workflow for common problems and code style:

cylc lint <path|id>

View the workflow configuration before Cylc has parsed it (but after pre-processing - good for debugging Jinja2 errors):

cylc view -p <path|id>

View the workflow configuration after Cylc has parsed it (good for debugging family inheritance):

cylc config <path|id>

# view a specific task's configuration
cylc config <path|id> -i '[runtime][<task>]'

# view the workflow configuration with defaults applied
cylc config <path|id> --defaults

Generate a graphical representation of the workflow’s graph (a useful tool for developing workflow graphs):

cylc graph <path|id>

# render the graph between two cycle points
cylc graph <path|id> <cycle1> <cycle2>

# render the graph transposed (can make it easier to read)
cylc graph <path|id> --transpose

# group tasks by cycle point
cylc graph <path|id> --cycles

# collapse tasks within a family (can reduce the number of tasks displayed)
cylc graph <path|id> --group=<family>

List all tasks and families defined in a workflow:

cylc list <path|id>

Running Rose Stem Workflows

Currently, Rose stem workflows are installed using a different command to regular workflows:

# install a rose-stem workflow
rose stem

# start a rose-stem workflow
cylc play <id>

Once a workflow is installed you can run regular Cylc commands against it, e.g cylc stop.

We may be able to automatically activate rose stem functionality as part of cylc install in the future which would allow you to install and start a Rose Stem workflow with cylc vip.

Interventions

You can intervene in the running a workflow, e.g. to re-run a task.

Interventions are written up in Interventions. Here is a quick summary:

Run or re-run a task (more info):

cylc trigger <id>//<cycle>/<task>

Mark a task as “succeeded” (more info):

cylc set <id>//<cycle>/<task>

Kill a running job:

cylc kill <id>//<cycle>/<task>

Running Workflows in Debug Mode

When a workflow is in debug mode, more information gets written to the workflow’s log file. Jobs also get run in Bash “xtrace” mode (set -x) which can help to diagnose the line in a task’s script that caused the error.

Start a workflow in debug mode:

$ cylc vip --debug <name|path>

# OR
$ cylc play --debug <id>

Switch an already running workflow into debug mode:

cylc verbosity DEBUG <workflow-id>

For more information, see Troubleshooting.

Managing Multiple Workflows

Many Cylc commands can operate over multiple workflows:

# stop all workflows
cylc stop '*'

# pause all workflows
cylc pause '*'

# re-run all failed tasks in all workflows
cylc trigger "*//*/*:failed"

The * characters in these examples are “globs”. Make sure you put quotes around them to prevent the shell from trying to expand them.

For more information on globs or the Cylc ID format, run cylc help id.

Working With Cylc IDs

Everything in a Cylc workflow has an ID. We use these IDs on the command line and in the GUI.

Cylc Ids take the format:

<workflow-id>//<cycle>/<task>/<job>

E.G:

# a workflow
my-workflow

# a cycle within a workflow
my-workflow//20000101T00Z

# a task instance
my-workflow//20000101T00Z/mytask

# a job submission
my-workflow//20000101T00Z/mytask/01

For more information on the Cylc ID format, run cylc help id.