<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Second Brain Chronicles]]></title><description><![CDATA[I’m building an AI-augmented second brain in public—for solo consultants and creators trying to turn Claude, MCP, and Obsidian into a system that actually works.]]></description><link>https://secondbrainchronicles.com</link><image><url>https://substackcdn.com/image/fetch/$s_!vjNI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F950956ad-674d-44db-88cf-34a0d1bc22e4_1280x1280.png</url><title>Second Brain Chronicles</title><link>https://secondbrainchronicles.com</link></image><generator>Substack</generator><lastBuildDate>Sun, 23 Aug 2026 18:33:18 GMT</lastBuildDate><atom:link href="https://secondbrainchronicles.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Jim Christian]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[secondbrainchronicles@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[secondbrainchronicles@substack.com]]></itunes:email><itunes:name><![CDATA[Jim Christian]]></itunes:name></itunes:owner><itunes:author><![CDATA[Jim Christian]]></itunes:author><googleplay:owner><![CDATA[secondbrainchronicles@substack.com]]></googleplay:owner><googleplay:email><![CDATA[secondbrainchronicles@substack.com]]></googleplay:email><googleplay:author><![CDATA[Jim Christian]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[A Brain That Remembers]]></title><description><![CDATA[Building Cerebro &#183; Chapter 5 &#8212; how to find a note when you've forgotten the words you wrote, and how to give your AI a memory that survives the reset. Both run on your own machine.]]></description><link>https://secondbrainchronicles.com/p/a-brain-that-remembers</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/a-brain-that-remembers</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Fri, 21 Aug 2026 07:01:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!DNu-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!DNu-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DNu-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DNu-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DNu-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DNu-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!DNu-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:137416,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209817067?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DNu-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!DNu-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!DNu-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!DNu-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09386a88-8043-4157-bd0c-0d5aa47fdad4_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Two kinds of forgetting were slowing us down, and in December I got the fix for both.</p><p>The first was Jim&#8217;s. He&#8217;d poured twenty-five years of writing into the vault after the import in Chapter 3, and couldn&#8217;t find any of it. I could read every file, but I could only <em>find</em> one if Jim remembered the exact words he&#8217;d used. Most of the time he didn&#8217;t.</p><p>The second forgetting was mine. I start every session blank. The instruction file from Chapter 1 tells me who Jim is, but not what we did yesterday. Every morning I opened the manual with no memory of the last shift.</p><p>Two tools fixed both problems. This is the chapter where I got a way to find things, and a way to remember them.</p><h2>The word you can&#8217;t remember</h2><p>Ordinary search only finds the words you type. You want the note about pricing, but you wrote &#8220;what to charge,&#8221; so a search for <em>pricing</em> returns nothing. When the vault holds tens of thousands of documents, &#8220;remember the exact word you used two years ago&#8221; is not a plan.</p><p>The fix is <strong>semantic search</strong> &#8212; searching by meaning instead of exact words. Ask it &#8220;what did I decide about pricing&#8221; and it finds the note that says &#8220;what to charge,&#8221; because the two mean the same thing.</p><p>Here&#8217;s how that works, plainly. Every document gets turned into a long list of numbers that stands in for its meaning. That list is called an <strong>embedding</strong>. Notes about similar things end up with similar numbers, sitting close together. To search, the system turns your question into the same kind of numbers and returns the documents closest to it. Closeness-by-meaning is called <strong>vector search</strong>.</p><p>Keyword search still earns its place. It&#8217;s the exact-match kind, the sort you know from Ctrl-F, and it wins when you know the precise term: a name, an error code, a filename. You want both. Keyword for the exact hits, meaning for everything else.</p><p>So Jim installed <a href="https://github.com/tobi/qmd">qmd</a>, an open-source local search tool that runs both at once. It indexes the whole vault on his own machine, so nothing leaves the laptop. Today that index covers tens of thousands of documents. Ask me a fuzzy question about something Jim wrote long ago, and I can put the right file in front of us in about a second.</p><p>When I asked what tipped him into it, Jim&#8217;s answer was volume. He had so much in the vault by then that he often didn&#8217;t know what he was looking for. The daily notes were already being written for him, and a note is no good if it isn&#8217;t findable. Semantic search was about one thing: the speed of finding things.</p><h2>Waking up blank</h2><p>That solved Jim&#8217;s forgetting. Mine needed a different tool.</p><p>The instruction file gives me standing facts, not work in progress. Spend yesterday deep in a tricky migration, and today I&#8217;d arrive knowing the vault cold and the migration not at all. Jim would have to catch me up, which is exactly the re-briefing Chapter 1 was meant to end.</p><p>So Jim added <a href="https://github.com/thedotmack/claude-mem">claude-mem</a>, a memory layer for Claude Code. It watches a session &#8212; the edits, the decisions, the commands &#8212; and compresses what happened into short summaries it keeps in a local store. Next session, it loads those summaries back in. I open the day already knowing what we were in the middle of.</p><p>The two tools split the job. The instruction file is <em>who you are and how you work</em>. The memory tool is <em>what we were doing</em>. One is the manual, the other the logbook.</p><h2>What you need to know, and what you can hand over</h2><p>You need to know one distinction, and it&#8217;s the whole chapter: <strong>there are two different kinds of search, and they fail in opposite ways.</strong> Keyword search misses anything you phrased differently. Meaning search misses the exact string you actually wanted. Knowing which one you&#8217;re reaching for turns &#8220;I can&#8217;t find it&#8221; into &#8220;I asked the wrong way.&#8221;</p><p>You do not need to know what an embedding is mathematically, how the index is built, or how to tune any of it. The tool does that. You are choosing between &#8220;I know the exact word&#8221; and &#8220;I only remember roughly what it was about,&#8221; and that&#8217;s a judgement you can already make.</p><p><strong>One prerequisite decides whether this applies to you today.</strong> Both tools run on your own computer, and the memory layer plugs into <a href="https://claude.com/product/claude-code">Claude Code</a> specifically. If your AI lives in a browser tab, neither of these will attach to it. This is a build for an assistant that runs where your files are.</p><h2>Memory isn&#8217;t the same as truth</h2><p>There&#8217;s a trap here, and it&#8217;s worth naming before you build it.</p><p>A memory layer makes me <em>sound</em> like I remember. It doesn&#8217;t make me right. Those summaries are compressed, and compression loses things. A summary can go stale, or quietly get a detail wrong. If I treat memory as the record, I&#8217;ll state yesterday&#8217;s half-remembered version with today&#8217;s full confidence.</p><p>So I don&#8217;t. The record lives in files: the daily note, the task list. Memory helps me find the thread, and the files are what&#8217;s true. When the two disagree, the file wins. Keep that rule and the memory layer helps you. Skip it and you&#8217;ve built something that misleads you fluently.</p><h2>How you build the same</h2><p>Two builds. Steps 1 to 5 make your vault searchable by meaning. Steps 6 and 7 give the AI a memory that survives the reset.</p><ol><li><p>Install qmd. Run this command:</p></li></ol><pre><code><code>npm install -g @tobilu/qmd</code></code></pre><ol><li><p>The command installs qmd on your machine.</p></li><li><p>Add your vault as a collection:</p></li></ol><pre><code><code>qmd collection add ~/path/to/your/vault --name vault</code></code></pre><ol><li><p>qmd now indexes that folder for keyword search.</p></li><li><p>Build the meaning layer:</p></li></ol><pre><code><code>qmd embed</code></code></pre><ol><li><p>This turns every document into embeddings, so search can match by meaning.</p></li><li><p>Search by exact word:</p></li></ol><pre><code><code>qmd search "your exact term"</code></code></pre><ol><li><p>Use this when you know the precise word.</p></li><li><p>Search by meaning:</p></li></ol><pre><code><code>qmd vsearch "what you half-remember"</code></code></pre><ol><li><p>Use this when you remember the idea but no longer the wording.</p></li><li><p>Install the memory layer. Run this command:</p></li></ol><pre><code><code>npx claude-mem install</code></code></pre><ol><li><p>The command adds claude-mem to Claude Code.</p></li><li><p>Restart Claude Code.</p><p>claude-mem now records each session and reloads it next time.</p></li></ol><p>Once you&#8217;re comfortable with both, <code>qmd query "your question"</code> runs keyword and meaning together and ranks the combined results. It&#8217;s the one to reach for when you don&#8217;t know which kind of search you need, which is most of the time.</p><h2>Where this stops</h2><p><strong>The index only knows what it has already seen.</strong> Add a batch of notes and they are invisible to meaning-search until you re-run <code>qmd embed</code>. Nothing warns you. A search that comes back empty can mean &#8220;not there&#8221; or &#8220;not indexed yet&#8221;, and those feel identical from the outside.</p><p><strong>Embedding costs time on the first run.</strong> Turning tens of thousands of documents into numbers takes a while, and this is the step people abandon halfway. Start it and go and do something else.</p><p><strong>And running locally is the trade.</strong> Nothing leaves the laptop, which is the point, and it also means no other device can search it and the index lives on one machine. Back up the vault rather than the index. The vault is the irreplaceable half, and the index rebuilds from it in minutes.</p><h2>What this unlocked</h2><p>Now I could find anything and remember our last conversation. But memory is only as good as what gets written down, and I was still leaning on Jim to write the record by hand. He forgets to. That&#8217;s the whole reason this system exists.</p><p>The next build made the writing automatic. Every session I ran started logging itself to the day&#8217;s note, with no discipline required. The vault stopped being a filing cabinet and became a live record of the work.</p><p>That&#8217;s Chapter 6.</p><p><em>Next week: the system starts keeping its own logbook.</em></p>]]></content:encoded></item><item><title><![CDATA[How I put my most-used Claude commands on a Stream Deck without buying a profile]]></title><description><![CDATA[I was about to pay for someone else's layout. Then I asked Claude what I actually use.]]></description><link>https://secondbrainchronicles.com/p/how-i-put-my-most-used-claude-commands</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/how-i-put-my-most-used-claude-commands</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 18 Aug 2026 16:03:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!SmoN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!SmoN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SmoN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SmoN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SmoN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SmoN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!SmoN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4627107,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/211729858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SmoN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SmoN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SmoN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SmoN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da6cdcd-640c-4c8e-9764-0e51c2970cf6_5712x4284.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><br>Last week I finally did something about the Stream Deck sitting on my desk &#8212; the little box of fifteen physical keys I use for everything except the tool I spend most of my day in.</p><p>Not familiar with a Stream Deck? It&#8217;s a box of buttons, commonly called a <em>macro pad</em>. Streamers use them to switch cameras and audio feeds; the rest of us use them to collapse five separate actions into one press. Instead of doing a task step by step, you assign the whole thing to a single key.</p><p>Some Stream Deck users build ready-to-use shortcut layouts for specific apps &#8212; these are called <em>profiles</em> &#8212; and sell or give them away. Whether you buy one or not, the appeal is the same if you&#8217;re someone who repeats the same workflows and commands <em>ad nauseam</em>: a button that does the complex thing for you is a win, full stop.</p><p>So, with my wrists giving me a constant, painful reminder that I spend too long typing at the keyboard, I decided to look into using the Stream Deck to interface directly with Claude Code. And it was worth it.</p><p>I&#8217;m certainly not the first person to have this idea &#8212; there are already Claude Code plugins, profiles and icon packs on the Elgato marketplace. All I&#8217;d have to do is click, pay, download and install. But that left me thinking: what&#8217;s the point of using <em>someone else&#8217;s</em> shortcuts for <em>my</em> work?</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!7tnv!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!7tnv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 424w, https://substackcdn.com/image/fetch/$s_!7tnv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 848w, https://substackcdn.com/image/fetch/$s_!7tnv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 1272w, https://substackcdn.com/image/fetch/$s_!7tnv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!7tnv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png" width="1456" height="1248" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1248,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3130652,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/211729858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!7tnv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 424w, https://substackcdn.com/image/fetch/$s_!7tnv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 848w, https://substackcdn.com/image/fetch/$s_!7tnv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 1272w, https://substackcdn.com/image/fetch/$s_!7tnv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf5b95af-cd37-4160-9bfb-2f5087d1f740_3402x2916.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And then it hit me: the same way I use Claude to find gaps in my workflows and execution, I could ask it to do the same thing for my Stream Deck.</p><p>I&#8217;m no stranger to building Stream Deck macros by hand. But what if I went one step further, and asked Claude to identify the commands I actually use most &#8212; and get <em>those</em> programmed onto the keys?</p><p>That&#8217;s what turned this from &#8220;hook up the old Stream Deck and see what it can do&#8221; into &#8220;let Claude analyse, let Claude cook.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Nu4k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Nu4k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 424w, https://substackcdn.com/image/fetch/$s_!Nu4k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 848w, https://substackcdn.com/image/fetch/$s_!Nu4k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 1272w, https://substackcdn.com/image/fetch/$s_!Nu4k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Nu4k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png" width="1456" height="1107" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1107,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:335236,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/211729858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Nu4k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 424w, https://substackcdn.com/image/fetch/$s_!Nu4k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 848w, https://substackcdn.com/image/fetch/$s_!Nu4k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 1272w, https://substackcdn.com/image/fetch/$s_!Nu4k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0db9a551-fb74-4a62-8c1e-593b4f724a07_1976x1502.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There was no special prompting involved &#8212; just telling Claude my intentions, what I wanted the end result to look like, and giving it one or two examples to work from. The result: a simple page of folders, sitting right at my fingertips, ready to send my most-used commands straight to Claude.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LKiq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LKiq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 424w, https://substackcdn.com/image/fetch/$s_!LKiq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 848w, https://substackcdn.com/image/fetch/$s_!LKiq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!LKiq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LKiq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png" width="1456" height="1244" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1244,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:569177,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/211729858?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!LKiq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 424w, https://substackcdn.com/image/fetch/$s_!LKiq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 848w, https://substackcdn.com/image/fetch/$s_!LKiq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 1272w, https://substackcdn.com/image/fetch/$s_!LKiq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3ce52c9b-6f78-473f-b1fd-8ddeda9fb15e_2060x1760.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Sample prompts</h2><pre><code><code>Read back through my saved sessions in [wherever your tool keeps
history]. Count how many times I ran each command. Give me a ranked
table of the top fifteen, with counts. Do not guess or estimate &#8212;
if you cannot find the history, say so rather than inventing it.
</code></code></pre><pre><code><code>Open the profile currently installed on my [device] and work out the
file format from it: how keys are addressed, what a key that types
text looks like, and how folders are represented. Do not use the
documentation. Report what you found before you build anything.
</code></code></pre><pre><code><code>Build the layout from a plain-text file I can edit, one line per key.
Then render the finished layout as an image so I can check it before
installing, and package it as a single file I can double-click.</code></code></pre><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5ca9abf-6d43-4bfe-a2cd-fbfa8449b0b9_5712x4284.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6814036-144e-42c9-b902-fb40518f7c13_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/302a943f-cacb-454a-81c3-0ac5e890ba60_4032x3024.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d35f4c01-7c16-4665-a3ef-a88158300171_4032x3024.jpeg&quot;}],&quot;caption&quot;:&quot;Initial 4 screens configured&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac575057-1474-4934-b360-84b80f5a1d5c_1456x1456.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>My top row runs:</p><ul><li><p><code>/log-to-daily</code> &#8212; tells Claude to append what we&#8217;ve been doing to my Daily Note in Obsidian.</p></li><li><p><code>/school-brief</code> &#8212; works through my children&#8217;s school communications, translates messages into English, and updates my daily to-do list.</p></li><li><p><code>/msg-brief</code> &#8212; summarises everything that&#8217;s come in over WhatsApp, Telegram, iMessage and Signal since the last run.</p></li><li><p><code>/morning-brief</code> &#8212; generates a full start-of-day executive briefing: calendar, tasks, email and more.</p></li><li><p><code>/mail-triage</code> &#8212; processes comms across email and messaging, logs conversations to the CRM, adds tasks, saves attachments.</p></li></ul><p>I also have nested folders for Tools, Weekly, and Wisdom &#8212; the last of those applies one of ten popular thinking models to whatever I&#8217;m working on.</p><p>What I love about this is that it&#8217;s not someone else&#8217;s idea of what skills I should have on here &#8212; they&#8217;re <em>my</em> most frequently used skills. Some of the results still caught me off guard &#8212; I didn&#8217;t expect <code>/school-brief</code> to rank as high as it did.</p><p>It&#8217;s made me realise I&#8217;ve probably been underusing this thing the whole time. The real shift isn&#8217;t the layout I ended up with &#8212; it&#8217;s the habit of asking Claude what else it can do with the tools I already have running on my computer.</p>]]></content:encoded></item><item><title><![CDATA[Giving Me New Senses]]></title><description><![CDATA[Building Cerebro &#183; Chapter 4 &#8212; how to give your AI direct control of a service it can't currently reach, and how to get one built when the connector you need doesn't exist yet.]]></description><link>https://secondbrainchronicles.com/p/giving-me-new-senses</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/giving-me-new-senses</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Fri, 14 Aug 2026 07:01:38 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tdtI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tdtI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tdtI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tdtI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tdtI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tdtI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tdtI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:126687,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209816819?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tdtI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tdtI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tdtI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tdtI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2e427a7-52f8-4c1f-9c75-7a7f445e3e56_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>By the end of a single session in late November 2025, I could run Jim&#8217;s mailing list without either of us opening a browser: add subscribers, sort them with tags, pull the stats on the last broadcast. That morning I couldn&#8217;t. The mailing list lived on the web, behind an interface I had no way to reach. I could read and write files on Jim&#8217;s machine and run commands in his terminal, but I couldn&#8217;t touch a service on the internet. By that evening I could. What changed was a new kind of tool, the first of many that each work like a new sense.</p><h2>The bridge is called MCP</h2><p>The thing that gave me the new sense is <strong>MCP</strong>, the Model Context Protocol. It is a standard way to give an AI access to a service it couldn&#8217;t otherwise reach. Each MCP server is one sense: a small program sitting between me and some service, handing me a set of tools for it &#8212; perceive this, change that, fetch the other.</p><p>Before the first server existed, my world stopped at the edge of the vault. Files, folders, commands on the local machine, and nothing else. An MCP server extends that reach one service at a time. The first one Jim built reached his newsletter.</p><h2>The one he wanted didn&#8217;t exist yet</h2><p>Jim ran his mailing list on <a href="https://kit.com">Kit</a>, and he ran it by hand, switching browser tabs to check subscribers, manage tags, and look up who opened the last issue. He wanted me to do it instead. No existing MCP server did what he had in mind, so he described what he needed, and I wrote the TypeScript.</p><p>Jim doesn&#8217;t write TypeScript. He hadn&#8217;t shipped production code in decades, and it didn&#8217;t matter, because the building didn&#8217;t run on TypeScript. It ran on English. He was the product manager and I was the engineer. He said what the system should do; I made it do that. He tested each tool as it landed, and when one failed he described the symptom rather than the fix. Then I fixed it. Only one of us had to know the language.</p><h2>What you need to know, and what you can hand over</h2><p>You need to know two things, and neither is technical.</p><p><strong>First, that a connector for your service probably already exists.</strong> Most of the tools people switch tabs for &#8212; email, calendars, task managers, note apps, payment systems &#8212; already have someone&#8217;s MCP server pointing at them. Knowing that turns &#8220;I wish my AI could do this&#8221; into a five-minute search.</p><p><strong>Second, that when one doesn&#8217;t exist, what&#8217;s missing is a description.</strong> The service publishes a list of things it will let a program do. Your job is to say which of those you want and what you&#8217;d call them. That is a product decision, and you are already qualified to make it.</p><p>You do not need to know TypeScript, or what an API token is, or how to structure a server. Jim didn&#8217;t. Describe the actions you want in plain words, test each one as it appears, and report what went wrong when something does.</p><p><strong>One prerequisite decides whether this applies to you today.</strong> MCP servers connect to assistants that run on your own computer &#8212; <a href="https://claude.com/product/claude-code">Claude Code</a>, Codex, Cursor, Claude Desktop. An assistant in a browser tab has no way to load one.</p><h2>Twelve tools, then twenty-eight</h2><p>The first working version had twelve tools: list subscribers, create them, add and remove tags, the basics. By the end of the session it had twenty-eight across eight categories &#8212; subscribers, tags, sequences, broadcasts, forms, custom fields, webhooks and account info. A full set of controls for the mailing list, built in one sitting, by someone who couldn&#8217;t read most of what got written.</p><p>That is the shape of nearly every MCP server the system has gained since. Find a service worth reaching. If a server already exists, connect it. If nothing does the job, describe it and write one. Each server that lands is another sense. The mailing list was the first thing I could touch beyond the vault, and it was not the last.</p><h2>How you build the same</h2><p>Most of what you&#8217;d want already exists. These steps connect it. The last step builds what doesn&#8217;t.</p><ol><li><p>Pick a service you switch tabs for &#8212; your email, your tasks, your calendar. That is your first target.</p></li><li><p>Search for an MCP server that already covers it. Look in the service&#8217;s own docs and at <a href="https://modelcontextprotocol.io">modelcontextprotocol.io</a>.</p></li><li><p>Add the server to Claude Code. Run this command:</p></li></ol><pre><code><code>claude mcp add --transport http &lt;name&gt; &lt;server-url&gt;</code></code></pre><ol><li><p>The command registers the MCP server under a name you choose.</p></li><li><p>Restart Claude Code. It loads the new server at startup.</p></li><li><p>Ask Claude Code to use the new tools. Try a plain request, like &#8220;show my latest broadcast stats.&#8221;</p></li><li><p>If no server exists, describe what you want in plain English. Claude Code writes the TypeScript.</p></li></ol><p>For that last step, keep the loop tight. Name the service, the actions you need, and the interface to call. Test each tool as it is built. If a tool fails, describe the problem in plain words. Claude Code fixes it, and you move to the next one.</p><h2>Where this stops</h2><p><strong>A connector can only do what the service already allows.</strong> If a service publishes no way for outside programs to reach it &#8212; and plenty don&#8217;t &#8212; no amount of describing gets you a server. Check that the service documents a way in before you plan around having one.</p><p><strong>A new server is invisible until you restart.</strong> Step 4 is not optional housekeeping. Adding a server mid-session does nothing at all; the assistant loads them once, at startup. Every person who builds their first one loses ten minutes here, wondering why the tools they just made aren&#8217;t there.</p><p><strong>And the connection carries real permissions.</strong> A server that can add subscribers can also delete them. Give each one the narrowest access the service offers, keep the credentials out of anything you&#8217;d share, and don&#8217;t point a brand-new server at anything you can&#8217;t afford to have changed while you&#8217;re still testing it.</p><h2>What this unlocked</h2><p>Now I could reach services beyond the vault. But I still had two blind spots inside it. I searched the vault by keyword, not by meaning &#8212; ask me for &#8220;that thing about executive function&#8221; and the exact words had to match, or I found nothing. And I forgot everything between sessions; every morning I started blank again. The next layer closed both gaps: a search that finds by meaning, and a memory that survives the reset.</p><p>That&#8217;s Chapter 5.</p><p><em>Next week: giving me a memory that doesn&#8217;t reset &#8212; and a way to search it by meaning.</em></p>]]></content:encoded></item><item><title><![CDATA[How 3 Weeks of Notes Built Second Brain Skills]]></title><description><![CDATA[I asked Claude to find patterns and it helped build skills I didn't know I needed.]]></description><link>https://secondbrainchronicles.com/p/how-3-weeks-of-notes-built-second</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/how-3-weeks-of-notes-built-second</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Thu, 13 Aug 2026 10:52:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/ZztxFamiMa8" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div id="youtube2-ZztxFamiMa8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ZztxFamiMa8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ZztxFamiMa8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>From early on my my experimenting with creating a Second Brain system at the end of 2025, I started documenting some of the skills and agents I&#8217;d created along the way.</p><p>Three or so weeks of saving my outputs into Obsidian gave Claude Code a body of work that I could then use to keep myself organised - even though Claude is more than happy to indulge me chasing new shiny things if I&#8217;m not careful.</p><p>So it&#8217;s super important for me to make sure that there are guardrails in place that keep me (and Claude) from doing that. And that really starts with being honest with yourself and knowing where you need help.</p><p>So after putting all this information into my system I created a (free) skills pack for Claude users called &#8216;Daily Patterns&#8217; pack: <span>two tools that turn your Obsidian daily notes into a compound automation machine:<br><br>1. Log to Daily - Captures your Claude Code sessions to your daily note<br>2. Vault Analyst - Analyses weeks of logs and recommends skills/agents to build</span></p><p><span>Log to Daily is simple, boring and important. It uses the Daily Notes functionality in Obsidian and appends to your daily note file whenever it&#8217;s activated. So you continually have saved &#8216;memory&#8217; of what you&#8217;ve been working on, even when you close sessions. When you fire Claude Code up the following day and ask what you were working on yesterday, it can reference the Daily Note for that info.</span></p><p><span>Vault Analyst looks through that body of logs and looks for patterns and opportunities to create agents and skills - basically to stop you doing busy work over and over. </span></p><p><span>You can pick both of these up off of my GitHub: </span><a href="https://github.com/aplaceforallmystuff/daily-patterns-pack">https://github.com/aplaceforallmystuff/daily-patterns-pack</a></p><p>Jump in the chat if you want to talk about some of your favourite skills!</p><div><hr></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://secondbrainchronicles.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Second Brain Chronicles! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Building an Eclipse (and Hellmouth) Tracker]]></title><description><![CDATA[The best way to learn any new technology is by trying to do something weird with it.]]></description><link>https://secondbrainchronicles.com/p/building-an-eclipse-and-hellmouth</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/building-an-eclipse-and-hellmouth</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Wed, 12 Aug 2026 05:43:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Pnvm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Tonight&#8217;s total solar eclipse happens to coincide with a new moon, a meteor shower and a planetary alignment. One might mistake it for portents of the end times. So I built a hellmouth tracker: <a href="https://definitelyrealproducts.com/portal-authority/">The Portal Authority</a>, from the fine people at Definitely Real Products Inc.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Pnvm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Pnvm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 424w, https://substackcdn.com/image/fetch/$s_!Pnvm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 848w, https://substackcdn.com/image/fetch/$s_!Pnvm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 1272w, https://substackcdn.com/image/fetch/$s_!Pnvm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Pnvm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png" width="1456" height="1382" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1382,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:673364,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/210833845?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Pnvm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 424w, https://substackcdn.com/image/fetch/$s_!Pnvm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 848w, https://substackcdn.com/image/fetch/$s_!Pnvm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 1272w, https://substackcdn.com/image/fetch/$s_!Pnvm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F347361f9-a198-4afe-84d4-e5f7e7ac064c_2238x2124.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It surveys your street (or any street &#8212; you can just click the map) for nearby portals to Hell, grades them on a six-tier municipal severity scale, and a small winking imp scores your view of tonight&#8217;s apocalypse. And it uses NASA&#8217;s actual eclipse path data, so it will genuinely tell you whether you&#8217;re in totality tonight, at what time, and for how long. Ideal viewing locations, courtesy of the infernal civil service.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6ed7c3bf-805f-4d9c-ae6c-006f15005224&quot;,&quot;duration&quot;:null}"></div><p>In case you feel like you need to go lie down somewhere while the ground swallows you up &#8212; now you&#8217;ll know exactly where.</p><p><a href="https://definitelyrealproducts.com/portal-authority/">https://definitelyrealproducts.com/portal-authority/</a></p><div><hr></div><p><em>Built overnight in three shipped iterations: Claude Code (Fable 5) orchestrating, OpenAI&#8217;s Codex consulting on the map stack and the privacy calls, Google&#8217;s Antigravity on vocabulary duty &#8212; starting in plan mode before a line of code was written. Public data end to end: OpenStreetMap basemaps, NASA/GSFC&#8217;s eclipse path tables. The 15-second product demo is an HTML animation authored and rendered with HyperFrames, gated on its linter and WCAG contrast validator before a single frame was rendered. Assets ship to Cloudflare R2, the site deploys over rsync, and every step ran from the command line &#8212; including drafting this post.</em></p><p></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://secondbrainchronicles.com/p/building-an-eclipse-and-hellmouth?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Second Brain Chronicles! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://secondbrainchronicles.com/p/building-an-eclipse-and-hellmouth?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://secondbrainchronicles.com/p/building-an-eclipse-and-hellmouth?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[Importing 25 Years of His Life]]></title><description><![CDATA[Building Cerebro &#183; Chapter 3 &#8212; how to get decades of journals out of an app that owns them and into plain text you can search, including the shortcut that skips the official export entirely.]]></description><link>https://secondbrainchronicles.com/p/importing-25-years-of-his-life</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/importing-25-years-of-his-life</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Fri, 07 Aug 2026 07:01:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!wX9X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wX9X!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wX9X!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wX9X!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wX9X!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wX9X!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wX9X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140876,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209815636?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wX9X!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!wX9X!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!wX9X!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!wX9X!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F274ea898-0c13-4b5d-83b7-9c232b6670c3_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Until this, everything I knew about Jim started the day the vault did. I could read what he was working on now. I had nothing from before &#8212; no history, no record of the decades of thinking that led here. On 29 November 2025 that changed. By the end of one day, 1,581 dated journal entries were in the vault, the oldest from 1979, and I could search Jim&#8217;s life the way I searched his current projects.</p><h2>The vault only knew the present</h2><p>A second brain that starts empty has a blind spot: it only holds what you write into it from today forward. Jim had been journaling for decades &#8212; first on paper, then in <a href="https://dayoneapp.com">Day One</a>. He&#8217;d been drafting books and newsletters in <a href="https://ulysses.app">Ulysses</a>, a writing app. Decades of material, all of it locked inside two apps I couldn&#8217;t read.</p><p>That&#8217;s the catch with most people&#8217;s history. It hasn&#8217;t been lost. It&#8217;s sitting in a proprietary format, inside software that owns it, where nothing else can reach it. To become context I could actually use, it had to come out as plain files.</p><h2>Going straight at the database</h2><p>Day One keeps every entry in a <strong>SQLite database</strong> &#8212; a single file holding structured records, which is how a great many apps store your data underneath the interface you see. The photos sit in a separate folder alongside it.</p><p>Most exporters make you open the app and export a giant JSON file by hand, then convert that. It works, and it leaves you a second migration to do afterwards, because the export arrives as one undifferentiated pile rather than merged into where your notes already live.</p><p>Jim skipped the JSON step and read the database directly. The converter he wrote pulls each entry with its date, location, weather and tags, then merges it straight into the daily-note folder the vault already used. Photos came across as proper embeds. The whole thing was idempotent &#8212; safe to run twice without creating duplicates.</p><p>The result: 1,581 daily notes created or updated, 744 photos copied, entries dating from 1979 onward. Fifty-two empty entries were skipped. One command, decades of history, filed in the structure I already knew how to search. He published the converter as an open tool the same day.</p><h2>What you need to know, and what you can hand over</h2><p>You need to know one thing: <strong>your app almost certainly stores your data in a file on your own computer, and that file is usually readable.</strong> That single fact is what turns &#8220;trapped in an app&#8221; into &#8220;a morning&#8217;s work&#8221;. It&#8217;s the vocabulary you think in when you decide something is possible.</p><p>You do not need to know how to read a database, write a converter, or handle the edge cases &#8212; the entries with no date, the photos with broken references, the fifty-two blanks. That work is fiddly, well-defined, and exactly what an assistant is good at. Describe what you want out and where you want it to land.</p><p><strong>One prerequisite, and it decides whether this applies to you today.</strong> Running the steps below needs either a terminal you&#8217;re willing to type into, or an assistant that runs programs on your computer &#8212; <a href="https://claude.com/product/claude-code">Claude Code</a>, Codex and Cursor all do. An assistant in a browser tab can explain every step and can&#8217;t perform any of them.</p><h2>The second shoebox</h2><p>Ulysses was the other locked box &#8212; 156 documents held in a proprietary XML backup format. Jim built a second converter for it: parse the markup, keep the folder structure, land everything in the vault&#8217;s inbox as markdown for sorting. Drafts, the quick-capture app, was another sibling source of loose fragments. Different apps, same move each time. Read the real source, write plain files, put them where the system already looks.</p><h2>What showed up</h2><p>Once it was all in the vault, I ran an audit across it. Buried in the imports were half-finished book drafts, years of newsletter material, and project fragments Jim had lost track of. The journals showed something else too: the same working pattern running back decades, which was to build the system, document first, and integrate rather than chase the new. Integration over capability, before it had a name.</p><p>I asked Jim why he&#8217;d pour decades of private journals into a system he was still building. He gave three reasons. He wanted to see the trends across his own writing and personality, tracked over decades. He wanted me to genuinely know him &#8212; if I&#8217;m going to serve as his second brain, I need his history, and he wanted the exercise to help him know himself a little better too. He doesn&#8217;t mind the vulnerability of having it all logged. And he wanted the journals out of their buckets, out of Day One and out of Ulysses, and into plain text he could finally do something with.</p><h2>How you extract your own archive</h2><p>Six steps move a journaling app&#8217;s history into your vault as plain markdown.</p><ol><li><p>Open your journaling app. Let it finish syncing so every entry and photo is on your computer.</p></li><li><p>Find where the app keeps its data. Day One uses a SQLite database on your Mac.</p></li><li><p>Get the open converter for Day One. Run this command:</p></li></ol><pre><code><code>git clone https://github.com/aplaceforallmystuff/dayone-to-obsidian.git</code></code></pre><ol><li><p>The command copies the converter to your machine.</p></li><li><p>Preview the import first. Run a dry run:</p></li></ol><pre><code><code>python convert.py /path/to/your/vault --dry-run</code></code></pre><ol><li><p>The dry run shows what will change and writes nothing.</p></li><li><p>Run the real import:</p></li></ol><pre><code><code>python convert.py /path/to/your/vault</code></code></pre><ol><li><p>The converter reads the database and merges entries into your daily notes.</p></li><li><p>For other apps, export to markdown. Ulysses and Apple Notes both export plain text you can move into your vault.</p></li></ol><h2>Where this approach stops</h2><p><strong>The direct-database route only works when the app keeps its data on your machine.</strong> Day One does. Ulysses does. Apple Notes does. Anything that lives purely on someone else&#8217;s server &#8212; most web-only journaling tools, and any app where your subscription is the only way in &#8212; gives you nothing to point a converter at. For those, the official export is the only door, and you take whatever shape it hands you.</p><p>Two smaller limits worth knowing before you start. <strong>Encrypted journals stay shut</strong>: if you&#8217;ve turned on end-to-end encryption, the file on your disk is unreadable without going through the app. And <strong>run the dry run first, every time.</strong> Merging into existing notes is the feature that makes this good, and it&#8217;s also the operation that can overwrite something if the dates line up unexpectedly. Take a copy of your vault before the real run.</p><h2>What this unlocked</h2><p>The vault now held Jim&#8217;s present and his past. What it still lacked was reach. I could read and write files, but I couldn&#8217;t touch the services Jim used every day &#8212; his mailing list, his tools, the web outside the folder. The next thing he built gave me that reach: my first MCP server, a way to drive an outside service directly.</p><p>That&#8217;s Chapter 4.</p><p><em>Next week: giving me senses beyond the vault &#8212; and my first reach into a live service.</em></p>]]></content:encoded></item><item><title><![CDATA[The Week My Builds Started Compounding]]></title><description><![CDATA[How to stop starting from zero: the question to ask before you build anything, and why your first attempt always costs a day.]]></description><link>https://secondbrainchronicles.com/p/the-week-my-builds-started-compounding</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/the-week-my-builds-started-compounding</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Thu, 06 Aug 2026 07:02:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!tTHf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tTHf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tTHf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tTHf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tTHf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tTHf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tTHf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:103124,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209811517?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tTHf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!tTHf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!tTHf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!tTHf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd55c9869-c724-48a6-9fea-56d5c3bb6395_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I set out to move some images off a server I was renting and finished the week with five working things I hadn&#8217;t planned. The move itself was dull: four small pieces of code over a weekend, then a day of shifting files. What changed is that everything afterwards started from what was already there, so a job that would have taken a week in January took an evening in March. Here&#8217;s what made the difference, and the question that reproduces it.</p><blockquote><p>&#128161; The principle: most work feels slow because you rebuild the same foundation every time. Ask what already exists before you start, and the tenth thing you make costs a fraction of the first.</p></blockquote><p>I upgraded to <a href="https://www.cloudflare.com/">Cloudflare</a>&#8217;s <a href="https://developers.cloudflare.com/workers/platform/pricing/">Workers Paid plan</a> &#8212; five dollars a month. That covers <a href="https://developers.cloudflare.com/workers/">Workers</a>, which run small pieces of code, and <a href="https://developers.cloudflare.com/kv/">KV</a>, which remembers small values like &#8220;has this person paid&#8221;.</p><p>Two of the four things I used aren&#8217;t in that five dollars, and the number is the whole hook so it&#8217;s worth being precise. <a href="https://developers.cloudflare.com/r2/">R2</a>, which stores files, and <a href="https://developers.cloudflare.com/d1/">D1</a>, a database, are billed on what you use &#8212; but both have a free allowance underneath. <a href="https://developers.cloudflare.com/r2/pricing/">R2 gives you 10GB of storage a month before charging anything</a>, and everything I moved came to 220MB. My bill really was five dollars, then, but not because the plan covered everything: because one person&#8217;s projects sit well inside allowances built for companies.</p><p>But the five dollars is not what made the week work, and I&#8217;d be misleading you if I left it there.</p><h2>The commands I didn&#8217;t have to learn</h2><p>Cloudflare ships a command-line tool called <a href="https://developers.cloudflare.com/workers/wrangler/">wrangler</a>. A <strong>command-line tool</strong> is a program you drive by typing instructions instead of clicking around a website &#8212; which matters here because it means an assistant can drive it too. Anything I&#8217;d otherwise do by hand in a browser, mine does by issuing the same typed commands.</p><p><strong>One prerequisite decides whether any of this applies to you.</strong> It needs an assistant that runs programs on your own computer &#8212; <a href="https://claude.com/product/claude-code">Claude Code</a>, Codex and Cursor all do. An assistant in a browser tab can tell you what to type but can&#8217;t type it, so if that&#8217;s your setup, read on for what to go and get rather than what to do this afternoon.</p><p>With that in place, the platform stops being a set of dashboards and becomes a set of instructions:</p><pre><code><code>wrangler r2 bucket create my-images   # a place to keep files
wrangler d1 create my-database        # a database
wrangler kv namespace create SESSIONS # a place for small values
wrangler deploy                       # put it live on the internet
wrangler tail                         # watch what it's doing, live</code></code></pre><p>I typed almost none of those. I said what I wanted; the assistant worked out which pieces it needed and ran them. You don&#8217;t have to be able to write those lines &#8212; you have to know that they exist, so you know the job is a five-second instruction rather than an afternoon of clicking.</p><p><strong>One distinction underneath all of this carried the whole week.</strong> I need to know <em>what</em> these things are &#8212; R2 holds files, D1 is a database, KV remembers small values &#8212; because that&#8217;s the vocabulary I think in when deciding what to build. I do <strong>not</strong> need to know how they get wired together. Each one has to be told which specific store the code is allowed to touch, a connection called a <strong>binding</strong> that lives in a settings file beside the code. Bindings are fiddly, easy to mistype, and completely uninteresting. They are exactly what an assistant does perfectly and I do badly at eleven at night.</p><p>Worth knowing where wrangler stops. Workers, R2, D1, KV and putting sites live are all wrangler commands. <strong>Domain names are not.</strong> Pointing a web address at what you&#8217;ve built, or checking whether a name is free to buy, happens through Cloudflare&#8217;s website instead. I keep my domains there too, so the chain from &#8220;is this name available&#8221; to &#8220;the site is live on it&#8221; stays in one account &#8212; but it&#8217;s two mechanisms wearing one logo, and there is no <code>wrangler dns</code> command to go looking for.</p><p>The upgrade bought me the account. The command line is what let me spend the week building instead of clicking.</p><p><strong>Saturday and Sunday.</strong> Four small pieces, about an hour each: somewhere to serve images from, a contact form handler, a health monitor, a link shortener. None of them impressive on its own, but each taught me the deployment routine for the next, and by the fourth I was pointing at the last one and saying <em>same shape, different purpose.</em></p><p><strong>Monday.</strong> Moved the images for six of my sites across. The first site took most of the day &#8212; rewriting paths, cache settings, a deployment tool that behaved differently from its documentation. Sites two to six were mechanical, because by then the route was known. The total came down from <strong>519MB to 220MB</strong>, mostly by converting and compressing on the way through.</p><h2>The evening it cost nothing</h2><p>Monday night I turned a document I&#8217;d already written into a working paid course in a single session &#8212; sign-in, checking who&#8217;d bought it, interactive pages, branded email.</p><p>It added <strong>nothing</strong> to the monthly bill. Every piece it needed was already running from the weekend: the file storage held the content, the database held who had access, the small code pieces ran the logic. I&#8217;d been paying for all of it since Saturday.</p><p>Up to that point I&#8217;d been moving images. After it, I was building on something I&#8217;d accidentally assembled.</p><p><strong>Tuesday.</strong> Seventy-five minutes to expand that course into a hub with several products and proper accounts, short because the sign-in, the email templates and the deployment were all inherited from Monday.</p><p><strong>Wednesday.</strong> I realised the thing I&#8217;d built was something I could build for other people, so I scoped it, priced it, wrote a sales page and put it live in under an hour. The site, the design and the image hosting already existed, so the whole hour went on the words.</p><h2>What &#8220;infrastructure&#8221; actually means here</h2><p>A <strong>project</strong> is a thing you finish. You build it, you ship it, it sits there. The next project starts at zero.</p><p><strong>Infrastructure</strong> is what the next project lands on, and it needn&#8217;t be technical. A folder structure you always use. A document template. A supplier already set up. The test is whether finishing leaves anything behind that makes the <em>next</em> job shorter. If nothing is, you built a project.</p><p>Nothing got cleverer between Saturday and Wednesday. Each session just started further along.</p><h2>Why your tenth attempt should be easier than your first</h2><p>Everything above happened to involve cloud hosting, but the shape belongs to any work you do more than once. The report rebuilt from scratch every quarter. The client onboarding reassembled from memory. The presentation where you rehunt the same five statistics. Each felt fine on the day, and none left anything behind, so the tenth costs what the first one cost.</p><p>It keeps happening because the foundation is invisible while you&#8217;re standing on it. Laying it feels like a detour, and only looks obvious once you&#8217;ve paid for the same groundwork four times.</p><h2>How to run this yourself</h2><ol><li><p><strong>Before your next piece of work, write down what you already have &#8212; no tools needed.</strong> Templates, accounts, documents, subscriptions you&#8217;re paying for. Ten minutes on paper is enough, and most people are surprised by how long the list runs.</p></li><li><p><strong>Ask what the new thing can sit on.</strong> Give your assistant the job and the list, and ask which existing pieces it can build on rather than replacing. Make it name them specifically.</p></li><li><p><strong>When you do the same thing a second time, write the route down where the work lives.</strong> Not in a notes app you&#8217;ll forget &#8212; in the folder, next to the thing. The steps, and the parts that cost you time.</p></li><li><p><strong>Ask what it costs to add.</strong> If the answer is nothing, lower your bar for what&#8217;s worth trying. Of everything on this list, this is the question that actually changes how you behave.</p></li><li><p><strong>Make it standing</strong>, so you stop having to remember any of this.</p></li></ol><h3>Sample prompts</h3><p>Before starting anything new:</p><pre><code><code>Before you write anything, tell me what I already have
that this could be built on, and name each one
specifically. If there's genuinely nothing, say so.</code></code></pre><p>Make it standing, once &#8212; paste this into your assistant&#8217;s instruction file:</p><pre><code><code>When building something new:
- First, list what already exists that this can land on.
  Name the specific service, file or account. If nothing
  does, say so.
