The plugin schema defines metadata, installation, and configuration details about a plugin.
The unique name for the plugin, this must be the same name as the filename and can not be changed later.
It should also match the regex [a-zA-Z][a-zA-Z0-9\.-_]*
, start with alphabetic character and followed by any number of alphanumeric characters, .
, -
, or _
.
Declaration: name: string;
The name used for display purposes
Declaration: `displayName?: string;
The type of the plugin, the only current type of plugin is a shell
plugin
Declaration: type: "shell"
A short description of a plugin, this should breifly explain what the plugin is in less than 100 characters.
Declaration: description?: string
The icon of a plugin used in the plugin store
This should either be an emoji or a url to a square image
Declaration: icon?: string
A url to the offical site of a plugin
Declaration: site?: string
A url to the offical docs for a plugin
Declaration: docs?: string
The owner/repo
of the plugin, this is both used for metadata and determining where to clone the plugin from
Declaration: github?: string
The twitter handle for the plugin
Declaration: twitter?: string
A list of authors who created the plugin
Declaration: authors?: Author[]
The authors is a list of the following type:
type Author =
| string
| {
name: string;
twitter?: string;
github?: string;
};
If the author is a string that is their name, the twitter should be their twitter handle, and github should be the github username
The license is a list of the licences of the plugin
The string should follow the SPDX License syntax
Declaration: license?: string[]
This is an inclusive list of the shells that a plugin supports
Declaration: shells?: Shell[]
type Shell = "bash" | "zsh" | "fish";
The categories is a list of the catagories that a plugin falls under, this array should contain at least one category
Declaration: categories?: Category[]
type Category =
| "Completion"
| "Prompt"
| "Color"
| "Alias"
| "Convenience Function"
| "Productivity Hack"
| "Framework"
| "Other";
Keywords act as additional metadata for a plugin that is fully user definable
Declaration: keywords?: string[]
See Installation
See Configuration