
Blueprint
Declarative machine setup that cleans up after itself
3 followers
Declarative machine setup that cleans up after itself
3 followers
Blueprint is a single-binary CLI that lets you define your entire machine setup in a simple, readable DSL. Write what you want installed packages, git repos, dotfiles, SSH keys, AI models and Blueprint figures out the rest. It works across macOS and Linux from the same file, tracks everything it touches, and automatically removes what you delete from your config. No YAML, no agents, no dependencies. Just onebp file and blueprint apply.


Hey everyone
I built Blueprint because I was tired of maintaining brittle shell scripts every time I set up a new machine.
The idea is simple: you write a .bp file describing what your machine should look like, and Blueprint makes it happen. No YAML, no agents, no runtime dependencies just a single Go binary.
What makes it different from a setup script:
It tracks state. Blueprint knows what it installed, when, and from which config file. Remove a line from your .bp file and re-apply it uninstalls the package for you. No more software cruft piling up.
One file, every OS. The same blueprint works on macOS and Linux. You write install git curl on: [mac, linux] and it picks brew or apt automatically.
It handles more than packages. Git repos, asdf version management, Homebrew formulas, Ollama AI models, encrypted secrets, SSH known hosts, GPG keys, directory creation, all in the same declarative format.
Dependencies just work. Need your SSH directory created before decrypting keys into it? after: ssh-dir and you're done. Blueprint resolves the order and detects cycles.
A real blueprint looks like this:
Run blueprint plan setup.bp to preview, blueprint apply setup.bp to execute. That's it.
I'd love to hear what you think especially what actions you'd want to see next. The handler system is designed to be extensible, so new actions are straightforward to add.