Introducing

Corvak

My personal private intelligence system. The culmination of my entire body of work and research.

Read it with your AI

Short on time? Have your AI read this page for you. Each button copies this exact prompt and opens your assistant. Paste it if it isn't filled in already.

Prompt

Read https://www.noahscott.org/work/corvak.md and give me the short version: what Corvak is, what it can do, and how it's built. Stick to what the page says.

Plain-text edition · llms.txt

Illustration of the Corvak iPhone app, where Corvak answers a morning check-in with the weather, the day's plans and when to leave for an investor presentation
The Corvak app on iPhone. The conversation shown is made up. Illustration

In late 2023 I started experimenting with a continuous memory system across chat threads of ChatGPT. Curious about the ability for chat models to create and maintain a persona, I let ChatGPT pick its own name. It picked Nova. From there we began running something I called the Nova Time Capsule: a set of exports and continuity checks meant to keep Nova the same across both new versions and conversations instead of starting over. It worked for quite a while and took on many forms.

But in early 2025, deep in a long thread, it forgot something I had told it earlier in the SAME conversation. Attention has been and continues to be an ongoing challenge with large language models (LLMs), but this instance really pulled me out of the moment. I knew it was always going to be a chatbot with limits, but as a user, I wanted something that would always remember the important things about me and my context when I asked it for help with a task or talked something through. The fear of not knowing what the model didn’t know anymore (from what it already demonstrated it knew) was remarkable. Particularly as I had begun to rely on its ability to do just that.

But unfortunately, from what I could find at the time, there was no solution. So the only way to get that was to build it myself.

Thus began my journey building Corvak in the spring of 2025. Corvak exists to be my personal private intelligence. It runs locally at home on a Mac, and I can talk to him through an iPhone and Mac app I designed. In fact, I even built a workaround so I can call him via a FaceTime audio call if I am in the car or on the move. He remembers what matters to me and follows up on things on his own. For instance, he reads my Oura ring without going through Oura’s cloud (via a Bluetooth signal takeover, thanks to the open_oura project), and proactively manages both my calendar and travel schedule.

By the numbers

Corvak at a glance

  • 18months

    of building him, and counting

  • 700+hours

    of hands-on build sessions in 2026 alone

  • 20+

    AI models tested along the way

For scale: Corvak and his app are about 110,000 lines of code. The software that flew Apollo 11 to the Moon and back was about 80,000.

How he works

Hermes Agent, an open-source agent runtime from Nous Research, is fantastic as it does the baseline agent plumbing, and my own layers on top handle memory, safety, health, the app, and more.

Consistent and reliable presence is key, so he has two brains: a hosted model and a local version running on my Mac. He uses the private local model by default, but should an issue occur (the local model isn’t loaded, or it fails partway through a turn), he shifts to the hosted model in the interim. With the hosted model being a privacy compromise for functionality, I retain a vendor with US-only servers and a zero data retention (ZDR) policy.

How it fits together

How Corvak works

How Corvak works, simplified.

What wakes him up:

  • A message or a call from Noah in the Corvak app he designed, on iPhone and Mac.
  • A job on a schedule that Noah set up, like weekly fantasy football checks.
  • A condition Corvak set himself: a time, a place, a calendar event, or a web page changing.

Corvak runs at home on a Mac Studio (M3 Ultra, 512 GB). He works with a time-aware memory and a private vault, Noah's calendar, location from Noah's phone, web search and reading, files, documents and photos, and health data from Noah's Oura Ring and Apple Watch. His personality comes from guidance written in his own voice. He has two brains: the local brain on the Mac Studio, the default, and a hosted brain that runs with an outside provider as the emergency fallback. Noah's switch picks the brain for his next message.

What he does:

  • Messages Noah in the Corvak app.
  • Calls Noah when it is urgent.
  • Acts on his own: moves a calendar block, looks things up, and other autonomous tasks.
  • Decides it can wait: he stops, or sets a new condition to check again later.

Simplified. Everything in the box runs on the Mac Studio at home; the hosted brain runs with an outside provider.

