<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>tooling on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/tooling/</link>
    <description>Recent content in tooling on S Anand</description>
    <generator>Hugo -- 0.156.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 08 Mar 2026 15:09:25 +0800</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/tooling/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Gemini CLI harness is not good enough</title>
      <link>https://www.s-anand.net/blog/gemini-cli-harness-is-not-good-enough/</link>
      <pubDate>Sun, 08 Mar 2026 15:09:25 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/gemini-cli-harness-is-not-good-enough/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve long felt that while the Gemini 3 Pro model is fairly good, the Gemini CLI harness isn&amp;rsquo;t. I saw an example of this today.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Me&lt;/strong&gt;: Tell me the GitHub IDs of all students in this directory.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SearchText &amp;#39;github&amp;#39; within ./
Found 100 matches (limited)
Sending this message (14606686 tokens) might exceed the remaining context window limit (1037604 tokens).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Me&lt;/strong&gt;: Only send the (small) required snippets of data. Write code as required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;SearchText &amp;#39;github&amp;#39; within ./
Found 100 matches (limited)
Sending this message (14606686 tokens) might exceed the remaining context window limit (1037604 tokens).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-03-08-gemini-cli-harness.avif&#34;&gt; &lt;!-- https://gemini.google.com/app/40182d961e78af0d --&gt;&lt;/p&gt;
&lt;p&gt;Come ON! It&amp;rsquo;s &lt;strong&gt;March 2026&lt;/strong&gt;. We can&amp;rsquo;t pretend it&amp;rsquo;s October 2025 any more.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;PS: I partly take back what I said. Codex had trouble, too. This problem may be harder than I thought. Still, Gemini CLI should not have gotten stuck where it did.&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Using Codex to improve Codex</title>
      <link>https://www.s-anand.net/blog/using-codex-to-improve-codex/</link>
      <pubDate>Sun, 01 Mar 2026 18:26:13 +0800</pubDate>
      <guid>https://www.s-anand.net/blog/using-codex-to-improve-codex/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://files.s-anand.net/images/2026-03-01-using-codex-to-improve-codex.avif&#34;&gt; &lt;!-- https://gemini.google.com/app/e32860c560c9df57 --&gt;&lt;/p&gt;
&lt;p&gt;Instead of learning and applying &lt;a href=&#34;https://developers.openai.com/codex/changelog/&#34;&gt;new Codex features&lt;/a&gt;, I asked it to analyze my sessions and tell me what I&amp;rsquo;m under-using.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;I&amp;#39;d like you to analyze my Codex sessions and help me use Codex better.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sessions/ has all my past Codex sessions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Search online for the OpenAI Codex release notes for the latest features Codex has introduced and read them - from whatever source you find them.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Then, create a comprehensive catalog of Codex features.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Then, analyze my sessions and see which feature I could have used but didn&amp;#39;t and make a comprehensive list.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Then summarize which features I should be using more, how, what the benefits are, and with examples from my sessions.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Document these in one or more Markdown files in this directory. Write scripts as required. Commit as you go.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It did a thorough job of &lt;a href=&#34;https://github.com/sanand0/datastories/blob/8b7c71230900698ec424ba7e888f4deb74ac6ac6/codex-session-analysis/CODEX_FEATURE_CATALOG.md&#34;&gt;listing all the new features&lt;/a&gt; and &lt;a href=&#34;https://github.com/sanand0/datastories/blob/8b7c71230900698ec424ba7e888f4deb74ac6ac6/codex-session-analysis/CODEX_SESSION_GAP_ANALYSIS.md&#34;&gt;analyzing my gaps&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://sanand0.github.io/datastories/codex-session-analysis/&#34;&gt;&lt;strong&gt;Read the full story&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the summary: I&amp;rsquo;m using new models immediately, but not the new features of Codex. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Parallel execution&lt;/strong&gt;. Yesterday, I ran ~103 tool calls without the new &lt;a href=&#34;https://developers.openai.com/codex/changelog/#github-release-290476287&#34;&gt;spawn_agents_on_csv&lt;/a&gt; feature from last week, which would have saved a &lt;em&gt;lot&lt;/em&gt; of time running in parallel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Permissions&lt;/strong&gt;. Last week, I ran a script that asked me for permissions 7 times towards the end. Instead, I could have used &lt;code&gt;/permissions&lt;/code&gt; to set early permissions.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The best part is that it could just add a few instructions to my &lt;code&gt;AGENTS.md&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Run multiple independent reads in parallel.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;For 20+ tool calls, maintain update_plan throughout.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;For long-running commands/tests, delegate via sub-agents and report checkpoints.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;If blocked by permissions, ask me concise choices.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;If sandbox/config gets in the way, use /permissions and /debug-config early.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;Now, the beauty is that &lt;strong&gt;the tool optimized itself&lt;/strong&gt;. I don&amp;rsquo;t even need to learn how to optimize it!&lt;/p&gt;
</description>
    </item>
    <item>
      <title></title>
      <link>https://www.s-anand.net/blog/hindu-webinar-on-ai-education/</link>
      <pubDate>Sun, 20 Oct 2024 07:32:39 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/hindu-webinar-on-ai-education/</guid>
      <description>&lt;p&gt;Arun Tangirala and I webinared on &amp;ldquo;AI in Education&amp;rdquo; yesterday.&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;(&amp;ldquo;Webinared&amp;rdquo; is not a word. But &amp;ldquo;verbing weirds language&amp;rdquo;.)&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Mid-way, Jose Swan from the audience asked, &amp;ldquo;Can you summarise this session using an AI?&lt;/p&gt;
&lt;p&gt;There are SEVERAL tools you can use to summarize talks. Whisper for transcription, FFMpeg for keyframe extraction, #NotebookLM for podcast generation, text-embedding-3-small for topic modelling, and of course, any regular LLM include #ChatGPT for summarization or translation.&lt;/p&gt;
&lt;p&gt;I spent this morning applying those to the webinar video, and writing it up the process.&lt;/p&gt;
&lt;p&gt;Read on for the details&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.s-anand.net/blog/tools-to-publish-annotated-talks-from-videos/&#34;&gt;https://www.s-anand.net/blog/tools-to-publish-annotated-talks-from-videos/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PS: I referenced Raj Vadigepalli midway and thought of Vivekananda Vedula, bringing back hostel memories from Indian Institute of Technology, Madras.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/feed/update/urn%3Ali%3Ashare%3A7253669433938714624&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
