Morning brief
Not a summary waiting for me every morning. I wanted to wake up and pick up whatever I left unfinished the day before. The summary was the means.
I wanted to continue, not to read.
The first version lived in my notes vault. A script on my Mac gathered the state overnight and left a markdown file there before I woke up.
The writing was not the point. The links were. Every unfinished project in that file was a link, and clicking one opened a terminal in that project. Reading about the work and starting the work were one click apart. I never had to decide where to begin. Beginning was the same gesture as reading.
It could not answer. It was a document. I read it and it was over. When it got something wrong there was nowhere to put the question. And it only existed when I was at my Mac with the vault open.
Then I saw the other half somewhere else. An agent living in a Slack channel, answering back, picking up where it left off. Someone read the morning message, asked a follow up, kept going in the same thread. It had the thing Obsidian never had.
I didn’t take it. The person using it wasn’t paying for it. The tokens were sponsored. So the enthusiasm I was watching wasn’t evidence the tool was good. It was evidence the tool was free. At this stage I’m not paying for an agent that already looks like it’s on its way out.
I kept the shape though. Two things I wanted. Two working examples, each with exactly one of them.
So I built my own.
Four jobs run on my Mac before 7:20. One walks my repos and writes down what I left uncommitted. One reads yesterday’s transcripts and works out where the day went. One clears expired items out of my plans file. Mondays get a fourth, a scan for whatever tool is worth a look. Everything they write lands in a private repo.
At 7:40 a scheduled Claude Code run picks up those four files, reads my calendar, reads the last twenty four hours of mail, throws out the marketing, and writes the brief. Then it pushes the whole thing to my phone.
The two sides of that diagram do not behave the same. Calendar and mail get read live at 7:40, so they are never stale. Everything my Mac makes has to go through GitHub first. My Mac sleeps. So some mornings the brief quotes yesterday’s numbers and says nothing about it, and I do not notice, because a brief full of slightly old facts still looks like a brief.
It reaches me better than the other two. It runs while my Mac is asleep. It arrives before I open a laptop.
Three versions in, this is the one I still run.
And it has neither of the two things I started out wanting. A push notification cannot open a terminal. Every run starts a new session, so there is nothing to reply to.
It is better than the other two, and further from what I wanted.
Reading and starting used to be one click apart. Now they are a laptop, a lid, and a decision apart. Whatever fixes this has to run on the machine where the work is, because a notification on a phone can never open the thing it is telling me about. I have not built that yet.