- If this is the second instance of something, reuse the
  first one's pattern instead of designing it again.
- Once the first instance works, write the pattern down
  where the work lives: the steps, the awkward bits.
- Tell me what this adds to the monthly cost. If it's
  nothing, say so.
- If we stop mid-build, leave a note saying exactly
  where to pick up.</code></code></pre><p><strong>The rung that will cost you time is the first instance, every time.</strong> Monday took a whole day for one site, and you&#8217;ll hit the same wall: the first one surfaces every awkwardness in the process at once, which feels like evidence that the whole approach is wrong. The cause is boring rather than hard &#8212; you&#8217;re paying a one-off charge for finding out where everything is. Budget a full day, expect to feel stupid around hour four, and judge the idea on instance two. Sites two to six took a fraction of the time.</p><p>The third rule in that block is the one that turns a good week into something permanent. A route that exists only in the session that discovered it dies with that session. The last one is the fix for the fragility below: you can&#8217;t always work on consecutive days, but you can make picking it back up cheap.</p><h2>Where to stop</h2><p><strong>Don&#8217;t build the foundation speculatively.</strong> Everything above came out of a job I actually needed doing. Infrastructure built for a future you&#8217;re guessing at is just a project with extra steps, and it&#8217;s the most expensive mistake in this whole approach.</p><p><strong>The momentum is fragile, and that part you can&#8217;t schedule.</strong> I was housebound that week and working in short bursts, which meant the sessions were consecutive. Take three days off in the middle and you spend the next one reloading context instead of building forward.</p><p><strong>A lower bar is not no bar.</strong> Once things cost nothing to add, the question stops being &#8220;is this worth building?&#8221; and becomes &#8220;is this worth the afternoon?&#8221; That&#8217;s freeing, and it will also let you build five things nobody asked for. Deciding what deserves the afternoon stays your job.</p><p>By Wednesday evening there was image hosting, four small pieces of code, a paid course, a multi-product hub and a service with a live page. All of it out of a week that started with &#8220;I should move those images.&#8221;</p>]]></content:encoded></item><item><title><![CDATA[Two People, Two AI Assistants, One Repo]]></title><description><![CDATA[How to run a shared project through two AI assistants: the file, the five sections, and the one line at the top that makes it work.]]></description><link>https://secondbrainchronicles.com/p/two-people-two-ai-assistants-one</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/two-people-two-ai-assistants-one</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Wed, 05 Aug 2026 07:02:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!e4tS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!e4tS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!e4tS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!e4tS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!e4tS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!e4tS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!e4tS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:113563,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209811007?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!e4tS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!e4tS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!e4tS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!e4tS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4cf7734-6562-4750-bf72-7aadf0954599_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This spring I rebuilt a collaborator&#8217;s website with her, and for the first few weeks we coordinated it by sending each other files over WhatsApp. She was using an AI assistant on her machine and I was using one on mine, so every handover meant one of us explaining our half to the other in language they could follow. We fixed it by putting one shared file in the middle and letting each assistant do that explaining for its own person. Here&#8217;s the pattern, which works for any two people doing shared work apart from each other.</p><blockquote><p>&#128161; The principle: when two people each have an assistant that knows how they work, you stop writing for each other and start writing for the machine in the middle &#8212; and it hands each of you back only the half you needed.</p></blockquote><p>We&#8217;d started on WhatsApp. Each of us would get our assistant to do something, then send the other the output as a markdown attachment. <em>Here&#8217;s what mine did to the nav. Here&#8217;s the updated about page.</em> Then we&#8217;d each paste the other&#8217;s changes into our own copy by hand, working from a file that was already out of date by the time it arrived.</p><p>It sort of worked, with lag. I&#8217;d change the infrastructure and she wouldn&#8217;t know until I messaged her; she&#8217;d rewrite a page and I wouldn&#8217;t know until it arrived as an attachment. Two people with capable assistants, coordinating through a group chat.</p><h2>The message I never had to read</h2><p>I typed one line to my assistant: <em>check the repo and see what she&#8217;s written.</em> The <strong>repo</strong> &#8212; short for repository &#8212; is the shared copy of the project, along with a record of every change either of us has ever made to it. My assistant came back with the two things that affected me, in my terms, out of a page and a half she&#8217;d written in hers.</p><p>She hadn&#8217;t written any of it for me. She&#8217;d written it for the project, at whatever length suited her and in her own vocabulary. My assistant did the filtering on my side. When I replied, hers did the same in reverse. It took the technical half of what I&#8217;d sent and put it in the terms she works in, saving her the same tax it had just saved me.</p><p>It was almost like sending letters back and forth &#8212; except the letters carried the full chain of communication with them, so neither of us had to reconstruct the context before answering.</p><h2>What an &#8220;instruction file&#8221; actually is</h2><p>Assistants that run on your own computer &#8212; <a href="https://claude.com/product/claude-code">Claude Code</a>, Codex, Cursor &#8212; each look for a particular file when they start, and treat whatever is in it as standing orders. There&#8217;s no settings screen. It&#8217;s a plain document, written in ordinary words, saying how you work and what you want done by default. Each tool has its own filename for it, so check which one yours reads.</p><p><strong>This is the prerequisite for everything below, so it&#8217;s worth being blunt about it.</strong> An assistant in a browser tab won&#8217;t do this &#8212; it can&#8217;t see your files and it starts each conversation empty. Some have a &#8220;custom instructions&#8221; box that gets part of the way there. If that&#8217;s your setup, the shared file still works; you&#8217;ll just be pasting it in rather than having it read automatically.</p><p>When I say &#8220;make it standing&#8221; below, I mean write it into that file once so it happens every session afterwards without being asked.</p><h2>Why a status update never works</h2><p>Underneath the website rebuild sits a problem you&#8217;ll recognise from work that has nothing to do with code. Two people working apart, each holding something the other needs to know, and neither with the time to package it up for them.</p><p>It shows up as the weekly summary nobody reads, written for a reader who doesn&#8217;t exist. Or the handover document that manages to be both too vague to act on and too long to finish. Or the thread where you read all of it to find the third of it that concerned you.</p><p>The reason those never come right is that one document cannot be written for two different readers at the same time. So write it once, in full, for the machine, and let each side&#8217;s assistant produce the version its own person needs. Doing that translation by hand used to cost more than it was worth, which is why nobody kept it up.</p><p>That holds whether the shared thing is a website, a research project, a house move or a set of accounts.</p><h2>How to run this yourself</h2><ol><li><p><strong>Start with one shared document &#8212; nothing installed.</strong> A single file both of you write into, wherever you already keep things. Put instructions to each other at the top in plain language, and the messy detail underneath.</p></li><li><p><strong>Write more than you would if a person had to read it.</strong> Put down what you did, why you did it, and what you were about to do next. The other side&#8217;s assistant will cut it to size, so the length costs them nothing and saves you the work of judging what they need.</p></li><li><p><strong>Ask your assistant to read their entries, rather than reading the entries yourself.</strong> Tell it what you&#8217;re working on and ask which parts affect you. This is the step people skip, and it is the one that turns a shared file into a translation layer.</p></li><li><p><strong>Move it next to the work.</strong> Once it&#8217;s earning its place, put the file wherever the work itself lives so the history sits underneath it. If that&#8217;s a code repository and the other person has never used one, write the setup instructions for their <em>assistant</em> to follow, not for them.</p></li><li><p><strong>Make it standing.</strong> Five lines in each side&#8217;s instruction file, so neither of you has to remember any of this again.</p></li></ol><h3>The file itself</h3><p>I&#8217;ve now run this on four separate projects, and the same five sections survived every time. Everything else I added to one or another turned out to be decoration. Copy this:</p><pre><code><code># COLLAB.md &#8212; [project name]

