π Introducing `refactorlah` CLI -- fully open source.
Agents are surprisingly bad at renaming/moving files.
They are doing `git mv`s, then dozens of `grep`s, then hand-editing imports/namespaces/references while burning tokens and wasting time on tiny refactors.
The `refactorlah` CLI gives them one boring command instead:
`refactorlah move A B` or in bulk `refactorlah move --use-list A,B tests/A,tests/B`
Then file/s are moved, and namespaces, imports, references, etc. automatically updated.
Ambiguous renames are skipped and reported, so the agent can follow up manually instead of guessing.
Support for Go, Python, PHP, Symfony, Twig is landed.
A PR for JavaScript, TypeScript, Vite etc. is open.
I built and dogfooded `refactorlah` over the last few weeks. It works better for me than keeping an MCP server running in an IDE or making agents struggle through long tool-call chains for basic moves.
Still in alpha! Experimental, built with my best buddy Codex, and still dogfooding.
More eyes -> more dogfooding -> releasing early.
What do you think?
It's actually really hard to make a conclusion. The impact was basically non existent, so from that point of view I was wrong because -- it could be seen as overblown. On the other hand, the exploit is serious. And yet, too complicated to allow it to be used before most servers were patched. Now the question is: how much did the "panic" prevent because it made people actually move instead of sitting it out?
@0xtechnexus When I got back to Codex around April compaction happened without noticing. No idea why that got so excessive when they back the claimed they solved compaction.
feels like there needs to be a new way to distribute opensource software such that people can modify via agents but also get upstream automatically merged in
coding agents can do this but they wonβt do it automatically
@0xtechnexus Oh wow, Sol Xhigh is already slow af. Cannot imagine using Astra Max for anything; very sporadically using Astra Light for planning. Why are you on Astra Max for writing code in the first place?