Existing CLI description languages
How to make and edit Tool Services in their GUI http://dev.mygrid.org.uk/wiki/display/tav250/Tool+service http://dev.mygrid.org.uk/wiki/display/tav250/Command
No description of the tool definition file format exists.
https://wiki.galaxyproject.org/Admin/Tools/ToolConfigSyntax XML; use of embedded Python pulls in Galaxy specific semantics.
They ship tool definition files with all of their tools. Great docs, uses EDAM. Specific to EMBOSS style tools only, though.
http://emboss.sourceforge.net/developers/acd/syntax.html
(fork of IMPACT)
https://github.com/openplanets/scape-toolwrapper
http://cli-mate.lumc.nl/ https://git.lumc.nl/humgen/cli-mate
The actual ontology is not available for download and the authors have not responded to repeated emails.
https://github.com/rabix/experiments/blob/master/schemas/tool.json
Relax-NG schema definitions:
https://projets.pasteur.fr/projects/mobyle/repository/show/tags/release_1_5_3/Schema
program.rnc
defines command line tools, but import generic aspects of Mobyle services that are shared with workflows or widgets by importing common.rnc
Documentation: https://projets.pasteur.fr/projects/mobyle/repository/entry/tags/release_1_5_3/Doc/service_description_guide.pdf
https://biodatomics.atlassian.net/wiki/display/BioDTv2DOC/Create+a+Tool https://biodatomics.atlassian.net/wiki/display/BioDTv2DOC/Workflow https://biodatomics.atlassian.net/wiki/display/BioDTv2DOC/Advanced+Programming
Not opensource.
from the iPlantCollaborative No serialized format for import/export.
http://code.google.com/p/openinquiry/source/browse/trunk/open_inquiry/misc/pise.dtd http://openinquiry.googlecode.com/svn/trunk/open_inquiry/misc/pise.xsd
http://doc.arvados.org/user/topics/run-command.html
(Not actually a CLI wrapper, more like a wrapper for an interactive sessions of a language, but still interesting) https://github.com/SensePlatform/sense-engine
Not used as wrapper in any tool, but seems to be a rather general CLI description language, used to generate the man pages for commandline tools, etc.
http://www.docbook.org/tdg51/en/html/cmdsynopsis.html
http://maasha.github.io/biopieces/
Used by all http://www.seqan.de applications; from OpenMS/SeqAn
http://workflowconversion.github.io/#designer-templates
https://github.com/WorkflowConversion/CTDSchema/blob/master/CTD.xsd
https://www.knime.org/files/ugm2013_talks/knime_ugm_2013_knutreinert_final.pdf
https://www.knime.org/files/kos-11/CADD_GenericNodes.pdf#page=15
http://ceur-ws.org/Vol-993/paper9.pdf
http://algorun.org/documentation
http://yabi.readthedocs.io/en/latest/tools.html#tool-description
https://github.com/boutiques/boutiques
https://github.com/boutiques/boutiques/blob/master/schema/README.md
https://www.curious-containers.cc/ https://github.com/somnonetz/tds-experiment/blob/master/curious-containers/tds-experiment.json https://github.com/curious-containers/faice#faice-description-format
https://doi.org/10.7287/peerj.preprints.27095v1 https://github.com/mjoppich/bioGUI https://www.bio.ifi.lmu.de/software/biogui/index.html
https://docs.rs/clap/2.32.0/clap/struct.App.html#method.from_yaml
clap is a Rust library for command line argument parser with features similar to argparse in Python. It support loading arguments and subcommands from an YAML description.
https://dirac.readthedocs.io/en/latest/UserGuide/GettingStarted/UserJobs/JDLReference/index.html
Container support is limited to certain Singularity containers compatible with installing their framework into: https://dirac.readthedocs.io/en/latest/CodeDocumentation/Resources/Computing/SingularityComputingElement.html
“Plugin interface language”
http://wasabiapp.org/pline/ https://arxiv.org/abs/2002.08363