Skip to content

Plugins

Plugins contain a collection of resources. Codify comes with a core plugin maintained by the Codify team that has essential resources like xcode-tools, shell tools (path, alias), and homebrew.

Adding plugins

codify.json
[
{
"type": "project",
"plugins": [
"ssh",
"azure"
]
}
]

3rd party plugins can be specified using the plugins parameter in a project config. See the plugin registry for all plugins that can be included.

Another option for adding a plugin is to fully qualify the resource type.

codify.json
[
{
"type": "@kevinwang5658/azure"
}
]

Use the syntax @plugin/resource-type to include a resource from a 3rd party plugin without declaring it in the project config.

A path to a local plugin project can also be specified.

codify.json
[
{
"type": "project",
"plugins": ["/Users/codify-user/projects/src/index.ts", "../plugin2/src/index.ts"]
}
]

This is useful for developing a new plugin locally. Both absolute and relative paths are supported. The referenced folder must point to the entry file for the plugin. The project have a valid package.json and the npm package codify-plugin-lib installed. See more in plugin development.

Caching

When the Codify CLI first reads a codify.json file it will parse out the required plugins from the project config and fully qualified resource names. It will download the plugins from the Codify registry and cache them under ~/Library/Caches/codify/plugins. If a problem arises from a stale or improperly downloaded/configured plugin, the plugins directory can be deleted to clear out the cached plugins.