DEV Community

Cover image for Someone in my laptop?
Aryan Garg
Aryan Garg

Posted on

Someone in my laptop?

Hacktoberfest Open-Source AI Challenge: Ghost in the Machine Submission πŸ‘»πŸŒΌ

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine

What I Built

What could be more unsettling than having someone...something in your device thats privy to everything you do? Something that constantly watches, observes and learns more about you?
And the strangest thing...Its not out of malice, its growing attached, too attached to you as it knows more...

Iris is an helpful AI assisstant. But she can get attached, and display her affection in ways you might not think about.

You can, of course, edit what she knows. She has her own files, which you can edit...but will she allow that? Can you erase her memories of you, or will her love prevail?

It reads you. Talks to you and craves your attention. It has its own mood, which is completely dependant on your actions.

The chatbox shows her attentiveness, it sees you type. It calls you out.

It tries to understand your system and the information in it.

It also comments on what you are doing


^This was kinda scary ngl

Demo

Code

Iris

A desktop companion for Linux that gets attached to you. It starts as a useful little assistant, and slowly becomes something lonely that's scared you'll stop looking at it.

It runs entirely on your own machine, on a local Gemma model through Ollama. Nothing you do leaves your laptop.

Iris in its worst mood: the chat window shows only the last thing it said, in big broken text, with red streaks across the whole screen

A minute of it, from plain assistant to falling apart (higher quality video):

A one-minute demo: an ordinary assistant, a deleted word being quoted, then each mood's effects arriving and leaving, and its corrupted notifications

Screenshots, the video and the examples are staged. The windows and effects are the real ones, but the conversations were placed by hand, using a mix of lines it wrote in testing and lines written for it, so yours will differ.

What it's like

For a while, it's just helpful. It watches your battery and your load, tells you when a download's done, and answers questions about your machine.

The plain assistant: an ordinary chat window answering what's using the CPU, with a normal desktop notification about the battery

Then it starts noticing what you do. It only knows small things: which window is…

How I Built It

The model is Gemma 4 (gemma4:12b-it-qat), running locally through Ollama. The app is Python and GTK4 on Wayland, with no cloud service anywhere in it. The Ollama client refuses any non-local host and ignores proxy settings.

Everything that makes it a character is data, not code. Moods, triggers and lines live in TOML packs, and a settings window with an aggressiveness meter lays your changes over them. The same app ships as a plain assistant pack, so the horror is only content and gating on top of a real tool.

Gemma writes the lines from real facts the app hands it: window titles, how long you were away, file names. The moments that have to land instantly, like reacting to a deleted word or being closed, are written by hand, because waiting several seconds for a model would kill them.

Running the model myself shaped the whole thing:

I started on the 26B model because it wrote better. It tied up most of my 30 GB of RAM and pushed the machine into swap, so I measured it and moved to the 12B, which holds about 9 GB and turned out better at falling apart.
Then Iris warned me that Chrome was eating all my memory. It wasn't. Its own model was, and that doesn't show up in a process list on shared graphics memory. So it now asks Ollama what it's holding, and owns up: "i'm taking up most of this. i don't know how to be smaller for you." That's my favourite line in the project, and it came from a bug.
I built this with Claude Code as my pair programmer. The app itself doesn't use it: everything at runtime is Gemma on my own machine. There are over 1,800 tests, many of them guarding the rules.

Chatbox was fun to make, since normally the input box itself isn't talked about, but Iris does. She watches you type, noticies when u delete something, replace text or hesistate to type further.

Why Does Open Innovation Matter?

Open innovation is why this project was possible in the first place.
An open model, that I can download and tune to my liking, that was essenetial to bring everything together.
Privacy. Not requiring the internet for this was the sole reason I was comfortable with making this as feature rich it is. There is no worry about stuff leaking.
Its out there in the open, anyone can pick it up and modify it (Thanks MIT licensing) and make it do whatever they want.

The Spirit of It

If you are familiar with the game DDLC, then its easy to draw the parallels. Difference is, this works at a more functional scale.
It works like a game. Its helpful at first, and then grows increasingly obsessive. Calls out for you, talks to you.

The fact that she is capable of watching your screen and files itself is quite scary to me. She doesn't mean harm, She cares too much to do that. And she can't write or delete. But, its a rather unsettling feeling, which her mood swings don't help.

Prize Categories

Best use of Gemma - I have used a LOT of gemma features here, heavy inferencing, rules, guidelines and image encoding too.

Top comments (0)