CWLTOOL(1)
π NAME π
CWLTOOL(1) is the manual page for cwltool β the Refefence executor for Common Workflow Language π
β¨
β¨ DESCRIPTION β¨
okay so here is the whole usage vibe, bestie, copied exactly so nobody comes for us:
usage: python3 -m cwltool [-h] [--basedir BASEDIR] [--outdir OUTDIR]
[--write-summary WRITE_SUMMARY] [--parallel]
[--parallel-max PARALLEL_MAX] [--skip-schemas] [--enable-dev]
[--enable-ext] [--on-error {stop,continue}] [--relax-path-checks]
[--overrides OVERRIDES] [--mpi-config-file MPI_CONFIG_FILE]
[--print-rdf | --print-dot | --print-pre | --print-deps |
--print-input-deps | --pack | --version | --validate |
--print-supported-versions | --print-subgraph | --print-targets |
--make-template] [--relative-deps {primary,cwd}]
[--rdf-serializer RDF_SERIALIZER] [--tool-help] [--verbose |
--no-warnings | --quiet | --debug] [--log-dir LOG_DIR]
[--timestamps] [--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] [--strict | --non-strict] [--no-doc-cache |
--doc-cache] [--user-space-docker-cmd CMD | --udocker |
--singularity | --podman | --no-container] [--enable-pull |
--disable-pull] [--singularity-sandbox-path IMAGE_BASE_PATH]
[--force-docker-pull] [--no-read-only] [--default-container
DEFAULT_CONTAINER] [--no-match-user] [--custom-net CUSTOM_NET]
[--strict-memory-limit] [--strict-cpu-limit] [--rm-container |
--leave-container] [--cidfile-dir CIDFILE_DIR] [--cidfile-prefix
CIDFILE_PREFIX] [--beta-dependency-resolvers-configuration
BETA_DEPENDENCY_RESOLVERS_CONFIGURATION]
[--beta-dependencies-directory BETA_DEPENDENCIES_DIRECTORY]
[--beta-use-biocontainers] [--beta-conda-dependencies]
[--enable-color | --disable-color] [--enable-ga4gh-tool-registry
| --disable-ga4gh-tool-registry] [--add-ga4gh-tool-registry
GA4GH_TOOL_REGISTRIES] [--compute-checksum |
--no-compute-checksum] [--eval-timeout EVAL_TIMEOUT]
[--js-console] [--disable-js-validation] [--js-hint-options-file
JS_HINT_OPTIONS_FILE] [--target TARGET | --single-step
SINGLE_STEP | --single-process SINGLE_PROCESS] [cwl_document] ...
Reference executor for Common Workflow Language standards. Not for production use.
β οΈ Not for production use. Like, it literally says that. Do not deploy this to prod, bestie. It is giving reference executor, not production queen. π
π positional arguments π
cwl_documentβ path or URL to a CWL Workflow, CommandLineTool, or ExpressionTool. If theinputs_objecthas acwl:toolfield indicating the path or URL to thecwl_document, then thecwl_documentargument is optional. π«Άinputs_objectβ path or URL to a YAML or JSON formatted description of the required input values for the givencwl_document. π
π options π
-h,--helpβ show this help message and exit. iconic behavior.--basedir BASEDIRβ the original literally gives zero description here, so it's just sitting there being mysterious π--outdir OUTDIRβ Output directory. The default is the current directory. periodt.--write-summary, -w WRITE_SUMMARYβ Path to write the final output JSON object to. Default is stdout.--parallelβ Run jobs in parallel. multitasking queen energy β¨--parallel-max PARALLEL_MAXβ Maximum number of jobs to run in parallel. Specify'0'to match the number of CPU cores available.--skip-schemasβ Skip loading of schemas. bye schemas π--enable-devβ Enable loading and running unofficial development versions of the CWL standards.--enable-extβ Enable loading and runningcwltool:extensions to the CWL standards.--on-error {stop,continue}β Desired workflow behavior when a step fails. One ofstop(do not submit any more steps) orcontinue(may submit other steps that are not downstream from the error). Default isstop.--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.--strictβ Strict validation (unrecognized or out of place fields are errors).--non-strictβ Lenient validation (ignore unrecognized fields).--no-doc-cacheβ Disable disk cache for documents loaded over HTTP.--doc-cacheβ Enable disk cache for documents loaded over HTTP.--enable-colorβ Enable logging color (default enabled).--disable-colorβ Disable colored logging (default false).--compute-checksumβ Compute checksum of contents while collecting outputs.--no-compute-checksumβ Do not compute checksum of contents while collecting outputs.
π¦ 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--targetor--single-step.--print-targetsβ Print targets (output parameters).--make-templateβ Generate a template input object.--relative-deps {primary,cwd}β When using--print-deps, print paths relative to primary file or current working directory.--rdf-serializer RDF_SERIALIZERβ Output RDF serialization format used by--print-rdf(one ofturtle(default),n3,nt,xml).--tool-helpβ Print command line help for tool.
π logging configuration π
--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.
π± environment variables control π±
--preserve-environment ENVVARβ Preserve specific environment variable when running CommandLineTools. May be provided multiple times. By defaultPATHis preserved when not running in a container.--preserve-entire-environmentβ Preserve all environment variables when running CommandLineTools without a software container.
ποΈ intermediate, temporary, or final output files management ποΈ
--tmpdir-prefix TMPDIR_PREFIXβ Path prefix for temporary directories. If--tmpdir-prefixis not provided, then the prefix for temporary directories is influenced by the value of theTMPDIR,TEMP, orTMPenvironment 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.
π³ software container engine selection and configuration π³
--user-space-docker-cmd CMDβ Specify the path to udocker. Implies--udocker.--udockerβ 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 whenDockerRequirementis specified underhints.--enable-pullβ Try to pull Docker images.--disable-pullβ Do not try to pull Docker images.--singularity-sandbox-path IMAGE_BASE_PATHβ Singularity/Apptainer sandbox image base path. Will use a pre-existing sandbox image. Will be prepended to the dockerPull path. Equivalent to useCWL_SINGULARITY_IMAGESvariable.--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 todocker run --user.--custom-net CUSTOM_NETβ Passed todocker runas the--netparameter when NetworkAccess is true, which is its default setting.--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--memoryoption.--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--cpuoption. Requires docker version >= v1.13.--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.--cidfile-dir CIDFILE_DIRβ Store the software container ID into a file in the specified directory.--cidfile-prefixCIDFILE_PREFIX β bestie you can give your software container ID filename a lil prefix π the final filename gets a timestamp tacked onto the end of it. The default? No prefix at all, we keep it bare. π
β¨ dependency resolver configuration β¨
okay this whole crew is beta coded, you've been warned π«Ά
--beta-dependency-resolvers-configurationBETA_DEPENDENCY_RESOLVERS_CONFIGURATION β it's a config file for the dependency resolver, literally describing how to adaptSoftwareRequirementpackages to whatever system you're on rn. it's giving β¨matchmakingβ¨--beta-dependencies-directoryBETA_DEPENDENCIES_DIRECTORY β the default root directory that the dependency resolvers configuration uses. home base π--beta-use-biocontainersβ for tools that don't have an explicitly annotated Docker container, just go ahead and use biocontainers for them. problem solved, no cap.--beta-conda-dependenciesβ the shortcut option: use Conda to resolve yourSoftwareRequirementpackages. easy mode fr fr πΈ
π₯ tool resolution π₯
(yes queen, this one rides on the GA4GH Tool Registry Service (TRS) API π)
--enable-ga4gh-tool-registryβ turn on tool resolution using the GA4GH TRS API--disable-ga4gh-tool-registryβ turn OFF tool resolution using the GA4GH TRS API--add-ga4gh-tool-registryGA4GH_TOOL_REGISTRIES β add another GA4GH TRS endpoint to use for resolution. the default is['https://dockstore.org/api']β¨
π javascript options π
--eval-timeoutEVAL_TIMEOUT β how long to wait for a Javascript expression to evaluate before it just gives up and errors at you. default is60s. π--js-consoleβ let the javascript console actually output stuff. turn it on and watch the tea spill β--disable-js-validationβ disables javascript validation. just don't look π--js-hint-options-fileJS_HINT_OPTIONS_FILE β a file of options that get passed tojshint. and heads up, this includes the added option"includewarnings"π
π execution target selection π
(this whole thing is optional bestie β by default, every target that contributes to the final outputs gets executed π«Ά)
--target,-tTARGET β only execute the steps that contribute to the listed targets. you can drop this one more than once if you're feeling generous β¨--single-stepSINGLE_STEP β only executes a single step in a workflow. the input object has to match that step's inputs exactly, no exceptions. can be combined with--print-subgraphπ--single-processSINGLE_PROCESS β only executes the underlying Process (that'sCommandLineTool,ExpressionTool, or a sub-Workflow) for the given step in a workflow. now listen: this will not include any step-level processing, so that'sscatterandwhenβ nope. and there will be no processing of step-leveldefaultorvalueFrominput modifiers either. however β requirements/hints from the step or from the parent workflow(s) will still be inherited as usual. and yeah, the input object must match that Process's inputs. periodt π
π¦ environment variable π¦
??? usage
okay bestie I need you to know I am NOT making this up, the manpage itself is glitching out here π here's the line, verbatim:
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
and here's what's actually in there, ??? and all, because I refuse to invent lore that isn't canon π
CWLTOOL_OPTIONSβ???set additional space-separated cwltool optionsCWL_FULL_NAMEβ???full name of the user to record as part of--provenanceCWL_SINGULARITY_CACHEβ???directory path to find already downloaded???Singularity images; dockerFile images will also be???searched for and stored hereORCIDβ???user ORCID identifier to record as part of???--provenanceXDG_CACHE_HOMEβ???directory path to store cached HTTP(S) downloads in???a cwltool sub-folder; if it's unset, then cache downloads???are stored in$HOME/.cache/cwltoolXDG_DATA_HOMEβ???directory path to search for a.local/commonwlCWL???tool folder; if it's unset, then$HOME/.local/commonwlis???searchedXDG_DATA_DIRSβ???directory path to search for a commonwl CWL tool???folder; if it's unset, then/usr/local/share/and???/usr/share/are searched
π SEE ALSO π
and that's a wrap, babe π this whole thing was python3 -m cwltool, version 3.2.20260413..., dated April 2026, filed under CWLTOOL(1) β go forth, run your workflows, and slay π«Άβ¨πΈ
π¦ where this page comes from
- ubuntu stonking: cwltool 3.2.20260413085819-1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms