---
name: "cwltool"
section: "1"
platform: "linux"
package: "cwltool"
version: "3.1.20250110105449-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/cwltool"
---

# cwltool(1)

Refefence executor for Common Workflow Language

## NAME

cwltool - Refefence executor for Common Workflow Language

## DESCRIPTION

usage: cwltool \[-h\] \[--basedir BASEDIR\] \[--outdir OUTDIR\] \[--parallel\]

-

  \[--preserve-environment ENVVAR \| **--preserve-entire-environment\]** \[--tmpdir-prefix TMPDIR\_PREFIX\] \[--tmp-outdir-prefix TMP\_OUTDIR\_PREFIX \| **--cachedir** CACHEDIR\] \[--rm-tmpdir \| **--leave-tmpdir\]** \[--move-outputs \| **--leave-outputs** \| **--copy-outputs\]** \[--eval-timeout EVAL\_TIMEOUT\] \[--print-rdf \| **--print-dot** \| **--print-pre** \| **--print-deps** \| **--print-input-deps** \| **--pack** \| **--version** \| **--validate** \| **--print-supported-versions** \| **--print-subgraph** \| **--print-targets** \| **--make-template\]** \[--rdf-serializer RDF\_SERIALIZER\] \[--tool-help\] \[--strict \| **--non-strict\]** \[--skip-schemas\] \[--no-doc-cache \| **--doc-cache\]** \[--verbose \| **--no-warnings** \| **--quiet** \| **--debug\]** \[--log-dir LOG\_DIR\] \[--timestamps\] \[--write-summary WRITE\_SUMMARY\] \[--js-console\] \[--disable-js-validation\] \[--js-hint-options-file JS\_HINT\_OPTIONS\_FILE\] \[--enable-pull \| **--disable-pull\]** \[--force-docker-pull\] \[--no-read-only\] \[--default-container DEFAULT\_CONTAINER\] \[--no-match-user\] \[--custom-net CUSTOM\_NET\] \[--rm-container \| **--leave-container\]** \[--cidfile-dir CIDFILE\_DIR\] \[--cidfile-prefix CIDFILE\_PREFIX\] \[--user-space-docker-cmd CMD \| **--udocker** \| **--singularity** \| **--podman** \| **--no-container\]** \[--strict-memory-limit\] \[--strict-cpu-limit\] \[--relative-deps {primary,cwd}\] \[--enable-dev\] \[--enable-ext\] \[--enable-color \| **--disable-color\]** \[--enable-ga4gh-tool-registry \| **--disable-ga4gh-tool-registry\]** \[--add-ga4gh-tool-registry GA4GH\_TOOL\_REGISTRIES\] \[--on-error {stop,continue}\] \[--compute-checksum \| **--no-compute-checksum\]** \[--relax-path-checks\] \[--overrides OVERRIDES\] \[--target TARGET \| **--single-step** SINGLE\_STEP \| **--single-process** SINGLE\_PROCESS\] \[--mpi-config-file MPI\_CONFIG\_FILE\] \[cwl\_document\] ...

Reference executor for Common Workflow Language standards. Not for production use.

### positional arguments:

