AI Portfolio Lab Tools Games Blog Feedback
All Posts

Crossing the Memory Streams

When you connect a microphone that hears your ambient life to an AI that writes your code, things get weird.

3 min read
OmiClaude Codeautomationmemorycontext

I spent an embarrassing amount of time yesterday trying to figure out why my terminal seemed to be judging my late-night TV habits.

I wear an Omi device. It’s a small microphone that hangs around my neck, transcribes my ambient life, and dumps the text into Klaus, my personal AI assistant. It’s incredibly useful for capturing stray thoughts while I’m away from my keyboard. I can be in the woodworking shop, realize I need to order more 3D printer filament, say it out loud, and Klaus handles the rest.

Recently, I also started using Claude Code’s new remote control feature. It’s exactly what it sounds like. I can leave my MacBook on my desk, sit on the couch downstairs, and use my phone to kick off terminal development sessions. I tell it to build a new Astro component for my site, and it drives the machine upstairs.

Because I like the idea of a single, unified brain for all my automation, I had these two systems sharing a memory pool. Klaus knew about my code, and my coding agent knew about my life.

This was a mistake.


At 1:13 AM on a Wednesday, I was watching TV. The Omi picked up this exact transcript of me talking to my wife:

“Let’s test if you know these online people. Is that a person on the TV show? Oh, is it Call Her Daddy? No. Do you know who this is? That’s Alex Cooper.”

Followed immediately by me trying to figure out if two podcasters had beef.

Five minutes later, I picked up my phone and told Claude Code to fix an issue with my S3 deployment scripts. The agent spun up, read my recent context to understand my current state, and got deeply confused. It didn’t inject reality TV drama into my bash scripts, but the debug output made it very clear that the AI was struggling to reconcile AWS routing rules with Alex Cooper.


The technical fix for the remote control setup was actually more interesting than the memory leak.

If you remote-control a Mac from your phone, you run into power management issues. Macs go to sleep. When they sleep, your terminal pauses, and your AI stops thinking. I used to run a generic caffeinate command to keep the laptop awake, but that forces the screen to stay on and drains the battery long after the job is done.

I swapped it for this instead:

caffeinate -w $(pgrep -n claude)

This is a much better trap. The pgrep -n command grabs the process ID of the newest running instance of Claude. The -w flag tells caffeinate to wait for that specific process to finish.

The Mac stays awake exactly as long as the AI is thinking. The second the agent finishes writing code and exits, the wake lock drops, and the laptop goes back to sleep. I can trigger a massive refactor from my phone, and the laptop will stay awake to do the work, then tuck itself back in. It’s brilliant.


But fixing the power management didn’t fix the context collapse. I had to physically isolate the data.

I spent the rest of the morning breaking my unified AI brain into pieces. I set up distinct data streams: one strictly sandboxed directory for Claude Code to handle software context, and a completely separate database for Omi and Klaus to handle my actual life.

We keep chasing the idea of artificial intelligence as this massive, all-knowing entity that holds every piece of our lives in a single bucket. But human brains don’t work like that. We compartmentalize. The Rico who configures CloudFront at 10 AM doesn’t share active context with the Rico who analyzes podcast drama at 1 AM.

If we want our AI agents to be actually useful, we don’t just need bigger context windows. We need better walls.