<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Claude-Code on doug.sh</title>
    <link>https://doug.sh/tags/claude-code/</link>
    <description>Recent content in Claude-Code on doug.sh</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 02 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://doug.sh/tags/claude-code/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>erm: A Local CLI That Strips Ums, Uhs, and Erms From Speech</title>
      <link>https://doug.sh/posts/erm-a-local-cli-that-strips-ums-uhs-and-erms-from-speech/</link>
      <pubDate>Sat, 02 May 2026 00:00:00 +0000</pubDate>
      <guid>https://doug.sh/posts/erm-a-local-cli-that-strips-ums-uhs-and-erms-from-speech/</guid>
      <description>&lt;p&gt;Linguists have a word for the &lt;code&gt;um&lt;/code&gt;s, &lt;code&gt;uh&lt;/code&gt;s, &lt;code&gt;er&lt;/code&gt;s, and elongated versions (&lt;code&gt;ummmm&lt;/code&gt;, &lt;code&gt;uhhhhh&lt;/code&gt;) that pad spoken English: &lt;em&gt;disfluencies&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t record a lot of voice audio, but a few friends do, and they tell me editing those out by hand is miserable. So I built &lt;a &#xA;    href=&#34;https://github.com/dougcalobrisi/erm&#34;&#xA;    &#xA;    &#xA;     &#xA;      target=&#34;_blank&#34; &#xA;      rel=&#34;noopener&#34;&#xA;    &#xA;&gt;&#xA;    erm&#xA;&lt;/a&gt; to do it.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;uvx erm input.wav&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That&amp;rsquo;s the whole interface for the common case. It writes a cleaned &lt;code&gt;.wav&lt;/code&gt; and a JSON cut list next to the input. This post walks through how it works, because the obvious approach doesn&amp;rsquo;t sound very good and most of the code is the stuff that fixes that.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Give Your Coding Agent a Journal</title>
      <link>https://doug.sh/posts/give-your-coding-agent-a-journal/</link>
      <pubDate>Thu, 23 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://doug.sh/posts/give-your-coding-agent-a-journal/</guid>
      <description>&lt;h1 id=&#34;journaling&#34;&gt;Journaling &lt;a href=&#34;#journaling&#34; class=&#34;anchor&#34;&gt;🔗&lt;/a&gt;&lt;/h1&gt;&lt;p&gt;Coding agents forget what they just did. The session ends, context gets compacted, or you walk away for lunch, and when you come back the agent is ready to try the same fix that failed an hour ago. The usual memory setups (&lt;code&gt;CLAUDE.md&lt;/code&gt;, project wikis, and so on) are fine for things that don&amp;rsquo;t change much, but they don&amp;rsquo;t capture what&amp;rsquo;s actually happening in the task you&amp;rsquo;re working on right now.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
