<?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>codex-cli on S Anand</title>
    <link>https://www.s-anand.net/blog/tag/codex-cli/</link>
    <description>Recent content in codex-cli on S Anand</description>
    <generator>Hugo -- 0.164.0</generator>
    <language>en-us</language>
    <lastBuildDate>Sun, 09 Nov 2025 15:54:01 +0000</lastBuildDate>
    <atom:link href="https://www.s-anand.net/blog/tag/codex-cli/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>If a bot passes your exam, what are you teaching?</title>
      <link>https://www.s-anand.net/blog/if-a-bot-passes-your-exam-what-are-you-teaching/</link>
      <pubDate>Sun, 09 Nov 2025 15:53:58 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/if-a-bot-passes-your-exam-what-are-you-teaching/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;If a bot passes your exam, what are you teaching?&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/calvin-hobbes-exam.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s incredible how far coding agents have come. They can now solve complete exams. That changes what we should measure.&lt;/p&gt;
&lt;p&gt;My Tools in Data Science course has a &lt;a href=&#34;https://exam.sanand.workers.dev/tds-2025-09-roe&#34;&gt;Remote Online Exam&lt;/a&gt;. It was so difficult that, in 2023, it sparked threads titled &amp;ldquo;What is the purpose of an impossible ROE?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Today, despite making the test harder, students solve it easily with &lt;a href=&#34;https://claude.ai/&#34;&gt;Claude&lt;/a&gt;, &lt;a href=&#34;https://chatgpt.com/&#34;&gt;ChatGPT&lt;/a&gt;, etc. Here&amp;rsquo;s today&amp;rsquo;s score distribution:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/image-14.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;I solved one question with &lt;a href=&#34;https://developers.openai.com/codex/cli/&#34;&gt;Codex CLI&lt;/a&gt;. I ran I &lt;code&gt;chrome --remote-debugging-port=9222&lt;/code&gt; and prompted Codex to:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Use CDP to visit &lt;a href=&#34;https://exam.sanand.workers.dev/tds-2025-09-roe&#34;&gt;https://exam.sanand.workers.dev/tds-2025-09-roe&lt;/a&gt; and solve Q4. Click on the “Check” button to verify the solution.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That was it. ~6 minutes and ~50 cents later, it solved the problem.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://asciinema.org/a/xni6OMt38oQSyhYLHLY3fwncS&#34;&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://asciinema.org/a/xni6OMt38oQSyhYLHLY3fwncS.svg&#34;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This works reliably. It worked 3/3 times.&lt;/p&gt;
&lt;p&gt;This runs in parallel. I can answer different questions in different Codex sessions.&lt;/p&gt;
&lt;p&gt;This is already in use. Several students got 10/10 in 15 minutes - on a 45 minute exam.&lt;/p&gt;
&lt;p&gt;So I need better evaluations. Instead of &amp;ldquo;Can you(r agent) solve this?&amp;rdquo;, I should check if they can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Turn a messy brief into an agent-friendly spec + plan&lt;/li&gt;
&lt;li&gt;Set up and connect the right tools&lt;/li&gt;
&lt;li&gt;Solve within a time and cost budget&lt;/li&gt;
&lt;li&gt;Test &amp;amp; debug without a human&lt;/li&gt;
&lt;li&gt;Recover from errors&lt;/li&gt;
&lt;li&gt;Adapt to new situations&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also, code is the by-product (of AI coding or copying). Learning lives in the &lt;strong&gt;execution logs&lt;/strong&gt;. That&amp;rsquo;s what I should evaluate.&lt;/p&gt;
&lt;p&gt;Point I&amp;rsquo;m pondering: If a bot can pass my exam, what exactly am I teaching?&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_its-incredible-how-far-coding-agents-have-activity-7393317571892207616-VCUr&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    <item>
      <title>Things I Learned - 26 Oct 2025</title>
      <link>https://www.s-anand.net/blog/things-i-learned-26-oct-2025/</link>
      <pubDate>Sun, 26 Oct 2025 00:00:00 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/things-i-learned-26-oct-2025/</guid>
      <description>&lt;p&gt;This week, I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Before founding a place to do good, work in a place that does good and learn. &lt;a href=&#34;https://werd.io/using-technology-skills-for-positive-change/&#34;&gt;Ben Werdmuller&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;What should we teach when vibe coding becomes good enough for non-coders? &lt;a href=&#34;https://x.com/emollick/status/1979627762903392362&#34;&gt;Ethan Mollick&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Problem decomposition&lt;/li&gt;