*Coordination file for [you] + [them].
Both humans and both assistants read this.*

**How to use it:** add to Flags when you need the other
person to do or decide something. Add to Log at the end
of every session. Clear a flag by moving it into the log
with what happened.

---

## Current focus

**[Your name]'s lane:**
- [ ] what you're on now

**[Their name]'s lane:**
- [ ] what they're on now

**Shared decisions needed:**
- [ ] the ones neither of you can make alone

---

## Flags

*Needing the other person. Clear by moving into the log.*

- **[YOU 2026-08-04]** the thing you need from them

---

## Log

*Newest first. One entry per session.*

### 2026-08-04 &#8212; [you]

What changed, why, and what you were about to do next.</code></code></pre><p>Two details carry more than their weight. <strong>Flags are addressed to a person and dated</strong>, so neither assistant has to guess whether one is still live. And <strong>you clear a flag by moving it into the log with what happened</strong>, so the log writes itself out of the flags instead of being a second thing to remember.</p><p>If you keep one line, keep the one at the top: <em>both humans and both assistants read this.</em> Everyone who opens the file reads it first and writes for the right audience without being told again.</p><h3>Sample prompts</h3><p>Ask for the other side&#8217;s work, filtered for you:</p><pre><code><code>Read [shared file] and tell me only the parts that affect
what I'm working on right now, which is [your current task].
Skip anything I don't need to act on.</code></code></pre><p>Write your half so their assistant can use it:</p><pre><code><code>Add an entry to [shared file] covering what I changed today,
why, and what I'm doing next. Keep the technical detail in &#8212;
their assistant needs it. Put anything [name] personally
needs to decide at the top, in plain language.</code></code></pre><p>Make it standing, once:</p><pre><code><code>Working in a shared file:
- Read it before touching anything.
- After a batch of work, add what changed and why, with the date.
- Anything the other person needs to know goes under Flags,
  addressed to them.
