Scout is a Mac app that watches what I already do and, each morning, hands me three to five things worth doing. I built Phase 1 and most of Phase 2 in one working day… 4 days before Claude released Duet, their capability that does effectively the same thing.
Editor: That’s one.
Every AI assistant I own is waiting for me to tell it what to do. It sits behind a blinking cursor, patient as a bartender at three in the afternoon, and does precisely nothing until I think of the right question. That’s a tool. A good one, mind you… but a tool.
Editor: That’s two.
I wanted an executive assistant, a colleague, a collaborator. The kind who leans over after a meeting and says, “You’ve asked me the same thing four times this month. Want me to just build it?”
Editor: Rhetorical question. Keep?
Author: Keep. It’s rhetorical.
01 · The intent
In KCS terms, every assistant on the market lives in the Solve Loop. A request comes in, an answer goes out, everyone feels productive. Nobody is minding the Evolve Loop: the part where you step back, look at the pattern across all those requests, and fix whatever keeps generating them.
Scout is my attempt at an Evolve Loop for one person. It’s a predictive collaborator rather than a subordinate task machine. It reads the sources I connect (my Claude Code sessions, my git repositories, my calendar, the email threads I’ve replied in, the Notion pages I choose), notices patterns, friction, and open loops, and speaks first.
Editor: Serial comma: present.
Author: Always.
Every recommendation is one of three kinds:
- Do: “I can do this for you.” A concrete task an AI could take on now.
- Consider: “Have you considered…” An idea grounded in what Scout actually observed.
- Build: “This could be built.” A tool or automation that removes a recurring problem.
Editor: Three.
Author: …
I set the rules before I wrote a line of code, because an assistant that interrupts you has to earn the right to do it:
- Observe-only. Read-only access everywhere. Scout never acts on its own; I choose.
- Nothing leaves the Mac by default. No servers, no accounts. Uses on-metal Apple Intelligence where it can, local models where it can’t, and Claude only when I actively opt in.
- Cite the evidence. Every item links to what triggered it, states its confidence and rough effort, and names a first step.
- Specific to me, or silent. Anything that would apply to anyone is dropped. Three to five items, hard cap. If nothing is worth saying, the digest says so.
editor: Isn’t this a to-do list with opinions?
author: It’s a to-do list that read the minutes first. Stet.
Editor: Set as display. Bigger.
Author: Bigger.
02 · The process
The repository’s first commit landed at 11:15 a.m. on October 17. It was documentation: platform notes, design decisions, architecture. No code. I’ve spent enough of my career cleaning up knowledge bases built without a taxonomy to know where the time actually goes.
Then it moved quickly. By 12:28 the command-line version produced its first digest from my real data. The menu bar app was up at 2:34. Gmail and Notion were connected by 3:04. Phase 2 started at 5:35 with Scout’s own MCP server, so Claude Code can ask Scout what it has noticed. By 8:09 the database was encrypted at rest, with its key in my Keychain, and Scout could run its own models without LM Studio.
To be plain about it, Claude Code wrote most of the code. My job was the job I do at work: set the constraints, make the calls, write down why, and say no. Every decision went into a file called SCOUT.md with its reasoning attached… thirty-eight of them, and counting. That file is the real product of the day. Code is cheap now; reasons aren’t.
Editor: Four.
A few of those decisions are worth the price of admission:
- Apple’s on-device model is a labeler, not a writer. On my real signals it misused fields. Titles came back as bare project names, and a true/false field placed first in the schema was answered false every time. Drafting moved to a local model (qwen3.8-27b, through LM Studio), judging specificity went to another model (qwen3-coder, also on LM Studio); the on-device model kept the job of labelling clusters. The schema lesson: put the judgement fields last.
- The question you ask the reviewer decides what gets published. One early version of my quality judge asked, “Is this specific to one person?” It rejected 11 of 13 perfectly grounded drafts, because the kind of fix (a script, a template) is common. Reframed as “Is this generic advice that ignores the notes?”, it started letting the good ones through. That’s a knowledge-management lesson wearing a lab coat.
- Scar tissue from one project is the architecture of the next. My ADVCT app had hit SwiftData migration crashes, so Scout stores everything in GRDB with explicit SQL migrations and full-text search.
- Don’t recommend what I already have. By evening Scout was cheerfully suggesting I build tools I’d already built. Decision 37 taught it to read the skills, commands, and scripts on my machine first. Nothing humbles a recommendation engine faster than suggesting you invent your own wheel.
Most of the engineering went into column three of that diagram: the gates that hold a pattern back before any model writes a word. An assistant that speaks first is mostly defined by what it doesn’t say.
03 · The outcome
Phase 1 is complete and in use. Phase 2 is well under way. Here’s what Scout does today:
- A morning digest in the menu bar, each card with Accept, Snooze, and Dismiss, a one-line reason, and a “why am I seeing this” view. An Accept choice provides a “Write the plan” button to build the plan locally for handoff to Claude.
- A Sunday evening retro titled “patterns I’ve noticed.”
- “Hey Siri, what does Scout suggest today?” works, past suggestions turn up in Spotlight, and the digest can arrive by email (to me, and only me).
- After 30 reactions, the ranking starts learning from what I actually found useful.
- Claude Code and Claude Desktop can query Scout through its own MCP server, off by default.
- A searchable archive, weekly metrics on acceptance and cost, a log of every model call and which tier made it, per-source kill switches, and export, import, or delete-everything.
It also builds as two editions from one codebase: a direct one I’m dogfooding now, and a sandboxed App Store edition with the seams already in place. Whether anyone else ever gets it depends on whether it earns its keep with me first. I’ve spent a career telling organizations to prove the value before they scale the program; I’d be a hypocrite to skip that step with my own toy.
Editor: Semicolon. Bold.
Author: Earned.
The bigger lesson isn’t about Swift or models. Knowledge management is quietly becoming context management, and Scout is what that looks like at the scale of one person: the value isn’t in the answer, it’s in noticing which question you keep asking. The assistants we have are very good at the Solve Loop. The interesting work, for people and for software, is in the Evolve Loop.
Editor: ‘very’: cut?
Author: Stet. Very.
So the question I’m sitting with is this: what would your week look like if something read it back to you, every morning, and only spoke up when it had a point?
Editor: Starting with ‘So’?
Author: And why not.
Transparency note: drafted with Claude from the Scout repository and its decision log, then read, cut, edited heavily, rewritten, and finally approved by me. As always: AI drafts, humans ship.
AI drafts, humans ship. This entry has been through the human.




You must be logged in to post a comment.