skill.json spec

This document specifies valid skill.json metadata.

title

String skill title to be used in store listings and other user-facing places. This is not guaranteed to be unique, so multiple skills may have the same title.

url

String URL that a skill is hosted at (usually on github.com)

short_description

String short description or by-line for a skill. This may be used in store listings or other user-facing places.

description

String description for a skill. This may be used in a 'details' page or similar.

examples

List of string utterances that are handled by this skill. These should be formatted as sentences, ready to be displayed as-is and should not include any wake words or other extraneous information.

desktopFile (optional)

Relative path to a .desktop file that can be used to launch a persistent skill GUI.

systemDeps

Boolean indicating if a skill includes system package dependencies.

requirements

Dictionary with keys python, system, and skill, each with values indicating requirements.

python

List of valid package specs, as would be found in requirements.txt.

system

Dictionary of package manager (i.e. apt) to a list of required packages.

skill

List of required skills, identified by skill_id.

incompatible_skills

List of skills that can not be loaded at the same time as this one.

platforms

List of string platforms this skill is compatible with.

Valid options: ['i386', 'x86_64', 'ia64', 'arm64', 'arm']

license

String licence identifier this skill is provided under.

icon

String URI for an icon to use in user-facing UIs.

category

Primary category this skill belongs to.

Valid options: ["Daily", "Configuration", "Entertainment", "Information", "IoT", "Music & Audio", "Media", "Productivity", "Transport"]

categories

List of categories this skill belongs to.

Valid options: ["Daily", "Configuration", "Entertainment", "Information", "IoT", "Music & Audio", "Media", "Productivity", "Transport"]

tags

List of string tags to apply to this skill. Tags can be any string and help with searchability; some skill listings might require a skill contain a particular tag.

skillname

String name of the skill, usually the Git repository name.

authorname

String name of the skill's author, usually the Git user/organization name.

foldername

Optional string base directory to install the skill to; default null.

lang

String BCP-47 language code (i.e. en-us) the skill.json and README.md files are written in.

lang_support

Dict of other supported languages (BCP-47 language codes) to dict with keys: skillname, description, and examples. Missing fields will default to top-level fields.

credits (optional)

List of string credits for a skill, usually GitHub usernames.

branch (optional)

Git branch this skill.json spec is associated with.

warning (optional)

Optional string warning to display when installing a skill.

summary (optional)

String short description or by-line for a skill. This may be used in store listings or other user-facing places.