Documentation

Flat Schema

The flat format stores all commands and parameters as top-level arrays within the tool document. Cross-references are expressed via key and commandKey fields. This is the primary format used by the tools collection.

Tool Object

The root object of a Commandly flat description.

FieldTypeRequiredDescription
binaryNamestringUnique CLI binary name for the tool, such as httpx or curl.
displayNamestringHuman-readable display name.
interactiveboolean-If true, invoking the root tool opens an interactive session or prompt.
infoToolInfo Object-Metadata about the tool, including the homepage URL.
commandsCommand Object[]List of commands and subcommands. Can be empty for tools without commands.
parametersParameter Object[]Flat list of all parameters across root, command, and global scope.
exclusionGroupsExclusionGroup Object[]-Groups of mutually exclusive or required parameters.
metadataToolMetadata Object-Custom metadata.

ToolInfo Object

FieldTypeRequiredDescription
descriptionstring-Short description of the tool.
versionstring-Tool version string.
urlstring-URL to the tool's homepage or repository.

Command Object

FieldTypeRequiredDescription
keystringUnique identifier. Referenced by parameters via commandKey.
namestringCommand name as it appears in the CLI invocation.
parentCommandKeystring-Key of the parent command. Omit for root-level commands.
descriptionstring-Human-readable description of the command.
interactiveboolean-If true, the command requires interactive user input at runtime. Defaults to false.
sortOrdernumber-Display sort order.

Parameter Object

FieldTypeRequiredDescription
keystringUnique identifier for the parameter.
namestringHuman-readable parameter name.
parameterTypeParameterTypeOne of Flag, Option, or Argument.
dataTypeParameterDataTypeOne of String, Number, Boolean, or Enum.
isRequiredboolean-Whether the parameter must be provided.
isRepeatableboolean-Whether the parameter can appear more than once.
isGlobalboolean-If true, the parameter applies to all commands regardless of commandKey.
commandKeystring-Key of the command this parameter belongs to. Omit for root-level and global parameters.
descriptionstring-Human-readable description.
groupstring-Display group label for UI grouping.
shortFlagstring-Short flag form (e.g. -o). Used for Flag and Option types.
longFlagstring-Long flag form (e.g. --output). Used for Flag and Option types.
positionnumber-Zero-based positional index. Required for Argument type parameters.
sortOrdernumber-Display sort order.
arraySeparatorstring-Separator used when a repeatable parameter is joined into a single token.
keyValueSeparatorstring-Character between the flag and its value. Defaults to a space.
enumParameterEnumValues Object-Required when dataType is Enum.
validationsParameterValidation Object[]-Validation rules applied to the parameter value.
dependenciesParameterDependency Object[]-Conditional relationships with other parameters.
metadataParameterMetadata Object-Custom metadata.

ParameterType

ValueDescription
FlagA boolean switch with no value (e.g. --verbose). Use with dataType: Boolean.
OptionA named parameter that accepts a value (e.g. --output file.txt).
ArgumentA positional parameter identified by its position in the command, not a flag.

ParameterDataType

ValueDescription
StringA string value.
NumberA numeric value.
BooleanA boolean value. Typically used with Flag type.
EnumOne of a predefined set of values. Requires enum.

ParameterEnumValues Object

FieldTypeRequiredDescription
valuesParameterEnumValue Object[]Ordered list of allowed values.
allowMultipleboolean-Whether multiple values can be selected simultaneously.
separatorstring-Separator used when multiple values are combined into one token.

ParameterEnumValue Object

FieldTypeRequiredDescription
valuestringThe raw value passed to the CLI.
displayNamestringHuman-readable label shown in the UI.
descriptionstring-Description of what this value does.
isDefaultboolean-Whether this value is selected by default.
sortOrdernumber-Display sort order.

ExclusionGroup Object

Defines a group of parameters that are mutually exclusive or where exactly one must be chosen.

FieldTypeRequiredDescription
keystring-Unique identifier for the group.
namestringHuman-readable group name.
commandKeystring-Key of the command this group applies to.
exclusionTypeExclusionTypeOne of mutual_exclusive or required_one_of.
parameterKeysstring[]Keys of the parameters belonging to this group.

ExclusionType

ValueDescription
mutual_exclusiveAt most one parameter in the group may be set at a time.
required_one_ofExactly one parameter in the group must be set.

ParameterValidation Object

FieldTypeRequiredDescription
keystringUnique identifier.
validationTypeParameterValidationTypeThe kind of validation to apply.
validationValuestringThe threshold or pattern for the validation.
errorMessagestringMessage displayed when validation fails.

ParameterValidationType

ValueDescription
min_lengthMinimum number of characters in the string value.
max_lengthMaximum number of characters in the string value.
min_valueMinimum numeric value.
max_valueMaximum numeric value.
regexRegular expression the value must match.

ParameterDependency Object

Defines a conditional relationship between two parameters.

FieldTypeRequiredDescription
keystringUnique identifier.
parameterKeystringKey of the parameter this dependency rule applies to.
dependsOnParameterKeystringKey of the parameter being depended upon.
dependencyTypeParameterDependencyTypeOne of requires or conflicts_with.
conditionValuestring-Specific value of dependsOnParameter that activates this dependency. If omitted, the dependency applies whenever dependsOnParameter is set.

ParameterDependencyType

ValueDescription
requiresThis parameter can only be set if dependsOnParameter is also set.
conflicts_withThis parameter cannot be set when dependsOnParameter is set.

ParameterMetadata Object

FieldTypeRequiredDescription
tagsstring[]-Custom string tags. Used to annotate parameters (e.g. "non-configurable", "output-file").