Recently, I experimented with using Large Language Models (LLMs) to help maintain and update some of my Debian packages.
My approach was straightforward: I placed the source package in a local
filesystem, launched an opencode-agent instance inside a bubblewrap
sandbox, and asked it to update the package following Debian best practices. I
instructed it to check the Bug Tracking System and Policy guidelines, as well
as review and update all present files under debian/.
Although I still needed to monitor it closely and guide it with specific feedback, the final packages turned out better than if I had only updated the upstream version.
Here are a few recent uploads created with this workflow:
I remain conflicted about this shift.
On one hand, having an assistant do the heavy lifting through an iterative
feedback loop produces more thorough and accurate results than I might produce
alone - the generated debian/changelog entries, for instance, are remarkably
detailed (perhaps almost too extensive). Beyond Debian work, I’ve used LLMs to
tackle long-postponed personal projects, like updating my homepage.
On the other hand, relying on these tools changes the learning process: because the AI executes the work, I miss out on deep hands-on learning.
My professional work will also be heavily affected. If you trust an agent enough to grant it shell access, it can take over full system administration - setting up infrastructure, tackling incidents, and analyzing log files.
Even if the current financial bubble around AI bursts, this underlying capability is here to stay. The longer I think about it, the more I believe this will be a bigger revolution than the Internet itself. I have no idea where this will ultimately lead us - whether as individuals, as system administrators, or as Debian Developers.