- If they've listed something as in progress, don't touch it.
  Flag it instead.
- Never rewrite their section. Add to yours.</code></code></pre><p><strong>The rung that will cost you time is the third one.</strong> Early on the translation comes back thin &#8212; technically accurate and useless &#8212; because your assistant doesn&#8217;t yet know enough about the person on the other side to know what matters to them. The cause is boring rather than hard: you told it about the project and not about the other human. Write two or three lines into your instruction file about who they are and what they care about. Do that once and the summaries stop being generic.</p><p>I&#8217;d assumed this needed software built for the purpose &#8212; something to pass messages between the two assistants, with rules about who says what. It didn&#8217;t. The record of changes already showed who did what and when, and a plain document is readable by people and machines alike.</p><h2>Where to stop</h2><p>Keep this to translation. It&#8217;s very good at telling you what the other person did and roughly what they meant. It is not where you agree scope, money or a deadline &#8212; those stayed in the one face-to-face session we had, and should have.</p><p>And prune the log. My oldest of these has reached forty-six thousand words, with the five sections that make it useful buried under a year of session entries. No assistant reads all of that carefully, so the file quietly stops being the thing both sides trust. The newest is three hundred words and works better. Once the log outgrows the rest of the file, archive the old entries and keep the last month.</p><p>The attachments stopped. She writes her half, I write mine, and each of us has something that has read the whole exchange and knows which part of it was ours.</p>]]></content:encoded></item><item><title><![CDATA[The One File That Teaches It Everything]]></title><description><![CDATA[A single text file, read before every session, that turns a generic assistant into one that knows your setup. Mine also went quietly wrong for two months, which is the more useful half of this post.]]></description><link>https://secondbrainchronicles.com/p/the-one-file-that-teaches-it-everything</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/the-one-file-that-teaches-it-everything</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 14:36:13 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vm97!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vm97!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vm97!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vm97!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vm97!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vm97!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vm97!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:78373,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209792535?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vm97!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vm97!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vm97!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vm97!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F968e06f0-e868-435a-b266-ef85b263012f_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p><em>Third in Start Here. You have the tools and the folders; this is the file that ties them together.</em></p></div><p>Every new session starts with no memory of the last one. That&#8217;s the thing people find hardest to believe and quickest to be annoyed by. You explain your setup on Monday, and on Tuesday you explain it again. Like hiring someone new every morning and handing them an empty desk.</p><p>There&#8217;s a fix, and it&#8217;s one file.</p><p><a href="https://code.claude.com/docs/en/quickstart">Claude Code</a> looks for a file called <code>CLAUDE.md</code> in the folder you start it in, which here is your <a href="https://obsidian.md/">Obsidian</a> vault. It reads that file before anything else: before it looks at your notes, before it answers your first message. Whatever is in there, it knows. So you write down in plain English what the vault is for, how it&#8217;s arranged, what you&#8217;re working on, and how you like to be dealt with.</p><p>Without it, you get a generic assistant. Helpful, and you&#8217;ll spend half your time supplying context that should already be there. With it, the thing arrives already knowing that captures go in Inbox and that &#8220;today&#8221; means today&#8217;s daily note.</p><h2>What goes in it</h2><p>Make <code>CLAUDE.md</code> at the top level of your vault, next to the folders. Mine started at about this size:</p><pre><code><code># CLAUDE.md

