Resource & Plugins
Resources, plugins, and how to extend Codify
Codify ships with a default plugin that covers 50+ tools out of the box. For most users, no plugin configuration is required.
Resources
A resource is the interface between Codify and your system. Each resource knows how to install, check the current state of, modify, and remove a specific tool or system setting. Resources are what Codify executes when you run codify apply.
Every resource has a type that you reference in your config:
homebrew— Homebrew packages and casksnvm— Node.js version managementvscode— VS Code installationgit— Git global configurationpath— Shell PATH entriesalias— Shell aliases
See the full resource list for all available resources.
Plugins
A plugin is a collection of resources. Codify ships with one built-in plugin: the default plugin. It loads automatically and requires no configuration for basic use.
Advanced users can sideload local resources or build custom plugins. See Custom Plugins below.
The Default Plugin
You can pin the default plugin to a specific version using a project config block:
[
{
"type": "project",
"plugins": {
"default": "^1.0.0"
}
},
{
"type": "homebrew",
"formulae": ["git", "node"]
}
]Plugin version options:
"latest"— always use the most recent stable version"beta"— use the latest beta version- Semantic version (e.g.,
"^1.0.0","1.2.3") — specific version constraint
If you omit the project config block, Codify loads the latest stable version of the default plugin automatically.
Requesting New Resources
If a tool you need is not in the default plugin, you can request it. Open a resource request on GitHub. An AI workflow generates the resource and opens a pull request. The Codify team then reviews and tests it before merging. Turnaround is 10 business days.
Custom Plugins
For tools that need custom behavior, you can build your own plugin and reference it locally in your project config:
[
{
"type": "project",
"plugins": {
"default": "latest",
"./local/plugin.ts": "1.0.0"
}
}
]See the Plugin Development Guide for how to build, test, and use custom plugins.