Opt Out or Fork It: Inside the Architecture of AI Resistance

Opt Out or Fork It: Inside the Architecture of AI Resistance

From disabling Copilot to forking the Linux kernel, the anti-AI movement is reshaping how systems are designed, built, and maintained.

The tech industry has spent the last two years shoving AI into everything that doesn’t move. Your PDF reader has AI. Your text editor has AI. Your operating system has AI baked in so deep that removing it requires registry edits and third-party debloating tools. The “revolutionary” features mostly revolutionized the settings menus.

But here’s what the AI hype cycle missed: a growing counter-movement of users and developers who aren’t just complaining about forced AI integration, they’re architecting their entire digital environments to resist it. This isn’t Luddism. It’s engineering with intent.

The Oxygen Mask Principle

Librarian Jessamyn West’s NoToAI.org has become an unlikely manifesto for the anti-AI movement. The site’s guide to disabling intrusive AI opens with an image of an aircraft oxygen mask with its tube cut, put on your own mask first.

Aircraft passenger oxygen mask with cut tube
Illustration of the oxygen mask principle: secure your own environment first.

The guide reads like a cybersecurity hardening checklist, because that’s exactly what it is. For Adobe Acrobat: Menu > Preferences > Generative AI, uncheck, save. For Windows 11: right-click Copilot in the Start menu, uninstall, then pray. For Chrome: type chrome://flags into the address bar, search for GLIC and Gemini, disable everything, don’t accidentally enable the settings that default to off.

This is the new sysadmin skillset. The anti-AI movement has transformed application configuration from a mundane chore into an exercise in digital sovereignty. Firefox 148 and later even ships a dedicated “Block AI Enhancements” toggle, a recognition that AI resistance is now a mainstream user requirement, not an edge case.

The Fork Heard ‘Round the Kernel

The battle lines got dramatically clearer when Linus Torvalds told anti-AI programmers to “fork it” on the Linux Kernel Mailing List. His position is characteristically blunt: “AI is a tool, just like other tools we use. And it’s clearly a useful one.”

Linus Torvalds
Linus Torvalds, the ultimate arbiter of the Linux kernel, took a firm stance on AI-generated code.

Torvalds isn’t just tolerating AI in kernel development, he’s explicitly approving it, and he’s willing to “absolutely put my foot down as the top-level maintainer” against anyone who objects. The open-source community’s ultimate arbiter has spoken: if you don’t like AI in the kernel, you can exercise the same freedom that created Linux in the first place.

The Software Freedom Conservancy’s AI policy statement tried to thread the needle, suggesting projects should “support, not just tolerate, those who outright reject LLM-gen-AI systems.” Senior kernel maintainer Theodore “Ted” Ts’o immediately identified the logical absurdity:

If someone rejects LLM-gen-AI systems, and the LTS kernel contains patches which are automated backported, and they object, are we bound to forswear the use of automated backport technologies?

What if someone uses an LLM agent to analyze a bug report and find a fix? Does “supporting” someone who rejects AI mean refusing that fix? Ts’o’s conclusion is pragmatic: “I don’t think it’s obvious that we must bend over backward to oblige the needs of all patch authors.”

James Bottomley went further: “The contributor doesn’t get to approve the tools the maintainer uses to assess and apply patches. If there’s AI in there, and the contributor is an AI luddite, then the patch doesn’t get applied (i.e., your right to ignore AI stops when it infringes others’ right to use it).”

The Identity Crisis Behind the Resistance

The DevOps.com analysis of developer resistance to AI cuts deeper than the LKML flame wars. The research suggests this isn’t about job security, it’s about professional identity.

The data is striking. In 2025, 84% of developers were using or planning to use AI coding tools, yet only 33% trusted the code those tools produce. Adoption is rising. Trust is falling. That gap isn’t a statistical anomaly, it’s the sound of a profession grappling with what it means to be a programmer.

Traditional coding is hands-on. You solve problems, shape architecture, write code, debug, and make technical decisions directly. AI-assisted coding moves developers up a level: instructing, reviewing, correcting, and orchestrating AI agents rather than writing code themselves. The psychological mechanism is similar to what happens when you ask one coder to supervise another, it requires a different type of effort, and not everyone signed up for that job.

This is why the advocacy for minimalism in system design as resistance to over-engineering resonates so strongly with anti-AI architects. Both movements share a core principle: the best system is the one you can fully understand and control. Complexity isn’t a feature, it’s a liability.

The Architecture of Resistance

What does anti-AI architecture actually look like in practice? It’s more nuanced than “don’t use AI tools.” It’s about designing systems with AI resistance as a first-class requirement.

Hardware-level resistance: Some organizations are making deliberate choices about which devices enter their ecosystems. When Gemini “takes over” your phone’s power button, that’s not a feature, it’s a design decision that prioritizes AI visibility over user control. Systems being architected today are specifying hardware that allows complete removal of AI assistants.

Browser-level resistance: The DuckDuckGo browser now offers a no-AI version that strips AI features from search. Alternative browsers like Zen, Helium, and Waterfox are gaining traction precisely because they don’t come with AI baggage.

OS-level resistance: Tools like O&O ShutUp 10 and Win11Debloat have emerged to help users rip Copilot out of Windows 11. The fact that these tools exist, and are actively maintained, tells you something about demand.