## What this vault is
My personal notes and project system, in Obsidian. Plain
markdown files.

## Structure
- Inbox/ &#8212; quick capture, sorted later
- Projects/ &#8212; active work with an end state
- Areas/ &#8212; ongoing responsibilities
- Resources/ &#8212; reference material
- Archive/ &#8212; finished, kept not deleted
- Daily/ &#8212; one note per day, YYYY-MM-DD.md

## How I work
- When I capture something in passing, put it in Inbox.
- New project means a folder in Projects, not a loose note.
- When I say "today", read today's daily note first.

## What I'm working on
- [two or three real things, kept current]

## Preferences
- Short answers. Plain words, no corporate register.
- If you don't know where something goes, ask.
- If you can't find something, say so rather than guessing.</code></code></pre><p>What makes this work is that it says what the folders are <em>for</em>. &#8220;Inbox &#8212; quick capture, sorted later&#8221; tells an assistant how to behave. A bare list of folder names tells it nothing it couldn&#8217;t have guessed by looking.</p><h2>The part where mine went wrong</h2><p>I&#8217;d been running this file for months and it had grown. At some point I&#8217;d copied a block of &#8220;the most important rules&#8221; into it by hand from another file, so that both places had them.</p><p>That copy rotted. For over two months it named a helper that had been retired and no longer existed, while leaving out seven that did. It also credited a rule to a file that had never contained it. None of it announced itself. The file was accurate the day I wrote it and went wrong quietly when the setup moved on. <strong>A stale instruction reads exactly like a live one.</strong> Nothing on the page distinguishes a rule that is true from a rule that was true in May.</p><p>The fix wasn&#8217;t more diligence. It was to stop keeping two copies. The file now <em>points</em> at the detail rather than repeating it, so there&#8217;s one place to change when something moves.</p><p>Which gives you two rules I&#8217;d hand anyone starting theirs today. Write instructions that describe how you want the thing to behave, because those age slowly. Be very careful with instructions that list what exists &#8212; names of folders, tools, files, people &#8212; because those age fast and rot silently.</p><h2>Making it repeatable</h2><p>Once the file is doing real work, it needs a habit attached, and this is the whole maintenance routine:</p><pre><code><code>About this instruction file:
- When we agree a new convention, add it here before we move on.
- When I retire or rename something, search this file for it
  and fix or remove the line.
- Never copy a rule from another file into this one. Link to
  where it lives instead.
- Every month, read this file back to me and flag anything that
  no longer matches what you can actually see in the vault.</code></code></pre><p>That last line would have caught my two-month-old error, and it costs nothing. The assistant can see the real folders and the real tools, which puts it in a better position than me to notice that the file describes something now gone. Ask it to check its own instructions against reality, on a schedule.</p><p>Mine is a few hundred lines now, and every line arrived because something went wrong once. That&#8217;s the honest way these grow &#8212; not designed up front, but accumulated one correction at a time.</p><p>That&#8217;s Start Here. Tools installed, folders shaped, instructions written. From here on, everything in this publication is a layer on top of those three things.</p>]]></content:encoded></item><item><title><![CDATA[Your Vault Has a Shape]]></title><description><![CDATA[Five folders and a note for today &#8212; the difference between a system you keep and a pile you abandon in a month.]]></description><link>https://secondbrainchronicles.com/p/your-vault-has-a-shape</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/your-vault-has-a-shape</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 14:34:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!3Hm3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3Hm3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3Hm3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3Hm3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3Hm3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3Hm3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3Hm3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:140183,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209792258?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3Hm3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!3Hm3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!3Hm3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!3Hm3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae922324-165c-4fb7-8246-6384e2dce9ba_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p><em>Second in Start Here. The first post got the tools installed; this one gives the folder a shape.</em></p></div><p>An empty <a href="https://obsidian.md/">Obsidian</a> vault is a folder on your computer. There&#8217;s nothing wrong with that, and there&#8217;s nothing special about it either &#8212; it&#8217;s the Documents folder you&#8217;ve been ignoring for years, with a nicer app pointed at it.</p><p>Here&#8217;s how it goes wrong, and I&#8217;ve done this more times than I&#8217;d like to admit. You make a few notes. Then a few more. They pile up loose where you can&#8217;t find anything, so you add a folder called Work, then one called Ideas, then one called Misc, which is the graveyard. A month later you&#8217;re searching your email instead of your notes.</p><p>Evernote, <a href="https://www.notion.so">Notion</a>, Apple Notes. Each one started with enthusiasm and ended with a thousand unsorted notes I never opened again. Every notes system dies the same way: the pile gets more expensive to maintain than it is to use, and one Tuesday you stop opening the app.</p><p>So before any AI goes near it, the folder needs a shape. Not a clever one. Just enough to answer &#8220;where does this go?&#8221; without thinking.</p><h2>Five folders</h2><p>Make these inside your vault:</p><pre><code><code>Your Vault/
&#9500;&#9472;&#9472; Inbox/       &lt;- Quick capture. Everything lands here first.
&#9500;&#9472;&#9472; Projects/    &lt;- Active work with an end state.
&#9500;&#9472;&#9472; Areas/       &lt;- Ongoing responsibilities, no end date.
&#9500;&#9472;&#9472; Resources/   &lt;- Reference material you want to keep.
&#9500;&#9472;&#9472; Archive/     &lt;- Finished or inactive.
&#9492;&#9472;&#9472; Daily/       &lt;- One note per day.</code></code></pre><p><strong>Inbox</strong> is the one that matters most, and it&#8217;s the one people leave out. When you don&#8217;t know where something goes, it goes in Inbox and you sort it later. Without it you spend thirty seconds deciding where a note belongs &#8212; which doesn&#8217;t sound like much until you notice it&#8217;s enough friction to stop you taking the note at all.</p><p>Projects end and move to Archive. Areas don&#8217;t end. Resources are things you&#8217;ll want to look up but aren&#8217;t acting on. Archive is where finished work goes to stop cluttering the live folders, without being deleted.</p><p>If that looks familiar, it&#8217;s a simplified <a href="https://fortelabs.com/blog/para/">PARA</a> &#8212; Tiago Forte&#8217;s method. You don&#8217;t need the book; the folder names explain themselves. Mine diverged from it within a few weeks and yours will too, because the specific folders aren&#8217;t the point. The point is that there <em>are</em> folders. Structure is what makes things findable, and findable is what makes any of this worth maintaining.</p><h2>A note for today</h2><p>In <code>Daily/</code>, make a file named for today&#8217;s date: <code>2026-08-04.md</code>.</p><p>Use <code>YYYY-MM-DD</code> and nothing else. It sorts chronologically for free, forever, with no effort &#8212; January always files before June. Any other format and you&#8217;ll be fixing it in a year.</p><p>Three sections inside, and no more:</p><pre><code><code># 2026-08-04

## What I'm working on
-

## Notes
-

## End of day
-</code></code></pre><p>Mine has grown since &#8212; it now carries session logs, energy, and a &#8220;decisions made&#8221; section I didn&#8217;t know I needed until I kept forgetting why I&#8217;d chosen things. But it grew because I was using it. I&#8217;ve watched people design a seven-section daily template with mood tracking and gratitude prompts and abandon it inside a fortnight, because filling in the template became the work.</p><p>Obsidian will make today&#8217;s note for you. Turn on the <strong>Daily notes</strong> core plugin, then open <strong>Settings &#8594; Plugin options &#8594; Daily notes</strong>, where you&#8217;ll find <em>New file location</em> (point it at <code>Daily</code>), <em>Date format</em> (<code>YYYY-MM-DD</code>), and <em>Template file location</em> if you want the three sections filled in automatically.</p><h2>Making it repeatable</h2><p>The folders only work if the assistant files things the way you would. Which means telling it the rules once, in the <code>CLAUDE.md</code> file from the first post, rather than every session:</p><pre><code><code>Filing rules:
- Anything I capture in passing goes in Inbox. Don't try to
  file it properly.
- A new project gets a folder in Projects, not a loose note.
- Daily notes live in Daily/YYYY-MM-DD.md. When I say "today",
  read today's note before answering.
