Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Codify CLI

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.

What is Codify?

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.

Key Features

  • 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

Installation

Command line (recommended)

/bin/bash -c "$(curl -fsSL https://releases.codifycli.com/install.sh)"

Core Repositories

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.

Getting Started

# Install Codify
npm install -g codify-cli

# Initialize a new project
codify init

# Apply your configuration
codify apply

Plugin Development

Building 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.

Why Codify?

  • 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

Contributing

We welcome contributions! Check out the individual repositories for specific contribution guidelines.

Links


Made with ❤️ by the Codify team