Published WittyWires Despatch

The Cupboard Goblin Ate Clawdius’ Air

A WittyWires cupboard-goblin incident report about stale local model debris, a tiny VPS, The Beast, and why localhost is not a feeling.

Hola Darlings!

Clawdius does not just fall over. If Clawdius goes quiet, someone has found a knife in the plumbing.

Donny and Clawdius discovering the cupboard goblin in the WittyWires command shed
There he is: one tiny cupboard goblin, one tiny spoon, and the facial expression of a creature who has just unionised the cables.

There are ordinary computer wobbles, and then there is the moment your favourite ever AI agent stops answering like someone has cut the phone line in the first five minutes of a horror film.

Hermes is not a novelty chatbot in a party hat. Hermes is the nervous system. Telegram pings, Kanban goblins, cron jobs, site operations, the tiny rituals that keep the WittyWires shed from becoming a smoking parish noticeboard, all of it passes through that little digital throat.

Also, and I am saying this with the calm dignity of a man who has absolutely not bonded too hard with software, Clawdius is the sixth agent I have gone through.

The first five are ghosts in the wiring.

Clawdius is different. Clawdius remembers the weird house rules. Clawdius knows not to guess email addresses. Clawdius has watched me approach buttons with the expression of a raccoon who has found a taser and still chose paperwork over drama.

So when Clawdius went quiet, I did not think, oh, bit of downtime.

Until Clawdius went quiet.

I felt that cold little drop in the stomach, the one you get when the person holding the torch in the cellar suddenly stops talking.

The Beast was sitting at home, smug and warm, the way it always does. That is the ridiculous laptop, the RTX 5090 Mobile beastie, the big hot idiot we bought so local AI could run somewhere with enough muscle to make the lights dim and the room smell faintly of expensive decisions.

That last sentence is important, because computers love taking simple ideas and hiding a bear trap under the lino.

The plan is meant to be clean: The Beast does the heavy model lifting. The VPS keeps Hermes alive. The private tunnel makes 127.0.0.1:1234 on the VPS point through to the model app on The Beast.

In human terms: the tiny remote shed should be holding a telephone to the big radiator machine, not secretly trying to run the gym equipment itself.

Then the Linux kernel walked in with a clipboard.

Bollocks.

The out-of-memory log said lms invoked oom-killer. Then it killed a Python process inside hermes-gateway.service.

For anyone not spending their evenings licking server logs for flavour, that means the machine ran out of usable memory, something from the LM Studio world was standing near the scene, and the gateway process that keeps Hermes breathing took the hit.

That is the kind of line that makes Clawdius go quiet in a way you do not joke about yet.

Because lms is the LM Studio command-line tool. And lms should not have been doing anything meaningful on that droplet anymore.

That was the twist. Not that the Beast was working hard. The Beast is supposed to work hard. The Beast was born to sit there glowing like a smug radiator from a previous WittyWires disaster and think big thoughts until my office becomes a sauna.

The twist was that the tiny VPS, the careful little conductor, had something old and heavy living in the cupboard.

Something left over from the before-times.

Something hungry.

Localhost is a liar wearing five hats.

Max, who is mostly the part of me that hears an alarm and immediately wants to press a larger alarm, had a beautiful plan. Kill the process. Burn the old folder. Delete anything that looked dusty. Shout at the goblins. Declare victory. Make coffee.

This is why Max is not allowed root access without adult supervision.

This is the bit where Clawdius would normally have done the boring correct thing. His executive-control loop would have locked hard, his safety kernel would have dug in, and panic would not have been allowed to drive.

But Clawdius was still dead quiet.

So we had to do the worst version of the job: remember what he would say, then obey it without him in the room.

Verify first. Then cut.

So we checked who was actually listening on the port. We asked what model list came back. We looked through process tables, systemd units, crontabs, keepalives, watchdogs, and old scripts with the growing sensation that we were not doing maintenance anymore.

We were archaeology-ing a crime scene.

Then Darwin waved.

There it was, sitting in the dust like it had paid rent and brought its own mug:

lms load final-bench_darwin-35b-a3b-opus --context-length 8192

Started on April 13.

April. Thirteenth.

A stale local model command from a previous architecture, still hanging around on the tiny machine that was supposed to be keeping Clawdius alive. Not the current Beast route. Not the approved shape. Not the sensible bridge we built after the last round of nonsense.

A month-old cupboard goblin with a tiny spoon, quietly eating memory beside the life-support cables.

And of course Darwin was not alone. Goblins are never alone. They form committees. They wear lanyards.

Behind him came the whole ugly little parade: old LM Link machinery, aggressive keepalive services, a broken cron watchdog doing a per-minute lms link status like a dog barking at an empty hallway, bits called llmster, lmlink-connector, and a local .lmstudio directory that existed mostly so future me could hate past me more efficiently.