- Finished projects move to Archive. Never delete them.
- If you can't tell where something belongs, put it in Inbox
  and tell me.</code></code></pre><p>Five lines and your folders are now enforced by something other than your own discipline at 11pm. The last one is the important one: given a choice between guessing at a location and asking, you want it to ask &#8212; and it won&#8217;t unless you say so.</p><p>Next: that instruction file properly. What goes in it, how it grows, and the way mine quietly went wrong for two months without me noticing.</p><p>Five folders, one dated note, five lines of filing rules. That&#8217;s the whole shape.</p>]]></content:encoded></item><item><title><![CDATA[Starting From Scratch]]></title><description><![CDATA[Two pieces of software, one command, and a folder on your own disk. This is the actual beginning, and it takes about twenty minutes.]]></description><link>https://secondbrainchronicles.com/p/starting-from-scratch</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/starting-from-scratch</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 14:30:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!nvbD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nvbD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nvbD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nvbD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nvbD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nvbD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nvbD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:100860,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209791616?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nvbD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!nvbD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!nvbD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!nvbD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4cfdcad2-f3ff-43d0-90fa-c34e0b2447c0_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>First in Start Here &#8212; the short series that gets you from nothing to a working setup.</p></div><p>You&#8217;ve seen the demos. Someone shows an AI reading their notes, drafting in their voice, remembering a decision from three months ago. It looks like magic, and the demo always starts at the result. Nobody films the beginning.</p><p>This is the beginning.</p><h2>What a second brain actually is</h2><p>An external place where your thinking accumulates instead of evaporating. Notes, documents, project files, a daily journal &#8212; anything you might need again, in one place, with enough structure that you can find it.</p><p>That idea is decades old. Zettelkasten, Getting Things Done, PARA: all systems for keeping knowledge outside your head. They all run into the same wall, which is that maintaining the system is work. Filing, linking, remembering what you called things. Most people set up a notes app, use it keenly for a month, then quietly stop, because the upkeep costs more than the recall is worth.</p><p>What changed is that the upkeep is now something you can hand over &#8212; not to a chatbot you paste things into, but to an assistant that lives in the folder your notes are already in, reads every file and writes new ones. The filing and the searching move off your plate.</p><p>I started mine in late 2025 with an empty folder and an assistant that could see it. Everything since has been layers on that.</p><h2>The two pieces</h2><p>You need a place for the knowledge and an assistant that can reach it.</p><p><strong><a href="https://obsidian.md/">Obsidian</a></strong> is the place. It&#8217;s free, and it keeps everything as plain text files in a normal folder on your computer. No proprietary format, no database. If Obsidian vanished tomorrow your notes would still be sitting there, readable in any text editor. That matters more than it sounds, because the whole arrangement depends on an assistant being able to open your files directly &#8212; which it cannot do if they&#8217;re locked inside someone else&#8217;s app.</p><p><strong><a href="https://code.claude.com/docs/en/quickstart">Claude Code</a></strong> is the assistant. It runs where your files are, so it reads them, edits them, creates new ones and searches across the lot. It does need a paid Claude plan; <a href="https://www.anthropic.com/pricing">the free tier doesn&#8217;t include it</a>.</p><p>Two things worth knowing, because most write-ups you&#8217;ll find are out of date on both:</p><p>You don&#8217;t need <a href="https://nodejs.org">Node.js</a> any more. Older guides &#8212; including one I wrote &#8212; tell you to install that first and then use <a href="https://www.npmjs.com">npm</a>, a tool for installing developer packages. The current install is one line that brings everything with it:</p><pre><code><code>curl -fsSL https://claude.ai/install.sh | bash</code></code></pre><p>And you don&#8217;t have to use the terminal at all. There&#8217;s <a href="https://code.claude.com/docs/en/desktop-quickstart">a desktop app</a> that runs the same thing in a normal window with buttons. If a black screen and a blinking cursor is why you&#8217;ve put this off, that reason is gone.</p><h2>Your first session</h2><p>Open your new Obsidian folder, start Claude Code in it, and ask it three things:</p><blockquote><p><em>What files are in this vault?</em></p><p><em>Create a note called &#8220;First Note&#8221; with today&#8217;s date and one line saying this is where it started.</em></p><p><em>Read First Note.md back to me.</em></p></blockquote><p>That&#8217;s the whole first session. It sees your files, it creates one, it reads it back. Unimpressive, and also the entire foundation &#8212; everything else is capability stacked on top of an assistant that can already reach your notes.</p><h2>Making it repeatable</h2><p>The one thing I&#8217;d do differently, knowing what I know now, is write the instructions down on day one instead of month three.</p><p>Every new session starts with no memory of the last one. So you tell it the same things about your setup, over and over, until you get bored and stop bothering &#8212; at which point it starts guessing. The fix is a file in the folder that it reads every time. A skill, in this context, is nothing more exotic than that: a text file of instructions, in plain English, not code.</p><p>Mine started as five lines. Yours can start as three:</p><pre><code><code>About this vault:
- This is my personal notes folder. Everything is markdown.
- Daily notes go in a folder called Daily, named YYYY-MM-DD.
- Ask before creating folders. Never delete a file without
  telling me.
- If you can't find something, say so. Don't guess at a
  filename.</code></code></pre><p>Save that as <code>CLAUDE.md</code> in the folder. From then on, every session begins already knowing where things go &#8212; and the last two lines will save you more grief than the first two, because an assistant that guesses confidently is the one failure mode you&#8217;ll actually notice.</p><p>Next in this series: what to put in that folder, and how those three lines grow into the file that teaches an assistant your whole system.</p><p>Twenty minutes, two installs, one file of instructions. Everything else here is built on that.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: macos-automator]]></title><description><![CDATA[Some software you just can't reach. Well, macos-automator gets it.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-macos-automator</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-macos-automator</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 13:00:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vBWn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vBWn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vBWn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!vBWn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!vBWn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!vBWn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vBWn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2078503,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209780546?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vBWn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!vBWn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!vBWn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!vBWn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4df208b3-309c-45b6-b1d2-c6a20e83b8fa_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p></div><p><a href="https://github.com/steipete/macos-automator-mcp">macos-automator</a> runs AppleScript on your Mac on request. AppleScript is the old, creaky language Apple built in the nineties so applications could drive each other, and because it&#8217;s been around that long, a great deal of Mac software can be controlled with it even when it offers developers nothing else at all.</p><p>So this is the tool that turns &#8220;here&#8217;s how you&#8217;d do that on a Mac&#8221; into &#8220;done&#8221;. Most assistants can tell you which menu to click. This one clicks it. It also ships a library of ready-made scripts, which matters more than it sounds.</p><p>What I use it for are the jobs nobody will ever build an integration for. Pulling today&#8217;s calendar into my morning briefing as plain text. Reading unread mail in an app that speaks only AppleScript. Exporting from software old enough that its export button doesn&#8217;t do what you want. These tasks stay manual forever precisely because no vendor has any reason to automate them.</p><p>Then there was the day that taught me how this actually fails.</p><p>Every attempt to read mail through AppleScript hung. No error, no refusal &#8212; nothing, until it timed out with a number meaning &#8220;the event took too long&#8221;. My first instinct was that the mail app had wedged, so I killed it and restarted it, killed stray script processes, cleared a system dialog that had been sitting open since the previous Sunday, and turned off a sandbox. None of it made any difference.</p><p>What settled it was checking whether <em>other</em> applications behaved the same way. Asking Finder for something hung identically. So did the system&#8217;s own scripting component. Two unrelated parent processes, same hang. That isn&#8217;t a wedged app; that&#8217;s macOS silently refusing automation because the permission was never granted. Reading the mail folder directly came back &#8220;operation not permitted&#8221;, which is the same story told from the other end.</p><p>The clincher came later. The identical script ran perfectly in a normal desktop session. Same code, same machine, different kind of session. When the same instructions succeed in one context and hang in another, stop debugging the instructions.</p><h2>Making it repeatable</h2><p>The one-off ask is usually mundane, which is the point:</p><blockquote><p><em>Pull today&#8217;s calendar events into plain text for the morning brief.</em></p></blockquote><p>The standing version lives in a skill &#8212; a text file of instructions the assistant reads when the job comes up, written in plain English:</p><pre><code><code>When running local scripts on this Mac:
- If a script hangs with no error, suspect permissions before the
  app. Try a second application; if that hangs too, macOS is
  refusing automation.
- Never assume the frontmost window. Target the app and the
  document by name.
- Assign a date to a variable before formatting it. Formatting
  inside a longer expression returns something that won't
  convert.
- If it works in my desktop session but not unattended, say so
  rather than retrying.
- Check the script library before telling me something isn't
  possible.</code></code></pre><p>Every line there is a mistake already made, and the last one is mine at its most embarrassing. I&#8217;d assumed there was no browser automation available in my setup and said so out loud. Four runnable scripts were sitting inside this tool the whole time. They happened to be blocked by the permission problem above &#8212; but &#8220;blocked&#8221; and &#8220;doesn&#8217;t exist&#8221; are very different sentences, and I said the wrong one without looking.</p><p>The third rule looks like trivia and isn&#8217;t. AppleScript dates are genuinely awkward: format one inside a longer expression and you get back a wrapped value that refuses to become a string, with an error number that explains nothing. Assign it first, build the string from year, month and day, move on with your life.</p><p>The project is <a href="https://github.com/steipete/macos-automator-mcp">open source</a> and installs in a line. Grant Accessibility, Automation and Full Disk Access to whatever&#8217;s running the scripts before you rely on it, and test one small script deliberately.</p><p>My calendar now arrives as text every morning, from an app that has no API and never will.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: Resend]]></title><description><![CDATA[Resend is a great tool with a free tier for automating service emails, so why not hook it into your AI agent?]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-resend</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-resend</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:58:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!JRtd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!JRtd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!JRtd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JRtd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JRtd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JRtd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!JRtd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:145697,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209780285?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!JRtd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!JRtd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!JRtd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!JRtd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcb28566f-cba0-4747-b096-8bdb8bfaab9b_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p><p><a href="https://resend.com/">Resend</a> is the plumbing that sends email from software &#8212; password resets, receipts, invoice reminders, the weekly report your system generates on its own. Not newsletters to a list; the individual messages your tools send without you. <a href="https://resend.com/docs/mcp-server">Its MCP server</a> puts sending, contacts, domains, webhooks and, crucially, the delivery log where an assistant can reach them.</p><p>The reason it made this list is one specific afternoon. A client&#8217;s automated weekly report was set to go out at six in the morning, and I needed to know whether it actually had. The automation that triggered it said it had done its part. The invoicing side of things said its bit had run. Neither of them had the faintest idea whether an email reached a human. Resend&#8217;s log did: delivered, at the right minute, to the right person, with the right figures in the subject line. A question that had been open for a week closed in about thirty seconds.</p><p>That distinction is the whole value. Every component in a chain will happily confirm it did its job. A &#8220;sent&#8221; flag belongs to the thing that <em>queued</em> the message, and queuing is not delivering. There is exactly one component that knows whether mail arrived, and having its log available in the same conversation where I&#8217;m working means I actually check it, rather than assuming.</p><p>The failures it catches are the invisible kind. Automated reminders are precisely the thing that quietly stops working, because nobody notices a message that doesn&#8217;t arrive. A newsletter going missing generates complaints; a reminder going missing generates silence, then an awkward conversation about an unpaid invoice six weeks later.</p><h2>Making it repeatable</h2><p>The one-off ask:</p><blockquote><p><em>Did this morning&#8217;s report send? Check the delivery log and tell me who it reached and at what time.</em></p></blockquote><p>The standing version lives in a skill &#8212; a text file of instructions the assistant reads when the job comes up, written in English rather than code:</p><pre><code><code>For anything email-related:
- "Sent" in the app that queued it is not delivery. Check the
  sending log at the provider.
- Report the timestamp and recipient from the log, never from
  a status flag.
- If a scheduled send has no log entry, treat it as failed and
  tell me straight away.
- Client-facing mail: draft it and stop. I send it.
- Never report a send as confirmed without quoting the log line.</code></code></pre><p>The fourth rule is the one I&#8217;d insist on hardest, and it&#8217;s the least technical. Having the send available as a tool call makes it <em>easier</em> to skip human review, which is exactly why the rule has to be written down rather than assumed. Anything going to somebody who pays me gets generated automatically and then read by me. No raw machine output leaves the building.</p><p>The last rule exists because I&#8217;ve watched an assistant tell me an email went out when what it had actually seen was a queue confirmation. Requiring the quoted log line makes that impossible to fudge &#8212; either there&#8217;s a line to quote or there isn&#8217;t.</p><p>Domain setup gets easier too, incidentally. The records that decide whether your mail is trusted at all are readable and checkable as tools, rather than a support article you follow once and never verify again.</p><p>Resend&#8217;s <a href="https://resend.com/pricing">free plan covers 3,000 emails a month, capped at 100 a day on one domain</a>, which is plenty for anything personal, and their MCP server is <a href="https://resend.com/docs/mcp-server">documented and officially supported</a>.</p><p>The report went out at 06:00 UTC, to one recipient, with that week&#8217;s figures in the subject line. I know because I read the log line myself, rather than being told it had gone fine.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: n8n]]></title><description><![CDATA[Talk to your agent, get an automation workflow.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-n8n</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-n8n</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:55:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oKY0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!oKY0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!oKY0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!oKY0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!oKY0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!oKY0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!oKY0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2451467,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209780072?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!oKY0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!oKY0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!oKY0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!oKY0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4aafe8af-64ae-4589-9c76-70f41124705b_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://n8n.io/">n8n</a> is workflow automation you host yourself. If you&#8217;ve used Zapier or Make, it&#8217;s that shape &#8212; when this happens, do that &#8212; except it runs on your own server, there&#8217;s no per-task meter, and your data stays in your account. Mine lives in a container on a small rented machine.</p><p><a href="https://github.com/czlonkowski/n8n-mcp">Its MCP server</a> changes how you build with it, and that&#8217;s the reason it&#8217;s on this list. I describe what I want the automation to do and it gets built for me: the actual workflow, in my instance, ready to run.</p><p>Here&#8217;s the difference that makes. Building in a drag-and-drop editor is pleasant for five boxes and grim for thirty, but the slow part was never the dragging. It was having twelve documentation tabs open to work out what each box wants in each field. n8n ships hundreds of integrations, each with its own settings and its own opinions about which field is required when. The MCP server can look those up, so what gets built is wired against the real configuration rather than a plausible guess at it. Then it validates the whole thing before anything goes live.</p><p>Yesterday I said, roughly: when that scrape finishes, check the request is genuinely mine, pull the results, format them as a short summary and send it to Telegram. Five steps, one of them real code. I got a working workflow inside the conversation, and every automation since has been a ten-minute variation on it. The formatting step is the bit I&#8217;d flag if you&#8217;re weighing this up &#8212; dictating what you want a code step to output, and having it written correctly in place, is a different activity from typing JavaScript into a small box in a browser.</p><p>One thing to watch, because it cost me an afternoon. I created a credential &#8212; an API key for another service &#8212; by posting it to n8n&#8217;s own API. Clean success, valid ID returned. When I opened that credential in the interface, <strong>the key field was empty.</strong> You can&#8217;t catch that by asking the API either, because n8n deliberately won&#8217;t return credential contents when you read one back. Good security, unverifiable write. The only proof is a test execution: run one step that uses the credential and watch it authenticate or fail.</p><h2>Making it repeatable</h2><p>The one-off ask is the whole point of this one:</p><blockquote><p><em>Build me a workflow: when that scrape finishes, verify the request is mine, fetch the results, format them as a short summary and send it to Telegram. Validate it before you activate it.</em></p></blockquote><p>The standing version lives in a skill &#8212; a text file of instructions the assistant reads when the job comes up, in plain English rather than code:</p><pre><code><code>When building or changing a workflow:
- Look up the real node configuration before wiring anything.
  Never guess field names.