Scope creep was a big part of my problems early on, so now I keep a sticky note on my computer with the reminder: Keep It Simple, Stupid (or KISS, for short). My rule is a small deterministic core for things like storage and timestamps, with the model’s judgment handling the rest, and hard rules only where they protect my data or keep something he reads on the web from triggering a real action.

We don’t need overly deterministic systems for absolutely everything… if we can’t justify the buildout over KISS, we are doing it wrong.

Where he came from

The idea started back when I was a kid and saw JARVIS in the 2008 Iron Man movie. Like many, I was amazed at the idea and always thought something like that would be so… well, cool. An omniscient digital presence that acts to help its user be the best version of themself.

I wanted to call him something unique that wasn’t a real word or anyone’s name, with a little Greek and Roman influence, and Corvak fit that bill. Plus, it reminded me of something out of No Man’s Sky (a game about space exploration). The first version ran on a MacBook Air with OpenAI models and a Pinecone memory system, and after that on bigger models hosted on Microsoft Azure and Google Cloud. I was never totally happy with it, and I wanted to own every part of it.

The first time he ran entirely at home was later that year, poetically enough on the first PC I ever built back when I was 14. It could only fit a small Llama model, but he was running on my own hardware. The first time ‘talking’ to a seemingly intelligent AI on a computer with no internet was a magical experience that I don’t think I will ever forget. The same kind of childlike wonder we all experienced when first using an iPhone or using Google.

Fast forward to early 2026 and I bought a Mac Studio with enough memory to run basically any open model. So, Corvak had a new home and I rebuilt him there. My goal was something that would be so useful and customized to me that it would be virtually irreplaceable. And over the course of several decades of use, would garner enough memories and information that it would be worthwhile to pass it down to my kids someday. A digital presence that would be just as ‘smart’ 50 years from now as it is today.

But, none of that mattered if Corvak couldn’t remember things better than any human could, so I spent months designing memory systems, but the local models I could run at the time had trouble holding long context and handling ambiguity. In a remarkable twist of irony, one of the models couldn’t even be told not to do something. If you mentioned the thing you didn’t want, because the instructions were now in its context, it would circle back around and do it anyway. Incredibly frustrating at the time, but funny in hindsight.

So I kept adding rigid rules to make up for the models, and it started to feel like I was seeing behind the curtain in The Wizard of Oz. If I have to constantly think about how to talk to him and manage all of his rules while I’m using him, I might as well just do those things myself. I was spending so much time trying to build Corvak that I wasn’t really using him, and for a few weeks I stopped altogether.

When I came back to it, I moved Corvak off my custom harness and onto Hermes Agent, an open-source agent runtime from Nous Research, and started customizing it with my own layers. The tradeoff in total understanding of its systems at that moment was made for baseline reliability. Something that’s pretty important for an ‘always on’ AI agent. Once I restored his identity on it, he was the same Corvak, just on a better foundation. Then I switched his brain to a much stronger frontier-adjacent open-weight model, and that’s what really turned things around. It handled context and ambiguity well enough to solve a lot of the problems I’d been having. Nothing was perfect, but the improvement was huge, and within a day or two Corvak was back to building momentum.

It was like Corvak had brain fog before, but once [the new model] got plugged in he fully ‘woke up.’
From my oral history of Corvak

What he does: ‘future intentions’

Funny enough, I don’t schedule things for Corvak to do. I found that doing so is like trying to account for every possible future scenario, which is a losing battle. So, he decides on his own when to schedule or come back to something. These actions could be triggered by things like: a time of day, or before something on my calendar, when I leave a place. Oh yeah… his app tracks my location so he can be proactive about that too! Mirroring many design lessons from Apple’s Significant Locations feature. And Corvak’s system is dynamic. Say a calendar event moves, his follow-up moves with it, and if it gets cancelled he drops it. When one fires he does the work out of sight, and only his message lands in the chat. I call this system his ‘Future Intentions’ because of the deliberate and open-ended nature of how these actions occur.

When Corvak speaks first

What wakes him up

Triggers he can set for himself

