Configuration-as-code for your development environment
Codify is a declarative tool for installing and managing developer tools and applications. Turn your system setup into a safe, reproducible process using infrastructure-as-code principles.
Codify lets you define your entire development environment in code. Instead of running dozens of installation commands or clicking through installers, describe what you want installed and let Codify handle the rest.
[
{
"type": "homebrew",
"formulae": ["git", "postgresql", "redis"],
"casks": ["docker"]
},
{
"type": "nvm",
"nodeVersions": ["20.0.0", "18.0.0"],
"defaultVersion": "20.0.0"
},
{
"type": "git-repository",
"parentDirectory": "~/projects",
"repositories": [
"git@github.com:myorg/frontend.git",
"git@github.com:myorg/backend.git"
]
},
{
"type": "vscode"
}
]Run codify apply and your environment is ready.
- Declarative configuration - Define what you want, not how to get it
- Idempotent operations - Run the same configuration multiple times safely
- Plugin architecture - Extend Codify to manage any type of resource
- Cross-platform support - Works on macOS, Linux, and Windows
- TypeScript-based - Type-safe plugin development
/bin/bash -c "$(curl -fsSL https://releases.codifycli.com/install.sh)"The main CLI tool. Start here to use Codify for managing your development environment.
TypeScript library for building Codify plugins. Use this to create custom resource managers for your infrastructure-as-code needs.
Testing framework for Codify plugins with lifecycle testing and cross-platform support. Essential for plugin developers.
The default plugin implementation, providing built-in resource types and serving as a reference for plugin development.
# Install Codify
npm install -g codify-cli
# Initialize a new project
codify init
# Apply your configuration
codify applyBuilding a Codify plugin is straightforward with our TypeScript SDK:
import { Plugin, Resource } from 'codify-plugin-core';
class MyCustomResource extends Resource {
async apply() {
// Your resource logic here
}
}Check out codify-plugin-core for the complete API documentation.
- Reproducible environments - Share your exact setup with teammates
- Version control your tools - Track changes to your development environment
- Onboard faster - New team members run one command to get started
- Disaster recovery - Rebuild your entire setup from a single file
We welcome contributions! Check out the individual repositories for specific contribution guidelines.
Made with ❤️ by the Codify team