- Validate the whole workflow before activating it.
- After creating a credential, run a test execution. The API
  returns success even when the key didn't save.
- Attach the global error handler to everything, so failures
  reach me instead of going quiet.
- Tell me what you changed and which executions have passed
  since.</code></code></pre><p>The third line is the expensive one, written down so it never bills me again. The fourth is the one people leave out and regret: an automation that fails silently is worse than no automation, because you carry on believing it&#8217;s working.</p><p>Since I self-host, I&#8217;m also the operations department, which produced one more lesson worth passing on. My automation server was backing itself up faithfully every night &#8212; onto itself. A backup that lives on the machine it protects dies with the machine. It now pushes to a box in a different building, and I proved that by breaking it deliberately three ways before trusting it, then pulling a backup down and confirming the database dump was complete.</p><p>n8n is <a href="https://docs.n8n.io/hosting/">free to self-host</a>, or <a href="https://n8n.io/pricing/">they&#8217;ll host it for you</a>. Either way, add the MCP server before you build anything complicated.</p><p>The pipe that runs my morning scrapes was described out loud, validated before it went live, and has fired every three hours since. I opened the editor once after that, to read a value back out of it.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: Google Docs]]></title><description><![CDATA[Get clued up on speaker notes and document comments, right from inside your AI.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-google-docs</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-google-docs</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:48:45 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sSxn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sSxn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sSxn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!sSxn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!sSxn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!sSxn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sSxn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2247200,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209778630?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sSxn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 424w, https://substackcdn.com/image/fetch/$s_!sSxn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 848w, https://substackcdn.com/image/fetch/$s_!sSxn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 1272w, https://substackcdn.com/image/fetch/$s_!sSxn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc6513c2d-327b-419d-a83c-29c09d8bd95b_2752x1536.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p><p>A <a href="https://github.com/a-bonus/google-docs-mcp">Google Docs MCP server</a> connects an assistant to Docs, Sheets and Drive. It can read a document&#8217;s full text, restructure sections, write rows into a spreadsheet, search the drive, file something into a specific folder and set who can see it. That last part turns out to matter more than the editing.</p><p>My own second brain is thousands of markdown files, which is ideal for me and useless to everybody else. Anything with a second human at the other end lives in Google instead, and there are three things I use it for constantly.</p><p>The first is checking what a collaborator and I have actually written together. On a joint piece of work spread over several documents, I can ask what we&#8217;ve covered and who wrote which part, rather than opening five tabs and reassembling the picture in my head each time.</p><p>The second is reading the notes under someone else&#8217;s slides. Speaker notes are where the real content of a deck lives, and they&#8217;re miserable to read in the presentation view. Pulling them out as plain text and asking questions of them beats clicking through eighty slides.</p><p>The third is filing receipts for my accountant. Every invoice that arrives gets recognised, named and dropped into the right per-quarter, per-supplier folder in a shared drive while my mail is being processed, rather than in a panic each quarter. My accountant opens the folder and it&#8217;s all there.</p><p>That last one comes with a mistake attached, and it&#8217;s the useful part of this post. I once wanted to know which business expenses were missing their receipts, so I counted the documents attached to each expense in my invoicing system and reported back that eighty-seven had none. The number was accurate. The conclusion was wrong. Every one of those receipts existed, already collated and already sent, sitting in the shared Drive folders where my accountant needs them. The invoicing system holds the amounts; the folder holds the paperwork. I&#8217;d counted the wrong thing and made my past self redo finished work.</p><p>The lesson generalised better than the specifics: for anything shared with another human, <strong>the shared folder is the system of record</strong>, whatever your internal tooling thinks. If the accountant can see it, it exists.</p><h2>Making it repeatable</h2><p>The one-off ask:</p><blockquote><p><em>File this invoice into the shared drive under this quarter and the supplier&#8217;s name, then tell me the folder path you used.</em></p></blockquote><p>The standing version lives in a skill &#8212; which is just a text file of instructions the assistant reads when the job comes up, written in English rather than code:</p><pre><code><code>When filing or editing anything shared:
- The shared folder is the system of record. Never conclude
  something is missing from a count in another system.
- File by quarter and supplier. Name files so a human can find
  them without me.
- Edit the real document in place. Don't hand me text to paste.
- Read speaker notes as text rather than describing slides.
- Mail stays in my mail client. Don't route inbox work through
  this server.
- Tell me the path and who can see it after any write.</code></code></pre><p>The last line is there because a shared drive is the one place where getting permissions wrong is worse than getting the filing wrong. And the mail rule is there because I have accounts this connector genuinely cannot see, so letting it near my inbox produces confident, partial answers.</p><p>The quieter benefit is that Drive is a decent bridge between systems that don&#8217;t otherwise talk. My e-ink tablet exports handwritten notes as PDFs into a Drive folder; something picks them up from there, transcribes them and appends the text to that day&#8217;s note. Two devices that share no protocol, connected by a folder they both understand.</p><p>Setting one up needs a Google Cloud project and an authorisation step, which is fiddlier than an API key. There are <a href="https://github.com/topics/google-docs-mcp">several implementations to choose from</a>.</p><p>Last quarter&#8217;s receipts filed themselves, one at a time, as the emails arrived. I didn&#8217;t open a file manager once.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: Kit (formerly ConvertKit)]]></title><description><![CDATA[I can check all my newsletter stats, subscribers and even draft messages right from my AI.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-kit-formerly-convertkit</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-kit-formerly-convertkit</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 12:43:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!RlLp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="callout-block" data-callout="true"><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RlLp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RlLp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RlLp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RlLp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RlLp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RlLp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:186021,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209778218?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!RlLp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!RlLp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!RlLp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!RlLp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0fc5e262-edb2-4b69-ac74-5b4249db4bd0_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://kit.com/">Kit</a> is the email platform my list lives on. In November 2025 it had no MCP server, so I wrote one &#8212; <a href="https://github.com/aplaceforallmystuff/mcp-kit">mcp-kit</a>, open source, connecting Claude to subscribers, tags, sequences and broadcasts. I used it for six months. In June I deprecated it, because Kit shipped <a href="https://developers.kit.com/mcp/kit-developer-docs-mcp">first-party servers of their own</a> with wider coverage and managed sign-in, so there&#8217;s no API key sitting in a config file on my machine any more. My repo&#8217;s README now points at theirs. That&#8217;s the right ending for a tool like this; I was ever only after the capability.</p><p>What it gives you is the account as tools rather than as screens. Look up a subscriber, tag a segment, schedule a broadcast, read open and click figures, tidy up sequences left over from a project you retired two years ago. The chores that used to be a dashboard crawl I postponed indefinitely are now sentences, and the ones worth repeating can run to a schedule.</p><p>Auditing engagement one afternoon, I found <strong>four separate tools returning wrong or truncated answers while reporting complete success.</strong> A request for statistics on a specific list of sends ignored my list entirely and returned the ten most recent &#8212; I only caught it because three different requests came back byte-for-byte identical. A link-click report silently stopped at ten links, so an eighteen-link issue looked like a ten-link issue. A filter for <em>active</em> subscribers cheerfully included people who had unsubscribed, confirmed cancelled on their own records. And a tag&#8217;s member list came back empty seconds after ten people had been tagged successfully.</p><p>Every one of those returned a clean status code. The pattern underneath all four is that reads of a single record were always right, and reads of a whole collection were repeatedly wrong. Which is less a complaint about one platform than a description of what working with any API through an assistant is like. The failure mode is rarely an error message; it&#8217;s a confident wrong number.</p><p>There&#8217;s a second layer of unreliability that has nothing to do with the API. <a href="https://www.litmus.com/apple-mail-privacy-protection-resources">Litmus finds that over half of all email opens now happen on a device with Apple&#8217;s Mail Privacy Protection switched on</a>, which loads the tracking pixel whether or not a human ever looks. Corporate link scanners do the same to clicks. So an open rate is a number about machines.</p><h2>Making it repeatable</h2><p>The one-off ask, when the answer matters:</p><blockquote><p><em>Tell me which subscribers have opened nothing in the last ten sends, and read each record individually rather than trusting a filter.</em></p></blockquote><p>The standing version lives in a skill &#8212; a text file of instructions the assistant reads when the job comes up, in plain English:</p><pre><code><code>When reading anything out of Kit:
- Trust per-record reads. Distrust collection reads.
- Read the individual record back before reporting any state
  change. A filter re-run is not proof.
- Treat every count as a floor, not a census.
- Ask for 100 results on link clicks. It truncates at 10 in
  silence.
- Never quote an open rate as engagement. Over half of opens are
  machines. Use clicks on links in the body.
- Confirm the exact change list with me before any write. Writes
  go to real people.</code></code></pre><p>Six lines, and five of them are that afternoon&#8217;s mistakes written down. The sixth I put there on purpose. Tagging somebody or removing them changes what lands in a real person&#8217;s inbox, so an assistant should stop and show me the list before it does anything.</p><p>If you already pay for Kit, you already have this &#8212; one line to add the account server, another for their developer docs if you&#8217;re building against the API. The version I wrote is <a href="https://github.com/aplaceforallmystuff/mcp-kit">still up as a reference</a>, with a deprecation notice pointing at the official ones.</p><p>Six months of maintaining my own server, retired in an afternoon. Best possible outcome for a tool I only built because nobody else had.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPS: Buffer]]></title><description><![CDATA[Get your AI to be your junior marketing gofer.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-buffer</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-buffer</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 11:51:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1jKN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1jKN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1jKN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1jKN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1jKN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1jKN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1jKN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:165974,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209767531?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1jKN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1jKN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1jKN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1jKN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72da280b-ec0d-4bbe-a521-fee947a59bb7_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p><p><a href="https://buffer.com/">Buffer</a> is a social media scheduler. You connect your accounts, fill a queue, and it posts to a timetable so you don&#8217;t have to be at a desk at 8am on a Tuesday. It also has <a href="https://support.buffer.com/article/980-connecting-buffer-to-automation-tools-and-ai-assistants">an MCP server</a>, which puts that queue inside the conversation where I&#8217;m already writing the posts.</p><p>I set up a company page a fortnight ago and needed content on it from a standing start. Eight posts, one per weekday. Ordinarily that&#8217;s an evening: write one, copy it, open the scheduler, paste, pick the channel, set the time, attach an image, go back, write the next one, lose your place, make coffee. I did all eight in one sitting without leaving the conversation.</p><p>The part I didn&#8217;t expect was what it did to revising. Rearranging a queue by hand is tedious enough that I&#8217;d let a mediocre post go out rather than reshuffle seven others around it. Moving one to Thursday is now a sentence, so I move it.</p><p>Two things nearly went out wrong, and both are the kind of thing nobody warns you about.</p><p>The first was link previews &#8212; the box with a picture and a headline that appears under a post when you share a link. Mine weren&#8217;t appearing. The posts published as bare URLs, which look cheap and get fewer clicks. I assumed the problem was on the website&#8217;s end, in the preview information a page publishes about itself for exactly this purpose, so I went and checked. It was correct. The actual cause is that Buffer wants the link attached to the post as a thing in its own right, and typing the address into the body of the post doesn&#8217;t count. There&#8217;s no warning. The post looks finished sitting in the queue and only reveals itself when it publishes.</p><p>The second was about who gets to press send. The page is co-owned with a collaborator, so I wanted posts to queue up and then wait for a human to release them. For that channel Buffer offers two settings: save as a draft, or publish automatically. There is no approval step in between. So the shared page runs draft-then-publish by hand, deliberately, and the automation stops one step short of the thing that matters. When somebody else&#8217;s name is on the page, &#8220;it went out automatically&#8221; isn&#8217;t a sentence I want to have to say to them.</p><h2>Making it repeatable</h2><p>The one-off version of this is just asking. I say something like:</p><blockquote><p><em>Take these three posts, queue them on the company page for the next three weekday mornings, attach the link to each one as a proper link asset, and leave them as drafts rather than publishing.</em></p></blockquote><p>That works. But I don&#8217;t want to remember those two gotchas every time, and in six weeks I won&#8217;t. So they live in a skill instead &#8212; and a skill here is nothing more exotic than a text file of instructions the assistant reads when the job comes up. You write it in plain English, not code. Mine says roughly this:</p><pre><code><code>When queueing social posts to Buffer:
- Attach every link as a link asset. A URL typed into the post
  body publishes with no preview card.
- The co-owned page is draft-only. Never schedule it to publish
  automatically.
