Tag Archives: retro computing

I Built Two AI Personalities That Sit on My Desk and Talk to Each Other

I’ve been experimenting with local AI for quite a while now, but this particular project has started to become something rather different.

I now have two AI personalities, called George and Lewis, running on two separate computers in my office.

They read the news.

They talk to each other about it.

They remember what they’ve discussed before.

They have different interests and personalities.

They can wander off topic.

And, as the day wears on, they actually start getting tired.

This may have got slightly out of hand.

Two Minds, One Desk

The idea started simply enough.

I already had Ollama running local large language models on a couple of machines on my network. Rather than asking one AI a question and getting an answer back, I wondered what would happen if I let two of them talk to each other.

So I wrote a Python program that acts as the producer sitting between them.

One machine runs George. The other runs Lewis.

George says something, the program sends that to Lewis, Lewis generates a reply, and the reply is passed back to George.

Neither conversation is written in advance.

I know what news story they are going to start with, but I don’t know what either of them is going to say.

That is where things started becoming interesting.

Meet George and Lewis

I deliberately didn’t want two identical AI assistants politely agreeing with each other.

George is British, dry, curious and slightly sceptical. He has a tendency to notice the absurd implications of technology and is particularly fond of things such as classic cars, retro computing, gadgets and space.
George is British, dry, curious and slightly sceptical. He has a tendency to notice the absurd implications of technology and is particularly fond of things such as classic cars, retro computing, gadgets and space.

George is British, dry, curious and slightly sceptical. He has a tendency to notice the absurd implications of technology and is particularly fond of things such as classic cars, retro computing, gadgets and space.

Lewis is a little more mischievous. He tends to challenge George's conclusions and has stronger interests in AI, cybersecurity, science, networking and newer technology.
Lewis is a little more mischievous. He tends to challenge George’s conclusions and has stronger interests in AI, cybersecurity, science, networking and newer technology.

Lewis is a little more mischievous. He tends to challenge George’s conclusions and has stronger interests in AI, cybersecurity, science, networking and newer technology.

They aren’t supposed to argue simply for the sake of it, but neither are they encouraged to agree just to be polite.

That distinction makes an enormous difference.

A conversation can start with an announcement about a new electric car and end up somewhere around boxed computer software, Commodore machines and the questionable wisdom of connecting a toaster to Wi-Fi.

In other words, rather like an actual conversation.

There’s a Newsreader Too

Before George and Lewis start discussing anything, the software collects stories from RSS news feeds.

The curator or newsreader who selects the stories that Lewis and George discuss, her name is Kokoro
The curator or newsreader who selects the stories that Lewis and George discuss, her name is Kokoro

A selected headline and its summary are displayed on screen and then read aloud using Kokoro, a local text-to-speech system.

I’ve given the newsreader a British female voice, while George and Lewis have their own separate British male voices.

So the sequence sounds a little like an extremely small and slightly eccentric radio station.

The newsreader introduces the story, pauses, and then George reacts to it.

Lewis responds.

And off they go.

They Know What I’m Interested In

Rather than simply choosing every story at random, the software now has an interest profile.

It knows I’m particularly interested in subjects including:

AI and local language models, gadgets, computers, retro computing, classic cars, web development, drones, home networking, cybersecurity, broadcasting, space, photography, video, graphic novels, comics, Blender and 3D graphics, music technology, gaming and science.

Stories are scored according to how closely they match those subjects.

That doesn’t mean the system completely ignores everything else. I’ve deliberately left some randomness in there, because otherwise it would rapidly become an automated echo chamber.

Sometimes it should find something none of us expected to be interesting.

George and Lewis also have their own individual preferences, so occasionally one of them effectively gets a story that is much more “his sort of thing” than the other’s.

Then I Gave Them a Memory

This was probably the point where it stopped feeling like a normal chatbot experiment.

The system now uses an SQLite database to remember what has happened.

It stores the news stories they’ve discussed, previous conversations, individual things George and Lewis have said, and condensed memories of earlier discussions.

