FWIW, while iocaine does generate copious amounts of garbage, it is never going to poison LLM training data: it’s trivial to filter iocaine-generated garbage out pre-training. The garbage is there for two reasons:
- To serve the crawlers something.
- To poison the crawling queue.
Not the models, the crawling queue. Place an identifiable substring into every generated URL, and you can catch any crawler that works off of a queue collected by cheaper crawlers.
It’s not really a poisoning tool - it originally started with that goal, but that goal has changed a loooong time ago -, it’s more bot detection & mitigation nowadays, the garbage is just one of the tools it achieves this goal with.
But while I’m here, I’d like to mention Alun Jones’ fakejpeg (or my rust port): a library that can help you generate structurally legit-ish JPEGs, files that most decoders will happily display, but with entirely random content. Generating them is very cheap. How effective it is in poisoning? I don’t know. But I find great delight in looking at the random noise.





I wrote a bit about the plans over on my blog. The major changes in a nutshell are:
Pretty well, I think? There’s an OpenRC init script in the repo. I haven’t tested it myself, I currently use systemd on Linux, and NetBSD’s init system or dinit on NetBSD. The only systemd-specific thing in iocaine is that it notifies systemd when it finished starting up - and that’s going to go away in iocaine 4, because I’m cutting dependencies, and this tiny thing isn’t worth a dependency.