Beyond releasing the CWL standards, the CWL community has developed many tools, software libraries, connected specifications, and has shared CWL descriptions for popular tools. Other tools are also available in Common Workflow Language Lab.

Editors and Viewers §

Software Description
Rabix Benten A language server for CWL. Provides CWL code intelligence for VS Code, vim/neovim, Emacs, Acme, IntelliJ/JetBrains, and others
CWLviewer A web application to view and share Common Workflow Language workflows
ToolJig Web forms for building CWL Tool and Workflow descriptions
cwl-mode CWL editing mode for Emacs (instructions english, 日本語)
vue-cwl Visualizer of CWL workflows for the Vue JavaScript framework using cwl-svg
cwl-for-remote-container-template A template to write CWL documents with VSCode with remote container extension
atom-cwl CWL editing mode for Atom
vim-cwl CWL editing mode for Vim
vscode-cwl CWL support in Visual Studio Code
bioSyntax Includes CWL syntax highliting for gedit

Utilities §

Software Description
cwl-utils Example scripts using the new Python 3.6+ CWL parsing library
looper Job submitting engine with support for CWL whole workflow/tool scattering
cwltest CWL testing framework, automated testing of tools and workflows written with CWL
workflow-service An implementation of the GA4GH Workflow Execution Service (WES) API to run CWL workflows on remote clusters
cwl-inspector Tool to inspect properties of tools or workflows written in CWL
cwldep CWL dependency manager, for importing tool wrappers and workflows into your own project.
cwlprov-py Command line tool and Python API to explore CWLProv Research Objects containing provenance of Common Workflow Language executions
Cerise A REST service for running CWL workflows on remote clusters
cwl2zshcomp Generates ZSH auto completions from CWL command line tool descriptions

Converters And Code Generators §

Software Description
cwl-upgrader Upgrade CWL documents from draft-3 to v1.0, v1.0 to v1.1, and v1.1 to v1.2.
argparse2tool Generate CWL CommandLineTool wrappers (and/or Galaxy tool descriptions) from Python programs that use argparse. Also supports the click argument parser.
cwl2argparse Generate Python argparse code from CWL CommandLineTool description.
pypi2cwl Automatically run argparse2cwl on any package in PyPi
acd2cwl ACD (EMBOSS) to CWL generator
CTD converter Common Tool Definition (CTD) to CWL converter
scriptcwl Create CWL workflows by writing a simple Python script
cwl-to-parsl Convert CWL to Parsl
Beatrice Pipeline Assembler For CWL
zatsu-cwl-generator A simple CWL document generator from given execution commands
Janis A Python API that generates portable CWL and WDL workflows
cwl-utils New Python 3.6+ CWL parsing library
ipython2cwl A tool for converting IPython Jupyter Notebooks to CWL CommandLineTools via typing annotations
pegasus-cwl-converter Work in progress tool to convert a CWL workflow into a Pegasus workflow.

Code Libraries §

Software Description
cwltool cwltool (can be imported as a Python module and extended to create custom cwl runners)
schema salad Python module and tools for working with the CWL schema.
cwljava Java classes for loading, modifying, and creating CWL v1.2 documents
cwlScala A Scala wrapper around cwljava; Also included is an evaluation engine for CWL expressions.
cwl-ts-auto TypeScript objects and utilities for parsing and creating CWL v1.2 documents.
Rcwl Build, read, write and run CWL in R
tidycwl Tidy (R) Common Workflow Language Tools and Workflows
cwl-rs CWL object model for Rust
CmdParser Reading and Writing Common Workflow Language spec files from C++ applications. Includes a Command Line Parser
buchanae/cwl CWL document parsing and processing utilities in Go.
CWL for Go Parser of CWL file and CWL input objects (JSON/YAML) files in Go.
cwl-proto Reading and writing Common Workflow Language to Protocol Buffers