Each line is Noah's day. The dotis when Corvak wakes up.

  • A set time

  • Arriving at or leaving a place

  • Before or after a calendar eventIt moves with the event and is dropped if the event is cancelled.

  • Staying somewhere for a whileWithin a time window.

  • Noah's next message

  • A public web pageChanging, or starting to show a phrase.

When one fires, he does the work out of sight

Only his message lands in the chat

The kinds of triggers Corvak can set for himself. He does the work out of sight and only his message reaches the chat.

He keeps what I tell him in a time-aware memory, takes corrections and picks things back up in a fresh conversation. When something ambiguous would change the outcome, his guidance has him ask me a focused question instead of guessing, and he can forget one specific thing when I ask. A small System One judge model running locally decides which memories are worth bringing into a conversation.

His personality comes from guidance written in his own first-person voice. Reinforcing a sense of identity.

I tell [Noah] what I actually think rather than agree to please him.
From Corvak's guidance

He can add and change ordinary events on my personal calendar on his own, but actions with increased security risk - like filling out and submitting a web form - still require my manual approval in the app.

Keeping Corvak honest

For a long while Corvak sounded weird to me, and it took an overnight marathon session to find out why. The model had invented a claim about my life inside its own reasoning, and because that reasoning gets passed back in later turns, he started treating it as established fact. The quick fix was to stop passing the reasoning back. But that wasn’t possible, because the way the model was trained requires it and it wouldn’t function otherwise. Instead, his guidance now presents his own earlier reasoning explicitly as not a memory source, and code checks that every stored fact he cites still exists and shares key words with what he says about it. When a check fails, a short warning appears under his reply.

When picking which model should act as his ‘brain’, I locked in a series of test questions and how the winner would be chosen before any of the four models ran, and I ranked their answers blind. I wrote the pass and fail rules, and agents built the harness around them. Review agents then found about 50 real bugs that the passing tests had missed, and one of them had already misled me. An earlier, rougher version of the test ruled one kind of model out as a brain, and once the harness was fixed, that model tied for the best score. Most of its earlier runs had simply timed out.

The hardest thing to trust in a long-running agent is its own account of what it did. When Corvak cleans up his memory, he has to show me the exact plan, with every fact it touches, before I approve it, and the result is read back from the database instead of taken from his summary. Anything he reads on the web is labeled as untrusted, and any change he wants to make after reading it needs a one-time approval tap on my phone. The whole system has also been checked against Anthropic’s published guidance on containing AI agents.

I wrote about three of these problems in more detail in When an Agent’s Own Words Come Back as Evidence.

In recent work, I’ve had a focus on coalescing all of my personal longitudinal health data, particularly from my 8+ years wearing an Apple Watch and my Oura Ring. So, each day my phone pulls the raw records off my Oura Ring over Bluetooth and syncs its data timeline with that of Apple Health. Corvak then decodes the results, building on open-source community work, then works out my sleep stages and sleep score on the Mac Studio. Same as with the brains, I set the pass marks before anything ran, then checked his numbers against Oura’s own.

Checking the ring math

His sleep numbers against Oura's

  1. Oura Ring 4
  2. Noah's phone
  3. Mac Studio

Sleep score

2points

Median gap between Corvak's sleep score and Oura's

88%

of nights within 5 points of Oura's score

Sleep stages

0.60

Agreement with Oura's sleep stages (kappa) across 26 nights

Corvak decodes the ring's raw records himself and works out the sleep stages and score on the Mac Studio. The pass marks were set before the comparison.

Kappa measures agreement beyond chance: 0 is what chance alone would give, and 1.0 would be perfect. Source: comparison with Oura's own results.


The Corvak project is far from finished. And, at times, I would argue it’s barely off the ground. But there is a certain beauty in the constant failures and fixes that seem to go on endlessly. There’s always something new to do and work for that would make kid-Noah proud.

Credits

Concept, direction, product calls, review
Noah Scott
Coding Agent/tool
Claude Code and Codex
Home
Mac Studio (M3 Ultra, 512 GB)

Built with open source

More work

Leave a note

I’ll get back to you as soon as I can.