The deadliest poison known to AI
Find a file
Gergely Nagy b2bb0aef7e
Some checks failed
default / clippy (push) Has been cancelled
lint / linting (push) Has been cancelled
Reword the readme somewhat
Reworded the README to better align with current project goals, to fix a
typo, and add an anti-AI badge for good measure.
2026-01-11 00:32:42 +01:00
.cargo Revert "Replace jemalloc with mimalloc" 2025-10-16 23:49:47 +02:00
.forgejo ci: Use arm64 for Debian packages 2026-01-09 07:56:19 +01:00
data qmk: Drop the back link generation 2025-12-11 10:45:42 +01:00
debian Preparations for iocaine 3.1.0 2025-12-23 10:37:49 +01:00
LICENSES Initial import 2025-01-16 10:44:56 +01:00
nix nix: Update to NixOS 25.11 2025-12-09 08:12:23 +01:00
src tenx_programmer: Don't panic if the persist file is empty 2025-12-30 11:37:08 +01:00
tests elegant_weapons: Support the vendored compiler 2025-11-04 09:00:44 +01:00
.envrc nix: Split devShells into two 2025-08-30 10:23:59 +02:00
.gitattributes Stop bundling assets in the source 2025-11-17 22:25:25 +01:00
.gitignore Implement instance-id & poisoned URLs 2025-12-11 10:39:29 +01:00
build.rs Stop bundling assets in the source 2025-11-17 22:25:25 +01:00
Cargo.lock Bump the version to 3.1.1-snapshot 2025-12-30 11:36:37 +01:00
Cargo.toml Bump the version to 3.1.1-snapshot 2025-12-30 11:36:37 +01:00
CHANGELOG.md tenx_programmer: Don't panic if the persist file is empty 2025-12-30 11:37:08 +01:00
flake.lock flake.lock: Update 2025-12-23 10:27:09 +01:00
flake.nix nix: Update to NixOS 25.11 2025-12-09 08:12:23 +01:00
justfile just: Update ai.robots.txt's version to 1.44 2025-12-11 15:21:00 +01:00
README.md Reword the readme somewhat 2026-01-11 00:32:42 +01:00
REUSE.toml Stop bundling assets in the source 2025-11-17 22:25:25 +01:00

iocaine

Build status Demo Documentation AI? Fuck no.

The deadliest poison known to AI.

Iocaine is a defense mechanism against unwanted scrapers, sitting between upstream resources and the fronting reverse proxy. It is designed to significantly reduce the load caused by the relentless attack of the Crawlers (mostly originating from various AI companies) in a way that does not place undue burden on benign visitors. While iocaine does support presenting a proof-of-work challenge, that should be a last resort, and even if that path is taken, the challenge is inexpensive for the human visitor.

Originally, iocaine started as a garbage generator, a tarpit, a place where the reverse proxy routed unwanted visitors, so that they'd crawl an infinite maze of garbage. Since then, it grew into a more ambitious project, and includes a scripting engine that lets the iocaine-operator tell the software how to treat each incoming request. The idea remained similar, however: keep the crawlers in the maze, and let the backend serve the real content for benign visitors.

Unlike some similar tools, iocaine does not try to make the bad bots go away, it welcomes them, into an infinite maze of garbage. It does so, because that makes it possible to serve them poisoned URLs, which in turn, makes it possible to identify bad actors even if they come back piggy-backing on a real browser. By filling their queue with junk when they visit with their simpler collectors, we can capture the browser-based scrapers in the maze too.

The garbage generator in iocaine has been engineered to require as few resources as possible, to keep it cheap, pretty much on par with serving a static file from the filesystem. The goal is to have a tool that costs next to nothing for the operator, reduces the load on upstream services, and protects them from the crawlers, while having no (or at worst, very little) effect on legit visitors, but making life of crawler operators difficult at the same time.

For more information about what this is, how it works, and how to deploy it, have a look at the dedicated website.

Lets make AI poisoning the norm. If we all do it, they won't have anything to crawl.