&lt;li&gt;Clear communication &amp;amp; spec writing&lt;/li&gt;
&lt;li&gt;Core technical foundations: file systems, access control, networking, APIs, version control, data structures, databases, deployment&lt;/li&gt;
&lt;li&gt;Software development skills: Debugging, Testing, Refactoring, Design patterns, UI/UX&lt;/li&gt;
&lt;li&gt;Project management: requirements, prioritization, scoping, &amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Codex CLI tips:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;codex --add-dir $DIR&lt;/code&gt; lets you write into $DIR&lt;/li&gt;
&lt;li&gt;&lt;code&gt;codex --full-auto&lt;/code&gt; is the equivalent of &lt;code&gt;codex --sandbox workspace-write --ask-for-approval on-request&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Terse code is not necessarily easier or harder for LLMs to write. It&amp;rsquo;s about how unusual (or not aligned with training data) the code is. &lt;a href=&#34;https://medium.com/@gabiteodoru/dont-force-your-llm-to-write-terse-code-an-argument-from-information-theory-for-q-kdb-developers-04077c5b7038&#34;&gt;Gabi Teoduru&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;How are people using browser agents like Comet / Atlas? &lt;a href=&#34;https://x.com/simonw/status/1980713097024401548&#34;&gt;Simon Willison&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Most popular: YouTube video summaries with timestamps&lt;/li&gt;
&lt;li&gt;Most useful: Form filling: Government forms, data entry, repetitive bureaucratic tasks
&lt;ul&gt;
&lt;li&gt;Foreign language navigation: Applying for pension in Korea, navigating sites in other languages&lt;/li&gt;
&lt;li&gt;Time reporting auto-completion&lt;/li&gt;
&lt;li&gt;Insurance claims: Reading policy documents and drafting appeals (successfully got claim reimbursed in India)&lt;/li&gt;
&lt;li&gt;Compliance training click throughs&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Next most useful: Shopping / planning
&lt;ul&gt;
&lt;li&gt;Energy provider comparison - Comet checked current plan vs competitors on Check24, calculated exact annual savings per provider&lt;/li&gt;
&lt;li&gt;Financial tracking: Finding Amazon orders, tracking Airbnb spending with refund calculations, analyzing bank transactions&lt;/li&gt;
&lt;li&gt;Trip planning: Mapping 50-100 places on Google Maps automatically&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Interesting: Airport shuttle discovery - Found shuttle that user missed in manual searching&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/winfsp/hubfs&#34;&gt;HubFS&lt;/a&gt; mounts GitHub repos on the file system. Every file system action directly works on GitHub via a REST API. Useful for some scenarios but less useful for note-taking than something like &lt;a href=&#34;https://marketplace.visualstudio.com/items?itemName=vsls-contrib.gitdoc&#34;&gt;GitDoc&lt;/a&gt; which offers a delayed sync.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://x.com/ErnestRyu/status/1980760351479328781&#34;&gt;Ernest Ryu solved an open problem in convex optimization using ChatGPT&lt;/a&gt;. Quotes:
&lt;ul&gt;
&lt;li&gt;ChatGPT is now at the level of solving some math research questions, but you do need an expert guiding it.&lt;/li&gt;
&lt;li&gt;ChatGPT was really effective at accelerating my progress. This work took about 12 hours, spread over 3 days. In hindsight, the proof is really simple.&lt;/li&gt;
&lt;li&gt;But I iterated through so many other strategies that didn&amp;rsquo;t pan out, and ChatGPT crucially helped to quickly explore and eliminate those dead-end approaches. Also, the key successful steps were suggested by ChatGPT.&lt;/li&gt;
&lt;li&gt;ChatGPT did not produce the proof in a single prompt. The process was highly interactive. It generated many arguments, roughly 80% of which were incorrect.&lt;/li&gt;
&lt;li&gt;Yet some were genuinely novel to me. Whenever I recognized a novel idea, whether correct or only partially so, I distilled the key insight and prompted ChatGPT to develop it further.&lt;/li&gt;
&lt;li&gt;My contribution:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Filtering out incorrect arguments&lt;/strong&gt; and accumulating a set of correct facts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Identifying promising new lines&lt;/strong&gt; of reasoning and guiding ChatGPT to explore them further&lt;/li&gt;
&lt;li&gt;Recognizing when a strategy had been fully explored and &lt;strong&gt;deciding when to move on&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ChatGPT&amp;rsquo;s contribution:
&lt;ul&gt;
&lt;li&gt;Producing the final proof argument.&lt;/li&gt;
&lt;li&gt;Significantly accelerating my (or our) exploration of the many dead-end arguments, rapidly ruling out approaches that did not work.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Comparing the GPT 4.1 and 5 models at all different of reasoning, I&amp;rsquo;ve switched my default from GPT 4.1 mini to GPT 5 mini (medium). Far smarter for a slightly higher cost. &lt;a href=&#34;https://artificialanalysis.ai/?cost=cost-vs-intelligence&amp;amp;models=gpt-5-low%2Cgpt-5-minimal%2Cgpt-5-nano%2Cgpt-5-nano-minimal%2Cgpt-5-mini%2Cgpt-5%2Cgpt-5-medium%2Cgpt-5-nano-medium%2Cgpt-5-mini-minimal%2Cgpt-5-mini-medium%2Capriel-v1-5-15b-thinker%2Cgpt-4-1%2Cgpt-4-1-nano%2Cgpt-4-1-mini&#34;&gt;Artificial Analysis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;python -m pdb -c continue script.py&lt;/code&gt; or &lt;code&gt;uv run -m pdb -c continue script.py&lt;/code&gt; runs a script and drops into pdb on unhandled exceptions (post-mortem). &lt;a href=&#34;https://chatgpt.com/share/68f9b890-ba0c-800c-8a29-48245a41ca5e&#34;&gt;ChatGPT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Technology removes constraints. We then do what we really value. &lt;a href=&#34;https://claude.ai/chat/f3a2606f-203c-41cc-b50f-62504483504f&#34;&gt;Claude&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;When writing became digitized, we stopped cared about spelling/handwriting for its own sake. Spelling bees and handwriting classes declined. &amp;ldquo;ur&amp;rdquo; is acceptable.&lt;/li&gt;
&lt;li&gt;When fitness tracking became easy, many just track, few exercise more. Few people value exercise&lt;/li&gt;
&lt;li&gt;When GPS became ubiquitous, we stopped learning geography. Most value arriving, not knowing&lt;/li&gt;
&lt;li&gt;When photography became unlimited, most captured moments. Few perfected shots&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;I had Codex scrape my ~2,000 pending invites on LinkedIn and asked ChatGPT to analyze it. Here are learnings: &lt;a href=&#34;https://chatgpt.com/c/68f72899-5814-8320-9d02-88ce06257fd8&#34;&gt;ChatGPT, private&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;Power-law. 5% of inviters account for ~42% of all common connections. Top 10 people alone for ~20%.&lt;/li&gt;
&lt;li&gt;IITM student invites are high (~14%), but with 0-2 common connects, i.e. distant strangers.&lt;/li&gt;
&lt;li&gt;EdTech is tiny in count but has the highest common connections per person (outlier-sensitive but real).&lt;/li&gt;
&lt;li&gt;Among ≥20-commons, many hold VP/Head/Site-Lead titles in Data/AI or GenAI (not just recruiters).&lt;/li&gt;
&lt;li&gt;GenAI people are 7-8% and steady across months. Not a useful signal to prioritize.&lt;/li&gt;
&lt;li&gt;Premium ~ Senior. Premium accounts show ~40% senior titles vs ~29% for non-premium.&lt;/li&gt;
&lt;li&gt;Finance invites have higher seniority rate and more common connects than healthcare.&lt;/li&gt;
&lt;li&gt;Followers have higher common connections (~6 vs ~4).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;⭐ Memory can be code. Agent memory is anything it choose to persist. Agents can write code on the fly to automate tasks, save them, and serve the code on the next request, potentially modifying the code as required. This is like the conscious mind saving a habit for the subconscious to execute fast.&lt;/li&gt;
&lt;li&gt;Finally: Microsoft Office has an agent mode that lets you talk to it and do stuff. &lt;a href=&#34;https://www.theverge.com/news/787076/microsoft-office-agent-mode-office-agent-anthropic-models&#34;&gt;The Verge&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    <item>
      <title>Measuring talking time with LLMs</title>
      <link>https://www.s-anand.net/blog/measuring-talking-time-with-llms/</link>
      <pubDate>Sun, 24 Aug 2025 06:26:22 +0000</pubDate>
      <guid>https://www.s-anand.net/blog/measuring-talking-time-with-llms/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;Measuring talking time with LLMs&#34; loading=&#34;lazy&#34; src=&#34;https://www.s-anand.net/blog/assets/ChatGPT-Image-Aug-24-2025-01_24_22-PM.webp&#34;&gt;&lt;/p&gt;