- cwl\_document

  path or URL to a CWL Workflow, CommandLineTool, or ExpressionTool. If the \`inputs\_object\` has a \`cwl:tool\` field indicating the path or URL to the cwl\_document, then the \`cwl\_document\` argument is optional.

- inputs\_object

  path or URL to a YAML or JSON formatted description of the required input values for the given \`cwl\_document\`.

### options:

- **-h**, **--help**

  show this help message and exit

**--basedir** BASEDIR

- **--outdir** OUTDIR

  Output directory. The default is the current directory.

- **--parallel**

  Run jobs in parallel.

- **--eval-timeout** EVAL\_TIMEOUT

  Time to wait for a Javascript expression to evaluate before giving an error, default 60s.

- **--strict**

  Strict validation (unrecognized or out of place fields are error)

- **--non-strict**

  Lenient validation (ignore unrecognized fields)

- **--skip-schemas**

  Skip loading of schemas

- **--no-doc-cache**

  Disable disk cache for documents loaded over HTTP

- **--doc-cache**

  Enable disk cache for documents loaded over HTTP

- **--write-summary**, **-w** WRITE\_SUMMARY

  Path to write the final output JSON object to. Default is stdout.

- **--js-console**

  Enable javascript console output

- **--disable-js-validation**

  Disable javascript validation.

- **--js-hint-options-file** JS\_HINT\_OPTIONS\_FILE

  File of options to pass to jshint. This includes the added option "includewarnings".

- **--relative-deps** {primary,cwd}

  When using **--print-deps**, print paths relative to primary file or current working directory.

- **--enable-dev**

  Enable loading and running unofficial development versions of the CWL standards.

- **--enable-ext**

  Enable loading and running \`cwltool:\` extensions to the CWL standards.

- **--enable-color**

  Enable logging color (default enabled)

- **--disable-color**

  Disable colored logging (default false)

- **--enable-ga4gh-tool-registry**

  Enable tool resolution using GA4GH tool registry API

- **--disable-ga4gh-tool-registry**

  Disable tool resolution using GA4GH tool registry API

- **--add-ga4gh-tool-registry** GA4GH\_TOOL\_REGISTRIES

  Add a GA4GH tool registry endpoint to use for resolution, default \['https://dockstore.org/api'\]

- **--on-error** {stop,continue}

  Desired workflow behavior when a step fails. One of \`stop\` (do not submit any more steps) or \`continue\` (may submit other steps that are not downstream from the error). Default is \`stop\`.

- **--compute-checksum**

  Compute checksum of contents while collecting outputs

- **--no-compute-checksum**

  Do not compute checksum of contents while collecting outputs

- **--relax-path-checks**

  Relax requirements on path names to permit spaces and hash characters.

- **--overrides** OVERRIDES

  Read process requirement overrides from file.

- **--mpi-config-file** MPI\_CONFIG\_FILE

  Platform specific configuration for MPI (parallel launcher, its flag etc). See README section 'Running MPI-based tools' for details of the format.

### Control environment variables:

- **--preserve-environment** ENVVAR

  Preserve specific environment variable when running CommandLineTools. May be provided multiple times. By default PATH is preserved when not running in a container.

- **--preserve-entire-environment**

  Preserve all environment variables when running CommandLineTools without a software container.

### Manage intermediate, temporary, or final output files:

- **--tmpdir-prefix** TMPDIR\_PREFIX

  Path prefix for temporary directories. If **--tmpdir-prefix** is not provided, then the prefix for temporary directories is influenced by the value of the TMPDIR, TEMP, or TMP environment variables. Taking those into consideration, the current default is /tmp/.

- **--tmp-outdir-prefix** TMP\_OUTDIR\_PREFIX

  Path prefix for intermediate output directories. Defaults to the value of **--tmpdir-prefix**.

- **--cachedir** CACHEDIR

  Directory to cache intermediate workflow outputs to avoid recomputing steps. Can be very helpful in the development and troubleshooting of CWL documents.

- **--rm-tmpdir**

  Delete intermediate temporary directories (default)

- **--leave-tmpdir**

  Do not delete intermediate temporary directories

- **--move-outputs**

  Move output files to the workflow output directory and delete intermediate output directories (default).

- **--leave-outputs**

  Leave output files in intermediate output directories.

- **--copy-outputs**

  Copy output files to the workflow output directory and don't delete intermediate output directories.

### Non-execution options:

- **--print-rdf**

  Print corresponding RDF graph for workflow and exit

- **--print-dot**

  Print workflow visualization in graphviz format and exit

- **--print-pre**

  Print CWL document after preprocessing.

- **--print-deps**

  Print CWL document dependencies.

- **--print-input-deps**

  Print input object document dependencies.

- **--pack**

  Combine components into single document and print.

- **--version**

  Print version and exit

- **--validate**

  Validate CWL document only.

- **--print-supported-versions**

  Print supported CWL specs.

- **--print-subgraph**

  Print workflow subgraph that will execute. Can combined with **--target** or **--single-step**

- **--print-targets**

  Print targets (output parameters)

- **--make-template**

  Generate a template input object

- **--rdf-serializer** RDF\_SERIALIZER

  Output RDF serialization format used by **--print-rdf** (one of turtle (default), n3, nt, xml)

- **--tool-help**

  Print command line help for tool

### Configure logging:

- **--verbose**

  Default logging

- **--no-warnings**

  Only print errors.

- **--quiet**

  Only print warnings and errors.

- **--debug**

  Print even more logging

- **--log-dir** LOG\_DIR

  Log your tools stdout/stderr to this location outside of container This will only log stdout/stderr if you specify stdout/stderr in their respective fields or capture it as an output

- **--timestamps**

  Add timestamps to the errors, warnings, and notifications.

### Software container engine selection and configuration:

- **--enable-pull**

  Try to pull Docker images

- **--disable-pull**

  Do not try to pull Docker images

- **--force-docker-pull**

  Pull latest software container image even if it is locally present

- **--no-read-only**

  Do not set root directory in the container as read-only

- **--default-container** DEFAULT\_CONTAINER

  Specify a default software container to use for any CommandLineTool without a DockerRequirement.

- **--no-match-user**

  Disable passing the current uid to \`docker run **--user**\`

- **--custom-net** CUSTOM\_NET

  Passed to \`docker run\` as the \`--net\` parameter when NetworkAccess is true, which is its default setting.

- **--rm-container**

  Delete Docker container used by jobs after they exit (default)

- **--leave-container**

  Do not delete Docker container used by jobs after they exit

- **--user-space-docker-cmd** CMD

  (Linux/OS X only) Specify the path to udocker. Implies **--udocker**

- **--udocker**

  (Linux/OS X only) Use the udocker runtime for running containers (equivalent to **--user-space-docker-cmd**=*udocker*).

- **--singularity**

  Use Singularity or Apptainer runtime for running containers. Requires Singularity v2.6.1+ and Linux with kernel version v3.18+ or with overlayfs support backported.

- **--podman**

  Use Podman runtime for running containers.

- **--no-container**

  Do not execute jobs in a Docker container, even when \`DockerRequirement\` is specified under \`hints\`.

- **--strict-memory-limit**

  When running with software containers and the Docker engine, pass either the calculated memory allocation from ResourceRequirements or the default of 1 gigabyte to Docker's **--memory** option.

- **--strict-cpu-limit**

  When running with software containers and the Docker engine, pass either the calculated cpu allocation from ResourceRequirements or the default of 1 core to Docker's **--cpu** option. Requires docker version \>= v1.13.

### Target selection (optional):

- **--target**, **-t** TARGET

  Only execute steps that contribute to listed targets (can be provided more than once).

- **--single-step** SINGLE\_STEP

  Only executes a single step in a workflow. The input object must match that step's inputs. Can be combined with **--print-subgraph**.

- **--single-process** SINGLE\_PROCESS

  Only executes the underlying Process (CommandLineTool, ExpressionTool, or sub-Workflow) for the given step in a workflow. This will not include any step-level processing: \`scatter\`, \`when\`; and there will be no processing of step-level \`default\`, or \`valueFrom\` input modifiers. However, requirements/hints from the step or parent workflow(s) will be inherited as usual.The input object must match that Process's inputs.

## SEE ALSO

http://commonwl.org\
 http://wiki.debian.org/CommonWorkflowLanguage