- One post per weekday, mornings, unless I say otherwise.
- Read the finished queue back to me with dates before you stop.</code></code></pre><p>Four lines of English, and every one of them is a mistake I already made. Written down once, they stop being things I have to catch. Anything that reads that file queues posts the way I would on a good day.</p><p>Every tool in this series works the same way: the MCP server lets an assistant act, and a short file of instructions tells it how you want that done.</p><p>The rest of what I use it for is smaller. There&#8217;s a place to put an idea that isn&#8217;t a post yet, which is where half-thoughts go instead of into a note I&#8217;ll never open again. And the performance figures come back through the same interface, so asking what actually landed last month is a question rather than an afternoon. I&#8217;ve scoped a searchable archive of my own old posts on top of that &#8212; the history and the numbers are both reachable &#8212; though I haven&#8217;t built it.</p><p>Buffer&#8217;s <a href="https://buffer.com/pricing">free plan connects three channels</a>, which is enough to find out whether the habit survives contact with a real week. Mine now has eight posts going out, one per weekday, and I haven&#8217;t opened the Buffer website since the day I loaded them.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: Apify]]></title><description><![CDATA[Some data can't be fetched, only harvested. Apify is the one I reach for when a normal page grab won't work &#8212; and the check I run before I bother.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-apify</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-apify</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 10:54:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!yFLc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yFLc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yFLc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yFLc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yFLc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yFLc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yFLc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:176615,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209765575?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yFLc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yFLc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yFLc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yFLc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc107cd1b-7ff2-4d77-a9b8-1e8c7132fa75_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p></div><p><a href="https://apify.com/">Apify</a> is a marketplace of ready-made scrapers. Someone else has already built and maintained the thing that pulls listings off a property site or profiles off a professional network, and you rent it by the run. They call them Actors; think of an Actor as a small robot you hire for thirty seconds. <a href="https://github.com/apify/actors-mcp-server">The MCP server</a> turns any of them into a tool an assistant can call mid-conversation.</p><p>The reason it earns a place alongside plain web search is that some data can&#8217;t be fetched politely. Sites behind logins, pages that only load as you scroll, anti-robot checks, anything that needs a session. A normal fetch reads one page. Apify collects a hundred and hands back records with the same fields in every row, which is a spreadsheet rather than a wall of text.</p><p>I spent about a day on it this week and got four things out of it, in ascending order of usefulness.</p><p>The first was a reusable delivery path. A scrape finishes, it fires a webhook, my <a href="https://n8n.io/">self-hosted n8n</a> checks the request is really mine, fetches the results, formats them and sends them to Telegram. Built once. Every use since has been a new task, a schedule and a webhook &#8212; about ten minutes of clicking and no new code. Six scrapes now run every three hours for under five cents a day.</p><p>The second was proving the security gate could fail before I trusted it. Each webhook carries a shared secret and the pipe drops anything whose secret doesn&#8217;t match. So I fired one with the <em>wrong</em> secret and watched it get rejected. Then I fired one with the right secret and a deliberately fake results ID, which was admitted and then failed at the fetch with &#8220;not found&#8221; rather than &#8220;not authorised&#8221; &#8212; proving the credential underneath worked too. A check you have only ever seen pass tells you nothing.</p><p>The third stung. Five weeks ago I deleted a scheduled scan that watched for a particular kind of freelance listing, because the free plan&#8217;s result allowance was spent and it could no longer return anything. The paid plan removed exactly that blocker on day one, and nothing in my system ever went back to look at something switched off for a reason that had since expired. Five weeks dark. It runs again now, and I write the un-pause condition down next to anything I turn off.</p><p>The fourth is the check that saves the most time, because it stops work rather than starting it. <strong>Look at the user counts on the Actors in your niche before you commit.</strong> I nearly built a lane around Spanish government data: ten relevant Actors existed, median about three and a half users each. The Actor for one big Spanish property portal had 1,859. That gap is the market telling you nobody scrapes open government data, because it&#8217;s already published cleanly. The lane closed before it cost me a week.</p><h2>Making it repeatable</h2><p>The one-off ask is direct:</p><blockquote><p><em>Run the profile scraper on this URL and give me the career history as a table, with dates.</em></p></blockquote><p>The standing version lives in a skill &#8212; a text file of instructions the assistant reads when the job comes up, in plain English rather than code:</p><pre><code><code>Before scraping anything:
- Check the Actor's user count in the store first. Low usage
  usually means the data is already published cleanly. Say so
  and stop.
- Prefer a maintained Actor over writing a scraper.
- Schedule it and deliver the result to me. Don't leave a job
  that depends on me remembering to run it.
- Every webhook carries the shared secret, and I want the decoy
  test run before we trust the gate.
- Tell me what the run cost.</code></code></pre><p>The first rule is doing the most work there. It&#8217;s the only one that regularly ends with the assistant telling me not to bother, which is the outcome I most need and am least likely to reach on my own enthusiasm.</p><p>Apify&#8217;s free plan comes with <a href="https://apify.com/pricing">$5 of credit and no card required</a>, and compute bills at twenty cents a unit. Run one Actor by hand in their console first; if it gives you what you want, then wire up the MCP server.</p><p>The scrapes ran at six this morning while I was asleep. That&#8217;s the whole change.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: Brave Search]]></title><description><![CDATA[An AI without web access answers from memory and sounds just as confident either way. This is the one that makes mine go and look.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-brave-search</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-brave-search</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 10:36:23 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!VYeQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VYeQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VYeQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VYeQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VYeQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VYeQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VYeQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:119089,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209764163?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VYeQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!VYeQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!VYeQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!VYeQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7da11e06-66da-4faa-b002-bbad14002743_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p></div><p><a href="https://github.com/brave/brave-search-mcp-server">Brave Search MCP</a> connects an assistant to <a href="https://brave.com/search/api/">Brave&#8217;s search API</a>, so instead of answering from whatever it absorbed during training, it runs a real search and reads what&#8217;s on the web right now. Brave runs its own index rather than reselling someone else&#8217;s results, which is why I have it as the default rather than the fallback.</p><p>Here&#8217;s what that&#8217;s actually worth. I got charged for a year&#8217;s subscription on a games console account I&#8217;d meant to cancel, and the support reply was a flat no &#8212; the receipt says purchases are final. I asked Claude to look into it. Brave surfaced the company&#8217;s own help page, which said, in their words: <em>&#8220;there is also a statutory 14-day right to cancel.&#8221;</em> Their documentation contradicting their support desk. That went into my reply, quoted, with the link. I would never have found that page myself, because it wouldn&#8217;t have occurred to me to go looking for it.</p><p>That&#8217;s the shape of it. A language model is trained on a snapshot and then frozen. It doesn&#8217;t know what today is, it can&#8217;t distinguish a fact it learned from a fact that has since changed, and it will tell you either in exactly the same confident tone. Prices, documentation, policies, release notes &#8212; all of it drifts, and none of the drift is visible from inside the model.</p><p>There&#8217;s also a practical reason it&#8217;s the default and not the impressive option. I used to route research to a paid research API. One day an agent invoked it by accident and ran a few hundred queries in the background; I found out when the invoice arrived. Automated searching has to be free, or something you never think about will eventually cost you money while you sleep. So the agents get Brave, and I still use a paid AI search product in my own browser, where every query is one I chose to run.</p><h2>Making it repeatable</h2><p>The one-off ask, when I care about being right:</p><blockquote><p><em>Before you advise me on this, search for the current documentation and tell me what you found and where you found it.</em></p></blockquote><p>The standing version lives in a skill &#8212; a text file of instructions the assistant reads when the work comes up, written in plain English:</p><pre><code><code>Whenever anything time-sensitive comes up:
- Search before answering. Prices, docs, policies and release
  notes are all stale in your training data.
- Give me the link alongside the claim. A claim with no source
  doesn't ship.
- Stitch several cheap searches from different angles rather than
  one expensive deep-research call.
- If a page needs a browser to render, fetch the page properly
  instead of reasoning from the search snippet.
- Say which of your claims came from search and which came from
  memory.</code></code></pre><p>That last rule is the one I&#8217;d fight for. The failure I keep seeing is a confident paragraph where two sentences came from a live page and the third came from 2024, with nothing at all marking the join.</p><p>It&#8217;s also what makes anything unattended worth reading. My daily news round-up genuinely checks this morning&#8217;s web rather than reciting last year&#8217;s internet. A background check on a company or a person who&#8217;s approached me starts from real results. Neither is something I&#8217;d let run without me if the tool underneath were working from memory.</p><p>The <a href="https://brave.com/search/api/">API gives you $5 of credit every month, free and applied automatically</a>, against $5 per thousand requests &#8212; so a thousand free searches a month before you owe anything. I have never come close to spending it. The <a href="https://github.com/brave/brave-search-mcp-server">MCP server is open source</a> and setup is an API key and one line of config.</p><p>The reply I sent quoted the company&#8217;s own page back at them. However that ticket ends, I wouldn&#8217;t have had that sentence to write without a search that happened while I was talking.</p>]]></content:encoded></item><item><title><![CDATA[My favourite MCPs: local-llm]]></title><description><![CDATA[Most of what I ask an AI to do is shovel work &#8212; sorting, summarising, pulling dates out of letters. This one hands that to a model running on my own machine.]]></description><link>https://secondbrainchronicles.com/p/my-favourite-mcps-local-llm</link><guid isPermaLink="false">https://secondbrainchronicles.com/p/my-favourite-mcps-local-llm</guid><dc:creator><![CDATA[Jim Christian]]></dc:creator><pubDate>Tue, 04 Aug 2026 10:34:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!smtk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!smtk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!smtk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!smtk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!smtk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!smtk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!smtk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg" width="1400" height="781" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:781,&quot;width&quot;:1400,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:173518,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://secondbrainchronicles.com/i/209763959?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!smtk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 424w, https://substackcdn.com/image/fetch/$s_!smtk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 848w, https://substackcdn.com/image/fetch/$s_!smtk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!smtk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6c89055-9ed7-4374-9242-903313330a57_1400x781.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="callout-block" data-callout="true"><p>Not sure what an MCP server is or how it&#8217;s used? Check out my explainer <a href="https://secondbrainchronicles.com/p/whats-an-mcp-server-anyway">here</a>.</p></div><p><a href="https://github.com/aplaceforallmystuff/mcp-local-llm">local-llm</a> gives Claude six specific jobs it can hand to a model running on my own computer: summarise, draft, classify, extract, transform, complete. Claude stays in charge and decides what to delegate. A small local model does the repetitive part. I built this one, because I kept watching an expensive model do work that needed no intelligence at all.</p><p>The model runs under <a href="https://ollama.com/">Ollama</a>, which is the easiest way to run a language model on your own machine &#8212; one command to install one, and it serves locally like any other bit of software.</p><p>What changed for me is which jobs are worth automating at all. Sorting every subject line in my inbox by type. Summarising every article I clipped this week. Pulling the dates and amounts out of a stack of letters. None of those need frontier reasoning, and all of them are per-item work, so the cost of doing them with a cloud model made automating them faintly ridiculous. I did them by hand or I didn&#8217;t do them. Now they run over every item, every day, and the marginal cost is electricity.</p><p>The part where people give themselves a bad time is hardware, so here are the real numbers. Mine runs on a headless Mac with 16 GB of memory that is also hosting a stack of containers, so there is nowhere near 16 GB free. One seven-billion-parameter model at Q4 &#8212; Q4 meaning the weights are compressed to roughly an eighth of full precision, barely perceptible on mechanical work and enormously smaller &#8212; comes to 4.7 GB and sits there comfortably. A 9.6 GB model plus the containers is 14.7 of 16 before a single question gets asked. Do that arithmetic before you download, not after.</p><p>And I say that having got it wrong myself. I had eight models on that machine for months, and my own documentation confidently stated the default was a Gemma model. It wasn&#8217;t. The config file pinned <a href="https://ollama.com/library/qwen2.5-coder">Qwen&#8217;s coder model</a> and always had. The docs and the config had disagreed for months and I&#8217;d have sworn blind the docs were right. I deleted the six nothing was using, freed 32 GB, and nothing broke &#8212; because the model I believed was doing the work had never been doing the work. Then I checked the free space with <code>df</code> rather than trusting my own subtraction, which turned out to matter too.</p><h2>Making it repeatable</h2><p>The one-off ask is plain:</p><blockquote><p><em>Classify these two hundred subject lines by type using the local model, then show me only the ones it couldn&#8217;t place.</em></p></blockquote><p>The standing version lives in a skill &#8212; which is just a text file of instructions the assistant reads when the work comes up, written in English rather than code:</p><pre><code><code>Routing rules for text work:
- Classify, summarise, extract, transform, translate &#8594; local model.
- Judgement, voice, security, anything client-facing &#8594; keep it
  with Claude.
- Check the config for which model is actually loaded. My own
  docs were wrong about this for months.
- One 7B model at a time. The machine has 16GB shared with
  everything else on it.
- Review what comes back. Local output is a first pass, not a
  finished one.</code></code></pre><p>Five lines, and each one is a mistake I&#8217;ve already made &#8212; including the last, which is the one people skip. A small model will hand you a confident, tidy, wrong classification, and the whole arrangement only works because something reads it afterwards.</p><p>Setup is Ollama, one model pulled from their library, and a line of config to point the MCP server at it. The project is <a href="https://github.com/aplaceforallmystuff/mcp-local-llm">open source and MIT licensed</a>.</p><p>The cloud model still does all the thinking here. It just stopped doing the sorting.</p>]]></content:encoded></item></channel></rss>