&lt;p&gt;I record my conversations these days, mainly for LLM use. I use them in 3 ways:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Summarize&lt;/strong&gt; what I learned and the next steps.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ideate&lt;/strong&gt; as raw material for my Ideator tool: /blog/llms-as-idea-connection-machines/&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyze&lt;/strong&gt; my transcript statistics.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For example, I learned that:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;When I&amp;rsquo;m interviewing, others ramble (speak long per turn), I am brief (less words/turn) and quiet (lower voice share). In one interview, I spoke ~30 words per turn. Others spoke ~120. My share was ~10%.&lt;/li&gt;
&lt;li&gt;When I&amp;rsquo;m advising or demo-ing, I ramble. I spoke ~120 words per turn in an advice call, and took ~75% of the talk-time.&lt;/li&gt;
&lt;li&gt;This pattern is independent of meeting length and group size.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I used &lt;a href=&#34;https://github.com/openai/codex&#34;&gt;Codex CLI&lt;/a&gt; (command-line tool) for this, with the prompt:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Go through the transcripts in this folder and estimate the % of time Anand was speaking vs others, by conversation.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Then I prompted for correlations and interpretations. This combines three things I find powerful:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;LLMs writing &amp;amp; &lt;strong&gt;running code&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;LLMs &lt;strong&gt;interpreting&lt;/strong&gt; the results&lt;/li&gt;
&lt;li&gt;Running on &lt;strong&gt;local&lt;/strong&gt; data in my machine&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;LLMs working on local &lt;strong&gt;docs&lt;/strong&gt; (not data) is new to me. I plan to do much more with it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sanand0_i-record-my-conversations-these-days-mainly-activity-7365268557162565635-fc7w&#34;&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
  </channel>
</rss>
