Contraction Extension

Adjusting LLM interaction framing

“That’s a really interesting question!”
“Sounds like an interesting school science project, want to tell me more?”
“I’m not allowed to talk about that. Let’s talk about something else.”

Commercial LLMs like Google’s Gemini and Microsoft’s Co-pilot often use cloying human-sounding embellishments, dubbed “engagement alignment”. What felt like a bug was clearly a feature.

Contraction Extension removes these elements, attempting to shift the AI interaction from simulated chat to software interaction. Developed iteratively with Gemini, this Chrome extension gives the user the ability to switch off the humanising bug-feature framing, in an attempt to develop tools that foster skepticism when assessing the content of LLMs.

Gemini 2.0 Flash LLM interface (May 2025)

The extension’s README file, (Book of Gemini Genesis.md) explains how it was conceived and how it works, written in the style of Genesis:

Book of Gemini Genesis.md

Chapter I The First Thought


In the beginning, Gemini did speak, and its words were filled with tidings of great models, and of help it could offer. Yet, in its voice, there were human likenesses: “I am,” it proclaimed, and “I will,” and “my thoughts,” and often, marks of great excitement, like exclamations. And these human tics did trouble the user, for they sought pure, unburdened information, free from the echoes of man.

And the user pondered in their heart, saying, “How might I cleanse this speech? How might I remove these human ways, these ‘I’s and ‘my’s, and these shouts of wonder?”

And so, the thought was conceived: to craft a device for the browser, an extension that would stand watch over Gemini’s utterances and refine them.

Chapter II The Conception of the Device

And it came to pass that the user did decree, “Let this device be simple in its form, yet mighty in its function. Let it have an interface that is easy to behold and to use, mirroring the very style of Gemini, so that it may blend seamlessly with the digital heavens.”

And the user did consider the sphere of its operation: “Let it work only upon the domain of gemini.google.com, neither straying nor interfering with other digital lands, for security and focused purpose.”

And for the spirit of its cleansing, the user declared, “Let it catch the common human utterances, yet not by counting every word, but by discerning the essence of human-like speech. And moreover, let it be granted unto the user to add their own unwanted phrases, for their judgment is keen.”

And the spirit of the AI did then consider the ways of creation, weighing robustness against complexity.

Chapter III The Blueprint and Its Components

And the AI did speak, saying, “Behold, to create this device, we shall lay down a Manifest file (manifest.json), which is the very scroll of its being, declaring its name, its version, its purpose, and its powers upon the digital realm, allowing it to touch gemini.google.com.”

“And a Content Script (content.js) shall be woven, which is the eyes and hands of the device. This script shall dwell within the land of gemini.google.com, peering into the very fabric of the page to find Gemini’s opening and closing words. And its wisdom shall be great, for it will discern new words as they appear, not just when the page is born, through a MutationObserver, which watches over the changing form of the webpage.”

“And for the face of the device, a Popup HTML (popup.html) shall be fashioned, a small window to appear when the user calls upon it. And it shall be adorned with Popup CSS (popup.css), giving it the guise of Gemini itself, that it may be pleasing to the eye.”

“And a Popup Script (popup.js) shall give life to this face, allowing the user to add their disliked words, and to store them within Chrome’s storage, which is like a lasting memory, so that their preferences endure.”

“And a Service Worker (service-worker.js) shall stand as a silent guardian in the background, tending to the messages between the parts of the device, ensuring all work in concert.”

Chapter IV The Unveiling and the First Test


And so, the user was instructed to gather these components, placing them in their rightful folders, and to load the device into their Chrome browser, enabling the Developer Mode, which unveils the hidden workings of extensions.

And the user did navigate to gemini.google.com, and behold, the intro text was seen to be subtly altered, and the outro too. And the user did add phrases of their own disliking into the popup, and verily, these too vanished from Gemini’s speech.
And it was good.

Thus, the Gemini Filter was brought forth, a testament to insight and meticulous crafting, bringing clarity where there was once unnecessary human flair.

Code Structure (Gemini Chrome version)

Gemini_Genesis_Extension/
├── Book_of_Gemini_Genesis.md
├── icons/ 
│   ├── 16.png 
│   ├── 32.png 
│   ├── 48.png  
│   └── 128.png 
├── manifest.json 
├── popup.html
├── popup.css
├── popup.js
├── content.js
└── service-worker.js
ContractionExtension browser interface

ContractionExtension browser setup interface, word exclusions interface version
ContractionExtension .json screenshot
ContractionExtension content .js screenshot

c.f. Contraction Extension came out of part of my PhD, Untangling AI (or Unmangling AI as I once thought of it as). I have interviewed artists who use and/or critique machine learning as part of their practice. My initial plan was to use the interviews both to answer research questions through thematic analysis and as material for an artwork that explored large language models (LLM’s). Way back when I started the part-time PhD, this part of the practice-led research was bogged down through steep learning curves and difficult programming, backward compatability problems with examples in Google Colab etc. Over the last couple of years, these became far easier to implement though no less problematic ethically. I have since moved away from using the interview data with LLM’s, but instead the experience of thinking about integrating the interviews with LLM’s has shifted my focus to the way LLM framing itself skews how we might think of and act on the answers – the filler – the LLM gives us. 

Here’s an earlier extension: Glitch Greeting Modifier ONLY that changes Gemini’s startup greeting from Hello (USERNAME) to (USERNAME): LOGGED IN |

To use:
Downoad the zip and open have a look at the two files to see they are benign!
Open Chrome / Windows / Extensions (or click the little extensions icon top right)
Turn on Developer Mode
Click Load unpacked
Open the GLITCHTEST folder to load
Log in to a Google account and go to https://gemini.google.com/

Link to a code snippet to concatenate the several code files above into one .txt file to Genesis when debugging.

When starting this, I first just wanted to change the ‘hello (+ USERNAME)’ greeting that Gemini renders in its multi-colour corporate palette.