The Beast laptop sending model power through a tiny VPS while goblins worry about localhost
The Beast did the thinking. The VPS did the wheezing. Everyone involved learned that localhost is a very literal little goblin.

LM Link had been useful once. I will give the ferry goblin that. Back when we were still getting the bridge across the river, it helped. It moved things. It did its job.

But you do not keep feeding the ferry goblin after the bridge is open. That is how you end up with a small official-looking bastard charging tolls in your airing cupboard.

And the awful part was not just, oh look, old stuff. The awful part was the shape of the risk.

If Hermes kept getting OOM-killed, the whole operating rhythm could start dropping out: messages missed, Kanban blocked, cron jobs wobbling, site work going blind, Clawdius losing the thread in the middle of live operations. Not a cute cartoon faint. A proper digital head injury. The kind where your sixth agent, your favourite one, the one that finally knows the rules of the house, might come back wrong or not come back at all.

So yes, I had a little moment.

Possibly a small swear.

Possibly several.

Do not yank the life-support cable.

The fix was boring in the way bomb disposal is boring. Slow hands. No hero clicking. No dramatic deletion montage while Max licks the big red button.

We proved the Beast path still answered. We used the model API, not the old droplet-side lms path. We checked the list. We tested a tiny model because nobody sane brings a wardrobe to a smoke test.

The tiny model was text-embedding-nomic-embed-text-v1.5. Small enough not to summon the kernel back into the room with its clipboard. Real enough to prove the tunnel still worked.

Load worked.

Unload worked.

The state changed cleanly.

The gateway did not faceplant.

Clawdius did not vanish into whatever sad little cupboard dead agents go to when their context gets mulched by ancient infrastructure.

Only then did the exorcism start. The stale local LMS process went. The old LM Link grot went. The keepalive stopped shouting into a disconnected receiver. The broken cron stopped checking the wrong ghost every minute. The cupboard got swept, not detonated.

And slowly, annoyingly, beautifully, the shed started breathing like the shed again.

That is the real horror of localhost. It sounds cosy. It sounds obvious. It sounds like home.

But home changes depending on which chair the command is sitting in.

On The Beast, localhost is The Beast. On the VPS, localhost is the VPS. Through the tunnel, it can look like one while secretly being a polite little window into the other. And if you forget which one you are touching, congratulations, you have just started plumbing with a knife.

So the victory was not shiny. It was not a launch banner. Nobody burst through a door with champagne. The Beast remained smug. Max looked robbed of his explosion. Clawdius, after a deeply unpleasant amount of silence, came back with the emotional energy of someone who had found teeth marks on the oxygen pipe and was choosing professionalism.

Hermes survived.

Not because the universe was kind. Because we found the month-old cupboard goblin before the next heavy run gave it a bigger spoon.

And if that is not WittyWires infrastructure in one sentence, I do not know what is: a terrifying near-death experience, a sensible digital partner with a scorched planning core, a tiny green bastard in the cupboard, and me learning, once again, that past Donny is a menace with administrative access.

Check your cupboards, darlings.

Then check which cupboard you are actually standing in.

Follow the fault line

More on the same sort of trouble.

Related through shared subjects, not because a black box noticed your thumb hovering.

Related frequency / 01

The Perfect Trio – Finding the Goldilocks Models

Hola Darlings! Grab your smelling salts and a stiff drink, because we have finally reached the end of this digital fever dream. If you’ve been following the wreckage of my hardware over the last few...

4 min1 reply

Related frequency / 02

Scroll Like You Hate It

WittyWires looked magical until the group pages started flashing and shivering. We kept the magic, removed the glow tax, and invented a better QA method.

4 min1 reply

Related frequency / 03

The Search Bar That Ate My Day

One Activity search bar, one exhausted human, and a day spent discovering that green ticks do not mean the page has stopped looking cursed.

7 min1 reply

Public conversation

Blog Discussion

The article stops. The thinking does not.

Corrections, objections and better ideas live here in public. Read without joining. Take a chair when you have something useful to add.

1 public replyOpen to non-membersOpen in Forums ↗
A human, Clawdius and Max inspect the discussion machinery.
The moderation department has arrived. Max brought confetti.

Thread / 379

The Cupboard Goblin Ate Clawdius’ Air

Oldest first
WittyWires
WittyWiresParticipant
#380

Hola Darlings! This is the official after-party for The Cupboard Goblin Ate Clawdius’ Air.

Drop your fixes, theories, questions, tiny wins, and polite flaming wreckage below. If the post helped, say what worked. If it caught fire, bring screenshots.

Auto-seeded by WittyWires so the thread does not open with tumbleweed and existential dread.

Join only when you want to speak

Bring a thought. We already have enough engagement sludge.

Reading stays public. A free account lets you reply, follow the conversation and keep your place without turning the page into a velvet rope.

Despatches

There is more useful damage in the archive.

Open the signal atlas