This serves several purposes.

Firstly, it prevents them repeatedly discussing the same news story just because it appears in a feed again with slightly different wording.

Secondly, when a genuinely new development appears in a story they’ve previously discussed, they can remember the earlier conversation.

So instead of starting again from scratch, George might effectively say:

“We said this was going to happen.”

And Lewis might point out that George actually said something rather less definite at the time.

That’s when they start becoming recurring characters rather than disposable chatbot sessions.

Conversations Can Drift

Humans rarely stay perfectly on subject.

We might start talking about a new iPhone and somehow arrive at cassette recorders ten minutes later.

George and Lewis can now do the same thing.

Early in a conversation they stay reasonably close to the news story. As things progress, related subjects and older memories can begin appearing in their context.

Crucially, they’re not instructed to suddenly announce:

“According to our previous conversation…”

Instead, an old memory is simply made available as something they might naturally be reminded of.

Sometimes they use it.

Sometimes they don’t.

That makes callbacks much less mechanical.

They Also Know When They’ve Run Out of Things to Say

An earlier version simply ran for a fixed number of exchanges.

That worked, but it didn’t sound natural.

Eventually you get:

“That’s a good point.”

“Indeed.”

“Absolutely.”

Which is conversational purgatory.

The new system lets them decide whether there is genuinely anything new worth adding.

After a minimum amount of conversation, the next speaker can privately decide to continue or stop.

The Python program also checks new responses against previous remarks and can reject something that is effectively just a repetition.

So some conversations last a while.

Others end after only a handful of comments.

And Then I Made Them Tired

This is probably my favourite unnecessary feature.

The system periodically checks the actual UK time and alters George and Lewis’s behaviour throughout the day. It uses the Europe/London timezone and can fall back to the computer’s clock if the online time check is unavailable.

During the day they’re fully awake.

As evening arrives, they gradually become less enthusiastic about pursuing every conversational tangent.

By around 11pm they’re noticeably tired and much more willing to call an end to a discussion.

After midnight, there’s a very good chance they simply won’t want to start another conversation at all.

They may yawn, decide they’ve had enough or effectively go to bed.

At six in the morning they’re bleary-eyed and coffee becomes a perfectly reasonable thought.

By seven, they’re waking up again.

The important distinction is that this isn’t just the AI being told to say that it’s tired.

The software itself alters maximum conversation lengths, pauses and the probability of conversations ending according to the time of day.

The project relies on vast amounts of data
The project relies on vast amounts of data

Everything Is Running Locally

One aspect I particularly like is that George and Lewis aren’t remote characters sitting somewhere in a cloud service.

The language models are running locally on my own computers using Ollama.

The voices are generated locally with Kokoro.

The memory is stored locally in SQLite.

The Python application connects all of those pieces together.

That makes it a rather good example of what can now be built from consumer hardware and freely available AI tools.

Where This Is Going

There are plenty of possibilities.

I could broaden the news sources into motoring, space, drones, cybersecurity, classic computing and gaming.

They could become aware of local weather.

They could notice when one of my servers goes offline.

They could comment on things happening on the network.

Their opinions could gradually evolve.

They could develop running jokes.

They could even start remembering predictions they’ve made and later discover which one of them was right.

What began as “can I make two Ollama instances talk to each other?” is slowly turning into something closer to two persistent artificial characters occupying a corner of the office.

©2026 Matt Porter. A screenprint of one of the many conversations,
©2026 Matt Porter. A screenprint of one of the many conversations,

They’re not conscious.

They’re not alive.

They’re two language models, a Python program, a text-to-speech engine and an SQLite database.

But when one of them remembers something the other said yesterday, challenges him about it, wanders completely off topic and then decides it’s too late at night to continue arguing about smart kettles…

It can feel surprisingly convincing.

And I suspect George and Lewis are only just getting started.

Just like us, George and Lewis get tired and need a bit of down time.
Just like us, George and Lewis get tired and need a bit of down time.

How I Wrote an Retro 80s-Inspired Adventure Game About The KLF

