# Console Applications

## Introduction

A console application is any application that has a command-line or text-based interface and is designed to be used by a human user on the command line. Applications need to be present in the standard `PATH`.

The file described in this document is built upon the generic component metadata with fields specific for applications (see ). All tags valid for a generic component are valid for a `console-application` component as well.

In order to enhance the available metadata about their application, projects shipping a console application can ship one or more metainfo files in `/usr/share/metainfo/%{id}.metainfo.xml`.

## File specification

The basic structure for a generic component as described at applies. Note that the XML root must have the `type` property set to `console-application`, while in a generic component this property can be omitted. This clearly identified this metainfo document as describing an application.

The following list describes tags for `console-application` upstream metadata and provides some additional information about the values the tags are expected to have. If no information is given about a tag, refer to the respective tag in .

<id/>

  For console applications, the `<id/>` tag value must follow the AppStream ID naming conventions (it should be a reverse-DNS name).

<metadata_license/>

  The `<metadata_license/>` tag as described in must be present.

<name/>

  A `name` must be present for console applications. See for a detailed description of this tag.

<summary/>

  A `summary` must be present for console applications. See for a detailed description of this tag.

<provides/> ↪ <binary/>

  This tag is described in detail for generic components at .

  For console applications, at least one provided `<binary/>` must be listed in this tag.

For a component of type `console-application`, the following tags are required and must always be present: , , , , .