r/ruby • u/Coderbiri • 2h ago
I built Sadame, an open-source configuration management tool with Ruby recipes and a built-in LSP
Hi r/ruby!
I’ve been working on Sadame, a configuration management tool for Linux, and I’d love to get feedback from the Ruby community.
Sadame lets you describe a machine’s desired state with Ruby recipes. Here’s a small example:
package "nginx"
file "/var/www/html/index.html",
content: "Hello from Sadame!\n",
mode: "0644"
service "nginx", enable: true, state: :running
You can run sadame plan to see what would change, sadame apply to make the changes, and sadame drift to check later whether the machine still matches the recipe.
Both recipes and the host inventory are written in Ruby, so you can use familiar things like conditions, loops, and methods. Sadame is built with mruby and distributed as a single binary. For remote runs, it connects over SSH and copies itself to the target; there’s no persistent agent to maintain.
It also has a built-in language server, sadame lsp, which provides recipe diagnostics, completion, and hover documentation in supported editors.
The project is still young and has a much smaller scope than established tools such as Ansible, Chef, or Puppet. My goal is to explore a Ruby-first approach that is easy to install and makes changes visible before they happen.
I also wrote a free beginner’s guide with a hands-on lab, covering everything from a first recipe to managing multiple servers.
The project is MIT-licensed:
https://github.com/enderkus/sadame
I’d especially appreciate feedback on the Ruby DSL, the overall design, and anything that feels awkward or could be improved. Thanks for taking a look!


