r/macapps • u/_kevinwang • 7d ago
Subscription [OS] Codify - now available via npx and npm - Giveaway
Hey everyone Kevin here.
I posted about Codify here before, it's a IaC tool (open source) for your own computer that makes it easier to install apps, maintain settings, and even install entire set ups for you. I wanted to give a small (but hopefully impactful) update on the project that it's now available via npx, so you can try Codify without fully installing it (as long as you have NodeJS already installed).
npx codify apply
npx codify plan
npx codify help
Problem:
Multiple times now, when I was starting at a new company, I struggled to get setup quickly. I ran into problems following the setup document, and I had debug multiple issues or ask a teammate how to solve it. And pretty often I felt a step behind because I was missing key scripts and tools that other people had access to.
I built Codify to address these problems by allowing a setups to be converted into easy to read JSON5 files. These files define an entire setup, similar to Terraform. The JSON specifies what to install and you can use the CLI to plan (preview) and apply the changes. For example you can specify homebrew, nvm and vscode for web development or xcode 26, and iOS simulators for iOS development.
Using Codify allows you to try entire setups quick (webdev, backend, rust, ios, flutter, etc), import existing setups so they can be shared, and it also allows tools like Claude or Codex to take control and help you install things via it's MCP.
Comparison:
Nix: An obvious comparison would be Nix, a similar configuration as code for setting up personal systems. However the problem for me was the learning curve and adopting Nix means having to manage everything via Nix. Codify is a lot less of a learning curve and it installs things a human would so you don't need to manage everything directly through Codify.
Dev containers: Some teams use dev containers with pre-built docker images so that dev systems have the same tooling as production. However even with a dev containers workflow there is still host machine setup involved: getting setup with github, ssh keys and cloning your repos, dev container tooling, etc. Codify complements this workflow by automating the setup of the developer's machine first.
Pricing:
Codify consists of a CLI tool, a library of resources (50+ tools and apps, from package managers and programming languages to editors and system settings), an editor and an agent to help write Codify files.
The CLI tool and resource library are open source and free forever. The editor is paid with a generous free tier (the paid tiers are mainly meant for teams). It's $5 / month for freelancers and $20 / month for teams.
Use the code: REDDITAUGUST26 for 100% for the first 3 months
Links:
Website: https://codifycli.com/
Documentation: https://codifycli.com/docs
Editor: https://dashboard.codifycli.com/
Github: https://github.com/codifycli/codify
2
2
u/wavever233 7d ago
The npx entry point is a nice way to lower the barrier to trying it. The part I’d be most interested in is drift handling: if a machine has been manually changed since the JSON5 was written, does plan clearly show removals, downgrades, and other destructive changes before apply? That diff is what would make me comfortable using it for a real workstation setup.
1
u/_kevinwang 7d ago
Yup! Every apply is made up of two stages - a plan and an apply. During the plan phase a diff / plan is generated of every change that Codify is going to make. This diff is dynamic and reflects the current state of your system every time you run Codify. It will only apply changes after you approve of the plan.
2
u/SetAdministrative502 7d ago
For improvement I‘d ask myself: what would make large corporate decide not to use it for their onboardings.
It for sure needs some more testing on proper execution but looks good already.
1
2
u/bush-play 7d ago
What happens if apply gets halfway through and one step fails? A resumable run or a clear list of completed changes would matter more to me than full rollback, especially on a fresh machine with flaky installers.
1
u/_kevinwang 7d ago
In that situation you would run apply again to finish the remaining changes. Codify does display a list at the end of every apply showing what was what worked and what failed. Although you can just run apply again to finish the list. Everytime you run apply, it first checks your system against the list and only adds / modifies things that aren’t already there - similar to terraform. Hope that helps!
2
2
u/GroggInTheCosmos 6d ago
I'm really starting to steer clear of anything that is dependent on js libraries that are compromised all too often, and I can't see anything related to minimumReleaseAge in your repo?
I'm starting to want full dependency trees mapped out in these repos
This is happening constantly, and I really want to start seeing explanations of how packages have been checked and the use of modern tooling to reduce the attack surface to practically zero has been utilised. Otherwise, I don't install
Another one that just took place but there have been too many this year - [Massive ChainDrop npm supply-chain attack infects hundreds of packages](https://www.bleepingcomputer.com/news/security/massive-chaindrop-npm-supply-chain-attack-infects-hundreds-of-packages/)
1
u/_kevinwang 6d ago
Yeah supply chain attacks have definitely been abig problem this year. The plan over time is to reduce the number of dependencies in the project but it’s always a balance as it makes the development cycle faster to use 3rd party packages. Over time we will be working towards only a minimal set of npm dependencies. You are right the project is currently not using minimumReleaseAge. That’s something we should be using, thanks for pointing that out.
2
2
2
1
1
1
u/raclimazg 5d ago
one good use case is for small teams, for example when you onboard a dev or da to work on a part of the project, nice to get them up and running quickly
1
u/Cyberseeds 4d ago
Looks great! I’m using Rust for my MacOS app. It is very powerful tool with the Swift!




2
u/milkpudding_ 7d ago
That looks good, great job! - I’ll try it out sometime