Post
-
Semantic vendoring keeps customized tools up to date
Are you still updating packages like it's 2025, and not regrafting updates from upstream? Emacs perfected software extensibility. Now Pi, OpenClaw, Herdr, and many other are following its example After a certain point of working with agents, one realizes that open source, personalizable and extensible tools are more powerful and useful than closed ones, like Claude Code You can shape them to fit your workflow, your business cases however you like In such ecosystems, extensions take a life of their own What happens if you like someone else's extension, want to use it, but also want to modify it yourself? You just copy it over and do whatever you want... But if you fork it, then how will you update it? That's where regrafting comes into picture. If upstream has changes over your modified copy, then you can just ask an LLM to carry over those changes This is a good thing! It also protects you better against supply chain attacks, because each update has to pass through an LLM, to apply each change to the relevant place To streamline this process in pi, I created pi-regraft, a pi extension that you can use to update your vendored in extensions I call this "semantic vendoring". I wrote about it here: solmaz.io/semantic-vendoring Repo:Image hidden