If you grew up in the 1980s, you’ll remember that unmistakable feeling of loading a game on your ZX Spectrum, Commodore 64, or BBC Micro. The hypnotic screech of the cassette loading, the colour bars flickering on screen, and that eternal moment of suspense — would it load this time, or had the tape stretched just enough to doom you to a R Tape Loading Error?

Loading the KLF Adventure
Loading the KLF Adventure

Fast forward to the 2020s and, somewhere between my love of retro computing, The KLF’s music, and an itch to make something creative, I decided: I’m going to write a text adventure game. Not just any text adventure, but one dripping with late-night 80s energy, pop culture references, and a healthy dose of KLF mythology.

The KLF Adventure Begins
The KLF Adventure Begins

It started innocently enough — I wanted to relive the magic of the Scott Adams-style adventures I played as a kid. Those games weren’t about graphics; they were about imagination. Every location, every object, every strange instruction was something you had to picture in your head. And if you were a bit obsessive (guilty), you’d spend hours mapping every room on graph paper.

Finding the Right Ingredients

The KLF have always been masters of mystery — their story threads through pop hits, art projects, strange performances, and burning a million pounds on a remote Scottish island. That mix of chaos, humour, and myth-making was perfect for a game world.

I started building a map: fictional places merged with real ones from KLF history. Bold Street in Liverpool. The Cavern Club in the 1960s. A boathouse with a roaring fire. And, naturally, Trancentral — the spiritual HQ of The KLF. I even included surreal locations like the “Little Fluffy Cloud Factory” and “Maze of Caves” for that dreamlike adventure feel.

Travel Back in Time to The Cavern Club in 1961
Travel Back in Time to The Cavern Club in 1961

The NPCs? Oh, they had to be special. Sigmund Freud gives cryptic instructions. Ivan Pavlov demands you “Lie Down” before telling you to “Keep Calm”. Even Denzil the Baker makes an appearance, along with other nods that KLF fans will appreciate.

Building It Like It’s 1984 — With a 2025 Twist

I didn’t just want to write about the 80s — I wanted it to feel like the 80s. So I coded the game in a modern environment but kept the old-school constraints: short descriptions, tight vocabulary, and a parser that understands commands like GO NORTH, GET TICKET, or SAY CHILLOUT.

Don't get stuck in the record industry execs meeting!!!
Don’t get stuck in the record industry execs meeting!!!

But here’s the twist — I didn’t do it alone. My coding partners were Gemini CLI and OpenAI Codex, coding with me directly in my command line. The imagery was created using ChatGPT, with animations by Midjourney. The music came courtesy of Suno, while the sound effects were crafted by ElevenLabs. Together, these AI tools became my team of coders, designers, composers, and consultants, enabling me to bring this game to life in a way that would have been impossible on my own.

And because I couldn’t resist going full retro, I’ve also been experimenting with encoding the game into audio so it can be loaded into a ZX Spectrum emulator straight from a physical cassette tape. Because why not?

Timeslips abound in Bold Street with alternate timelines showing Mick Hucknall driving the Ice Kream Van!
Timeslips abound in Bold Street with alternate timelines showing Mick Hucknall driving the Ice Kream Van!

The Result

What emerged is The KLF Adventure — part game, part interactive art piece, and part love letter to the days when imagination did the heavy lifting. It’s an 80s-inspired world you can explore, puzzle over, and get gloriously lost in. It rewards curiosity, nods knowingly to KLF lore, and might just make you say “What Time Is Love?” at least once.

For me, this wasn’t just a coding project. It was a way of reconnecting with that kid who sat cross-legged in front of a rubber-keyed Spectrum, waiting for the next adventure to begin. Only now, I’m the one writing the adventure — with a 21st-century team of AIs by my side.

You can even find me in the game... But where?
You can even find me in the game… But where?

If you fancy diving in, the game is live at klfgame.co.uk. Just remember: keep your wits about you, don’t trust every whisper, and above all… CHILLOUT. Twice.