Package: cromshell
__                                                            __
       .,-;-;-,. /'_\     +-----------------------------------------------+    /_'\.,-;-;-,.
     _/_/_/_|_\_\) /      |  CROMSHELL : run Cromwell jobs from the shell |     \ (/_/__|_\_\_
   '-<_><_><_><_>=/\      +-----------------------------------------------+     /\=<_><_><_><_>-'
     `/_/====/_/-'\_\                                                          /_/'-\_\====\_\'
      ""     ""    ""                                                          ""    ""     ""CromshellCromshell is a CLI for submitting workflows to a Cromwell server and monitoring/querying their results.Examples:cromshell submit workflow.wdl inputs.json options.json dependencies.zip
         cromshell status
         cromshell -t 20 metadata
         cromshell logs -2Supported Options:--no_turtleor--I_hate_turtlesHide turtle logo--cromwell_url [TEXT]Specifies Cromwell URL used.TEXTExample:http://65.61.654.8:8000Note: Depending on your Cromwell server configuration, you may not need to specify the port.-t [TIMEOUT]Specifies the server connection timeout in seconds.Default is 5 sec.TIMEOUTmust be a positive integer.--gcloud_token_email [TEXT]Callgcloud auth print-access-tokenwith
this email and add the token as an auth header to requests.--referer_header_url [TEXT]For servers that require a referer, supply
this URL in theReferer:header.One of--machine_processableor--colorful_outputOverride the automatically determined output coloring setting.Otherwise the output will be colored if it detects that it's connected to an interactive terminal.Supported Subcommands:Start/Stop workflowssubmit [-w] <wdl> <inputs_json> [options_json] [included_wdl_zip_file]Automatically validates the WDL and JSON file.Submit a new workflow to the Cromwell server.-w[COMING SOON] Wait for workflow to transition from 'Submitted' to some other status before ${SCRIPTNAME} exits.included_wdl_zip_fileZip file containing any WDL files included in the input WDLabort [workflow-id] [[workflow-id]...]Abort a running workflow.Workflow information:alias <workflow-id> <alias_name>Label the given workflow ID with the given alias_name.  Aliases can be used in place of workflow IDs to reference jobs.Remove an alias by passing empty double quotes asalias_name(e.g.alias <workflow-id> "")Query workflow status:status [workflow-id] [[workflow-id]...]Check the status of a workflow.metadata [workflow-id] [[workflow-id]...]Get the full metadata of a workflow.slim-metadata [workflow-id] [[workflow-id]...]Get a subset of the metadata from a workflow.counts [-j] [-x] [workflow-id] [[workflow-id]...]Get the summarized status of all jobs in the workflow.-jprints a JSON instead of a pretty summary of the execution status (compresses subworkflows)-xcompress sub-workflows for less detailed summarizationtiming[workflow-id] [[workflow-id]...]Open the timing diagram in a browser.Logslogs [workflow-id] [[workflow-id]...]List the log files produced by a workflow.[COMING SOON]fetch-logs [workflow-id] [[workflow-id]...]Download all logs produced by a workflow.Job Outputslist-outputs [workflow-id] [[workflow-id]...]List all output files produced by a workflow.[COMING SOON]fetch-all [workflow-id] [[workflow-id]...]Download all output files produced by a workflow.Display a list jobs submitted through cromshelllist [-c] [-u]-cColor the output by completion status.-uCheck completion status of all unfinished jobs.Clean up local cached list[COMING SOON]cleanup [-s STATUS]Remove completed jobs from local list.
This command removes all jobs from the local list that are in a completed state,
where a completed state is one of:Succeeded,Failed,Aborted-s [STATUS]If provided, will only remove jobs with the given[STATUS]from the local list.Update cromwell serverupdate-serverChange the cromwell server that new jobs will be submitted to.Get cost for a workflowcost [-c] [-d] [workflow-id] [[workflow-id]...]Get the cost for a workflow.Only works for workflows that completed more than 24 hours ago on GCS. SeeGoogle Cost Exporting DocumentationBilling export to BigQuery must be enabled for your GCP billing project.
SeeSetup billing data export to BigQuery.Requires thebq_cost_tablekey to exist in the cromshell
configuration file and have a value equal to the BigQuery cost table
for your GCP billing project.-c/--colorColor outliers in task level cost results.-d/--detailedGet the cost for a workflow at the task level.Validate WDLvalidate [wdl] [input json] --dependencies-zip [wdl_zip_file]Validate a WDL file.Runs both miniwdl and womtool validation by default, but can be configured to run only one or the other.Womtool validation via Cromwell server API does not support validation of imported files, however miniwdl does.--dependencies-zipMiniWDL option: ZIP file or directory containing workflow source files that are used to resolve local imports.Features:Runningsubmitwill create a new folder in the~/.cromshell/${CROMWELL_URL}/directory named with the cromwell job id of the newly submitted job.It will copy your wdl and json inputs into the folder for reproducibility.It keeps track of your most recently submitted jobs by storing their ids in./cromshell/You may omit the job ID of the last job submitted when running commands, or use negative numbers to reference previous jobs, e.g. "-1" will track the last job, "-2" will track the one before that, and so on.You can override the default cromwell server by setting the argument--cromwell_urlto the appropriate URL.You can override the default cromshell configuration folder by setting the environmental variableCROMSHELL_CONFIGto the appropriate directory.Most commands takes multiple workflow-ids, which youcan specify both in relative and absolute ID value(i.e.cromshell status -- -1 -2 -3 c2db2989-2e09-4f2c-8a7f-c3733ae5ba7b).Assign aliases to workflow ids using the alias command (i.e.cromshell alias -- -1 myAliasName).
Once the Alias command is used to attach an alias to a workflow id, the alias name can be used instead of the id (i.e.cromshell status myAliasName).InstallationFrom brewbrew tap broadinstitute/dsp
brew install cromshellFrom pypipip install cromshellFrom sourcegit clone git@github.com:broadinstitute/cromshell.git
cd cromshell
pip install .

cromshell --helpUninstallationFrom brewbrew uninstall cromshellFrom pypi/sourcepip uninstall cromshellDevelopmentSee theDeveloper DocsLegacy CromshellThe original Cromshell shell script is still available in the legacy_cromshell folder and in thecromshell1branch of this repository.
It is no longer maintained, but is still available for use. The original Cromshell contains some commands not yet available in Cromshell2,
such asfetch-logs,fetch-all,notify, andcleanup. These commands will be added to Cromshell2 in the future.