Workflow-level resistance: The Zig language project has adopted strict policies against AI-generated code. This isn’t just philosophical posturing, it’s an architectural decision that affects everything from contribution guidelines to CI/CD pipelines.

The edge-native architecture as a deliberate alternative to AI-heavy cloud models fits this pattern too. Cloudflare’s “OS” isn’t trying to be AI-everything, it’s designed for deterministic, predictable edge computing where you know exactly what your infrastructure is doing.

The Enterprise Disconnect

The anti-AI movement isn’t confined to hobbyists and kernel developers. The enterprise is where the tension gets really interesting.

A Heimdal survey found executives are four times more confident about AI risk than the teams actually managing it. That’s not a confidence gap, that’s a reality gap. The people making AI adoption decisions are not the people who have to deal with the consequences.

This disconnect manifests in architectural decisions. Executives see AI integration as a competitive necessity. Engineers see it as an unvalidated dependency that increases attack surface, complicates debugging, and introduces nondeterministic behavior into systems that were designed to be predictable.

The complexity introduced by open-weight AI models in distributed systems is a case in point. Running an open-weights model in production isn’t like adding a library, it’s like adding an entire distributed subsystem with its own networking, memory, and GPU requirements. The operational burden is real, and it’s often underestimated by decision-makers who see only the demo video.

When AI Is Actually Good: The Quality Signal

The anti-AI movement’s strongest argument is about quality, and it cuts both ways.

Greg Kroah-Hartman, maintainer of the Linux stable kernel, noted that months ago, the kernel community was getting “AI slop”, AI-generated security reports that were “obviously wrong or low quality.” But then, he said, “the world switched. Now we have real reports.”

The quality signal is asymmetric. Bad AI output is enormously costly, it wastes maintainer time, pollutes bug trackers, and erodes trust. Good AI output is valuable, but it requires the same human validation as any other contribution. The 1Password study found AI failed to properly patch software flaws 74% of the time. That’s not a tool you can trust without verification.

This is why the automated, maintainable architecture documentation as resistance to opaque AI systems approach makes sense. If you’re going to have AI in your pipeline, you need deterministic checkpoints that let you verify what it produced. Diagram-as-code gives you that. It’s a way of saying: “I’ll use AI, but I’m going to make sure I can see exactly what it did.”

The Coexistence Question

Torvalds’ position isn’t “AI everywhere”, it’s “AI where it’s useful, and loudly ignore people who argue against others using it.” That’s a fundamentally different stance from the enterprise AI mandates that force adoption without consent.

The anti-AI architecture movement is really about consent. It’s about designing systems where AI is opt-in, not opt-out. Where you can remove AI features without breaking core functionality. Where “AI-powered” is a feature flag, not a core dependency.

The current state of software is the opposite. Zoom’s AI options default to “on” and new AI features get added periodically, each one requiring a separate trip to settings to disable. Windows 11 has Copilot embedded so deeply that uninstalling it requires either a registry hack or a third-party tool. Chrome’s AI features are scattered across flags, with some defaulting to enabled.

That’s not AI integration. That’s AI imposition. And it’s driving the architectural resistance movement as much as any philosophical objection.

The Practical Playbook

For teams and individuals who want to architect systems with AI resistance built in, the NoToAI.org guide offers a starting point, but the deeper principles need to be architectural:

1. Treat AI as a dependency, not a feature. If your application requires an AI service to function, you’ve created a coupling that’s hard to unwind. Design AI capabilities as optional modules that can be disabled without degrading core functionality.

2. Default to deterministic. Non-deterministic AI behavior makes testing, debugging, and auditing dramatically harder. When AI is used, wrap it in deterministic interfaces with clear inputs and outputs. Add validation layers that can catch errors before they propagate.

3. Respect the trust gap. With only 33% of developers trusting AI-generated code, design your workflows around human validation. AI can draft, humans must approve. That’s not inefficiency, it’s risk management.

4. Make removal possible. If you integrate AI into your product, make it possible to disable every piece of it. Users shouldn’t need third-party debloating tools to configure your software.

5. Consider the reimagining version control to resist AI-driven workflows. AI agents generate thousands of edits per session. Traditional review workflows can’t keep up. If you’re going to use AI in development, you need tooling that can handle the volume while maintaining human oversight.

The Fork Is the Feature

What makes the anti-AI movement uniquely powerful in software is that resistance isn’t limited to refusing to use something. In open source, you can fork it. You can take the code, remove the AI, and run your own version.

That’s the ultimate architectural escape hatch, and it’s why the Linux kernel debate matters beyond Linux. Torvalds’ “fork it” isn’t a dismissal, it’s a reminder of what makes open source resilient. When the platform enshittifies, the community can enshittify-proof its own fork.

The anti-AI movement isn’t anti-technology. It’s pro-choice. It’s about ensuring that the people who use software have the final say over what that software does. Whether you’re disabling Gemini on your Android phone or forking a kernel, the principle is the same: the critique of Palantir’s stance on open-source AI while ignoring contributions applies broadly, control matters more than promises.

The AI industry spent the last few years asking “how do we integrate AI into everything?” The anti-AI movement is asking the harder question: “how do we un-integrate it when it’s not wanted?” That question deserves architectural answers, not just settings-menu workarounds.

Put on your own oxygen mask first. Then decide whether you want to share the cabin with AI.

Share:

Related Articles