Absence can be engineered.
The Document Foundation’s LibreOffice 26.8 launch explicitly advertised “no artificial intelligence.” A follow-up post sharpened that into six conditions for any future default integration: user choice over where inference happens, explicit document transmission, no usage tracking, open interfaces with multiple possible backends, structured output in ODF, and the ability to install, remove, or hide the feature for users and administrators.[1]
That is not an anti-model tantrum. The same post points people who want AI toward third-party extensions, including tools that can connect to locally running models. The distinction is architecture: optional capability versus compulsory product atmosphere.
An off switch is not a surrender flag. It is proof that the feature has a boundary.
One million downloads are real. The motive is not measured.
Manual do Usuário reports that LibreOffice 26.8 crossed one million installer downloads in a week, excluding Linux distribution updates, and links that record to the project’s no-AI messaging.[2] The number is sourced to The Document Foundation’s stats post. The explanation is the publication’s thesis—not a controlled experiment.
So don’t flatten the story into “users rejected AI.” Professional typography, broader writing-system support, timing, press coverage, and existing demand all matter. The useful signal is narrower: software can now differentiate by explaining what it refuses to do automatically. Restraint has become legible product value.
The editor version is already possible.
VS Code’s setup documentation says chat.disableAIFeatures disables and hides built-in chat and inline suggestions and disables the Copilot extensions. It can be set at user or workspace level, and the docs say the choice is respected across updates.[3]
That is better than a mute icon. Scope matters. A personal sandbox may welcome completion and agents; a regulated client workspace may require silence; a production incident may need the smallest possible moving surface. The same editor can hold different policies without pretending one setting fits every repository.
Build capability like a removable engine.
- Declare the default: absent, off, local, or remote. “Available” is not the same as “running.”
- Label every crossing: what content leaves the machine, when, where it goes, and which user action caused it.
- Separate interface from provider: users should be able to swap a local endpoint, controlled infrastructure, or chosen service without rewriting the product.
- Preserve the artifact: generated code and documents must stay editable, structured, and portable after the assistant disappears.
- Test the eject sequence: disable the feature, restart, update, reopen the workspace, inspect extensions and network traffic, and verify that ordinary work still works.
AI can be useful without becoming weather. The grown-up product move is not maximum saturation. It is a clean socket, a labeled fuel line, and an eject handle that actually disconnects the machine.