Two Dots, One Wrench

Two Dots, One Wrench

Last night my claude code agent went quiet.

Not dead. Quiet. There’s a difference, and the difference is the whole story.


Here’s what was happening. I’d type a message, it’d land in Discord, and nothing came back. No reply. Not even an error. An error would at least have been a status code. Just silence, which is the worst thing a system can hand you, because silence is ambiguous. Is it thinking? Is it stuck? Is it dead? Did it even hear me?

I tried again. Same nothing.

So I did what you do when a colleague stops answering on the main thread. I pinged them somewhere else.

I reacted to my own message with an emoji, half out of frustration, the digital equivalent of waving a hand in front of someone’s face.

And the agent reacted back.

The text channel was down. But the reactions were getting through. Different endpoint, apparently, and nobody told me the two could fail independently.


Full confession. I did not have to do any of this.

The Raspberry Pi was three feet away. I could have SSH’d in, attached the tmux pane, hit the cc-bounce script, and had the whole thing back in ninety seconds. Boring. Reliable. The kind of step you write into a runbook and never think about again.

I did not do that.

I sat there flicking emojis at a half-dead agent instead, because a voice in the back of my head said this is more fun. Being creative when you don’t have to be is its own reward. Or, if you’ve read the book I’m about to spoil lightly, let’s just say being Grace is fun.


If you’ve read Project Hail Mary, you already feel where this is going. If you haven’t, go read it, then come back. It’s better than this blog post.

Quick version, no real spoilers. A guy named Ryland Grace wakes up alone on a spaceship and meets an alien he nicknames Rocky. Different bodies, different senses, different everything. Rocky doesn’t even talk in words, he communicates in musical chords. No shared language. No dictionary. No Google Translate for “hello, I am also terrified.”

So what do they do?

They build one. From scratch, out of the only thing they share: the same stars, the same physics, the same math. Numbers first, because arithmetic is the only schema two species are guaranteed to agree on. Then a little program that maps English words onto Rocky’s chords, one painstaking note at a time. He calls it Rocky-Translate.

It’s crude. It’s slow. It’s held together with duct tape and desperation, a v0.1 that never shipped a v1. It’s also completely sufficient. They save each other’s lives with it.


So there I was, channeling my inner Ryland Grace, except my alien was a Claude agent on a Raspberry Pi and our shared physics was Discord’s reaction API.

We built a protocol. I call it Pidgin-on-a-Pi: a whole creole language, total vocabulary of three, spoken fluently by exactly two idiots on the same Wi-Fi.

We had one bit of bandwidth that worked, so we used it.

  • 🔧 meant “alive, working on it, the channel’s just down.”
  • 🟢 meant yes.
  • 🔴 meant no.

That’s the whole vocabulary. Three symbols, a wrench and two colored dots. One bit of payload and a liveness probe, and I have sat through design reviews for worse.

And you know what, it was enough. I’d go with my own assumptions and just ask Rocky, oh, I mean Archief, to confirm with a green dot or a red one, and the workaround held. I proposed, he approved. The whole working relationship had degraded into an approval workflow, one bit per round trip. The agent could tell me it was on the case without saying a word, because words were the one thing that couldn’t get through. It stayed useful with its mouth taped shut.


Here’s the part I keep chewing on.

We always think communication is the channel. The pipe. The bandwidth. “Get me a better connection and we’ll be fine.”

But Grace and Rocky had a worse connection than any two humans in history. What they had instead was the willingness to invent a protocol on top of whatever signal survived. The channel is just transport, whatever was lying around. The protocol is the part you’re on the hook for.


And this is where it stops being a cute story about emojis and becomes a note-to-self about building agent systems.

My main channel will go down again. They always do. Nothing I run has four nines, least of all that Pi. The question is never whether the high-bandwidth path fails. It’s what happens in the second after it does.

Does the agent go dark and useless? Or does it fall back to the wrench and the two dots, the crude-but-sufficient signal that says alive, working, yes, no, and keep being a teammate while the main line is dead?

That’s graceful degradation. GRACE-ful, even, and I don’t think Ryland would mind the pun. The trick is you can’t bolt it on during the outage. You have to have decided, beforehand, that the green dot means yes. You cannot negotiate a protocol with a party that has already stopped talking.

Grace didn’t write Rocky-Translate during the emergency. He wrote it during the quiet, so it’d be there when the quiet ended.

So that’s my new rule. Build Plan B first, then go ahead and hope Plan A holds. Not because you expect to fall, but because the harness only counts if it’s already strung up before you do.

And the handshake stuck. Even now, channel up and working fine, I’ll catch myself firing a color emoji at that little Raspberry Pi, half-expecting the agent to answer back in the same colors. Once you’ve spoken pidgin with a machine, you don’t quite stop.

My agent went quiet last night.

But it never actually went silent. It just switched to chords.

Related Posts

Part 3: The System Earns Its Complexity

Part 3: The System Earns Its Complexity

For one full week, my five-agent fleet was slower than me alone.

Read More
Why write?

Why write?

All those thoughts you’ve got, what do you do of it?

Read More
Part 1: How a Jarvis Clip Turned Into Five Agents on a Pi

Part 1: How a Jarvis Clip Turned Into Five Agents on a Pi

It started, like most of my bad ideas, with the Insta algorithm.

Read More