<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: Notes</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/atom/notes/" rel="self"/><id>http://simonwillison.net/</id><updated>2026-09-11T13:51:32+00:00</updated><author><name>Simon Willison</name></author><entry><title>Don't sleep on wrapture</title><link href="https://simonwillison.net/2026/Sep/11/wrapture/" rel="alternate"/><published>2026-09-11T13:51:32+00:00</published><updated>2026-09-11T13:51:32+00:00</updated><id>https://simonwillison.net/2026/Sep/11/wrapture/</id><summary type="html">&lt;p&gt;Graham Dumpleton's new monkey patching package &lt;a href="https://wrapture.readthedocs.io/"&gt;wrapture&lt;/a&gt; is shaping up to be an indispensable tool for Python developers. I'm not sure why I've seen so little buzz about it!&lt;/p&gt;
&lt;p&gt;Graham has been posting new tutorials for it almost daily since &lt;a href="https://simonwillison.net/2026/Aug/31/introducing-wrapture/"&gt;the initial release&lt;/a&gt; on August 31st. Here's everything he's published so far:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/08/introducing-wrapture/"&gt;Introducing wrapture&lt;/a&gt; - a new monkey patching library that serves both testing and observability (think New Relic style tracing) at the same time.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/unit-testing-with-wrapture/"&gt;Unit testing with wrapture&lt;/a&gt; - how to use it for the same kinds of thing as &lt;code&gt;unittest.mock&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/recording-calls-with-wrapture/"&gt;Recording calls with wrapture&lt;/a&gt;  - recording method calls as timelines and processing and displaying them as trees.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/phased-behaviour-in-wrapture/"&gt;Phased behaviour in wrapture&lt;/a&gt;  - arranging patched methods to change behavior across multiple calls.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/beyond-callables-in-wrapture/"&gt;Beyond callables in wrapture&lt;/a&gt; - monkey patching attributes, dictionaries, generators.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/live-tracing-with-wrapture/"&gt;Live tracing with wrapture&lt;/a&gt;  - tracing a live application to see exactly how it works.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/zero-code-tracing-with-wrapture/"&gt;Zero-code tracing with wrapture&lt;/a&gt;  - configuring tracing in a separate TOML file without modifying Python code at all.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/tracing-flask-with-wrapture/"&gt;Tracing Flask with wrapture&lt;/a&gt;  - using the separate &lt;a href="https://github.com/GrahamDumpleton/wrapture-instrumentation"&gt;wrapture-instrumenation&lt;/a&gt; package to instrument a Flask application. That package also provides instrumentation for &lt;code&gt;aiohttp.client&lt;/code&gt;, &lt;code&gt;aiohttp.web&lt;/code&gt;, &lt;code&gt;django&lt;/code&gt;, &lt;code&gt;fastapi&lt;/code&gt;, &lt;code&gt;flask&lt;/code&gt;, &lt;code&gt;grpc&lt;/code&gt;, &lt;code&gt;http.client&lt;/code&gt;, &lt;code&gt;httpx&lt;/code&gt;, &lt;code&gt;jinja2&lt;/code&gt;, &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;sqlalchemy&lt;/code&gt;, &lt;code&gt;sqlite3&lt;/code&gt;, &lt;code&gt;starlette&lt;/code&gt;, &lt;code&gt;urllib.request&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, &lt;code&gt;uvicorn&lt;/code&gt;, &lt;code&gt;werkzeug.serving&lt;/code&gt;, &lt;code&gt;wsgiref.simple_server&lt;/code&gt;, &lt;code&gt;xmlrpc.client&lt;/code&gt;, &lt;code&gt;xmlrpc.server&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/finding-slow-code-with-wrapture/"&gt;Finding slow code with wrapture&lt;/a&gt; - wrapture's tools for recording timing information, both individually and aggregated across multiple calls.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://grahamdumpleton.me/posts/2026/09/opentelemetry-export-in-wrapture/"&gt;OpenTelemetry export in wrapture&lt;/a&gt; - exporting traces to OpenTelemetry.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Graham also has a &lt;a href="https://github.com/GrahamDumpleton/wrapture-workshops"&gt;set of interactive workshops&lt;/a&gt; for wrapture, implemented as JupyterLab notebooks.&lt;/p&gt;
&lt;p&gt;Wrapture is still alpha software but it's already very usable - especially given you can configure and try it out with a TOML file without modifying any Python code at all.&lt;/p&gt;
&lt;p&gt;This feels like one of those Swiss Army Knife packages that, once mastered, will provide value against all sorts of problems for years to come.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/graham-dumpleton"&gt;graham-dumpleton&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/testing"&gt;testing&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/observability"&gt;observability&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkey-patching"&gt;monkey-patching&lt;/a&gt;&lt;/p&gt;

</summary><category term="graham-dumpleton"/><category term="open-source"/><category term="testing"/><category term="python"/><category term="observability"/><category term="monkey-patching"/></entry><entry><title>August newsletter is out</title><link href="https://simonwillison.net/2026/Sep/4/august-newsletter/" rel="alternate"/><published>2026-09-04T05:54:40+00:00</published><updated>2026-09-04T05:54:40+00:00</updated><id>https://simonwillison.net/2026/Sep/4/august-newsletter/</id><summary type="html">&lt;p&gt;The August edition of my &lt;a href="https://github.com/sponsors/simonw/"&gt;sponsors-only monthly newsletter&lt;/a&gt; is out. If you are a sponsor (or if you start a sponsorship now) you can &lt;a href="https://github.com/simonw-private/monthly/blob/main/2026-08-august.md"&gt;access it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We got more details on OpenAl's accidental cyberattacks&lt;/li&gt;
&lt;li&gt;One-shotting Raccoon Heist games with Fable 5 and Sol 5.6&lt;/li&gt;
&lt;li&gt;Claude auto mode&lt;/li&gt;
&lt;li&gt;Understanding ChatGPT Work&lt;/li&gt;
&lt;li&gt;Model releases&lt;/li&gt;
&lt;li&gt;Miscellaneous bits and bobs&lt;/li&gt;
&lt;li&gt;My projects&lt;/li&gt;
&lt;li&gt;What I'm using at the moment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here's &lt;a href="https://github.com/simonw/monthly-newsletter-archive/blob/main/2026-07-july.md"&gt;a copy of the July newsletter&lt;/a&gt; as a preview of what you'll get. Pay $10/month to stay a month ahead of the free copy!&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/newsletter"&gt;newsletter&lt;/a&gt;&lt;/p&gt;

</summary><category term="newsletter"/></entry><entry><title>Codex bundles LibreOffice</title><link href="https://simonwillison.net/2026/Sep/1/codex-libreoffice/" rel="alternate"/><published>2026-09-01T19:03:01+00:00</published><updated>2026-09-01T19:03:01+00:00</updated><id>https://simonwillison.net/2026/Sep/1/codex-libreoffice/</id><summary type="html">&lt;p&gt;I was poking around in my &lt;code&gt;~/.cache/&lt;/code&gt; folder using &lt;a href="https://www.omnigroup.com/more"&gt;OmniDiskSweeper&lt;/a&gt; when I spotted something interesting. The OpenAI Codex desktop app (since &lt;a href="https://help.openai.com/en/articles/20001276-moving-to-the-new-chatgpt-desktop-app"&gt;rebranded&lt;/a&gt; to just ChatGPT) has 1.7GB of stuff in there in a folder called &lt;code&gt;codex-primary-runtime&lt;/code&gt;, including a full Python installation, a full Node.js installation, and native binaries for &lt;a href="https://poppler.freedesktop.org"&gt;Poppler&lt;/a&gt;, git, and the &lt;a href="https://en.wikipedia.org/wiki/LibreOffice"&gt;LibreOffice&lt;/a&gt; open source office suite (which forked from OpenOffice.org in 2010):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Screenshot of a macOS disk usage app window in column view, titled &amp;quot;/Users/simon/.cache - 442.1 GB&amp;quot;. First column: 356.8 GB huggingface, 82.5 GB uv, 1.7 GB codex-runtimes (selected), 609.0 MB datasette-sqlite, 298.8 MB rod. Second column: 1.7 GB codex-primary-runtime (selected). Third column: 1.7 GB dependencies (selected), 6.3 MB plugins, 4.1 kB runtime.json. Fourth column: 771.0 MB native (selected), 446.4 MB node, 440.6 MB python, 28.7 kB bin. Fifth column: 429.7 MB libreoffice-headless (selected), 187.9 MB poppler, 148.1 MB git, 4.7 MB libheif, 679.9 kB jxrlib." src="https://static.simonwillison.net/static/2026/codex-primay-runtime.webp" /&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;~/.cache/codex-runtimes/codex-primary-runtime/plugins/openai-primary-runtime/plugins/documents&lt;/code&gt; folder includes skills which tell Codex how to find and use those binaries.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/codex"&gt;codex&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openai"&gt;openai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openoffice"&gt;openoffice&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/open-source"&gt;open-source&lt;/a&gt;&lt;/p&gt;

</summary><category term="codex"/><category term="generative-ai"/><category term="openai"/><category term="ai"/><category term="llms"/><category term="openoffice"/><category term="open-source"/></entry><entry><title>More than just code review</title><link href="https://simonwillison.net/2026/Aug/22/more-than-just-code-review/" rel="alternate"/><published>2026-08-22T15:56:54+00:00</published><updated>2026-08-22T15:56:54+00:00</updated><id>https://simonwillison.net/2026/Aug/22/more-than-just-code-review/</id><summary type="html">&lt;p&gt;The key skill required to make productive use of coding agents is being able to confidently instruct them on how to make changes and then confidently verify that those changes have been applied in the correct way.&lt;/p&gt;
&lt;p&gt;Sometimes this involves reviewing every line of code they have written, but there are other ways to achieve that goal. Eyeballing every line of code has never been the most effective way to validate a change to a piece of software.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/code-review"&gt;code-review&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/agentic-engineering"&gt;agentic-engineering&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;&lt;/p&gt;

</summary><category term="code-review"/><category term="coding-agents"/><category term="generative-ai"/><category term="agentic-engineering"/><category term="ai"/><category term="llms"/></entry><entry><title>Markdown SVG upgrades</title><link href="https://simonwillison.net/2026/Aug/16/markdown-svg-upgrades/" rel="alternate"/><published>2026-08-16T23:59:37+00:00</published><updated>2026-08-16T23:59:37+00:00</updated><id>https://simonwillison.net/2026/Aug/16/markdown-svg-upgrades/</id><summary type="html">&lt;p&gt;I started building my &lt;a href="https://tools.simonwillison.net/markdown-svg-renderer"&gt;markdown-svg-renderer&lt;/a&gt; tool &lt;a href="https://tools.simonwillison.net/colophon#markdown-svg-renderer.html"&gt;in May&lt;/a&gt;, but I've since added enough features to it that it's worth talking about here again.&lt;/p&gt;
&lt;p&gt;It's evolved into my ideal tool for sharing Markdown transcripts that include SVG documents. Given my &lt;a href="https://simonwillison.net/tags/pelican-riding-a-bicycle/"&gt;proclivity for drawing pelicans riding bicycles&lt;/a&gt; this is a problem that I needed to solve!&lt;/p&gt;
&lt;p&gt;The tool is very simple. Navigate to &lt;a href="https://tools.simonwillison.net/markdown-svg-renderer"&gt;markdown-svg-renderer&lt;/a&gt; in your browser and paste in some Markdown to see it rendered... or save that Markdown to a CORS-friendly URL or a GitHub Gist and paste in a URL to that document.&lt;/p&gt;
&lt;p&gt;The URL option will give you a bookmarkable page, for example &lt;a style="overflow-wrap: anywhere;" href="https://tools.simonwillison.net/markdown-svg-renderer#url=https%3A%2F%2Fgist.github.com%2Fsimonw%2F6f9e48293be5c916652d29f0dc0b0657"&gt;https://tools.simonwillison.net/markdown-svg-renderer#url=https%3A%2F%2Fgist.github.com%2Fsimonw%2F6f9e48293be5c916652d29f0dc0b0657&lt;/a&gt; - which bakes in the URL to &lt;a href="https://gist.github.com/simonw/6f9e48293be5c916652d29f0dc0b0657"&gt;this Gist&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you visit &lt;a href="https://gist.github.com/simonw/6f9e48293be5c916652d29f0dc0b0657"&gt;the Gist&lt;/a&gt; you'll see raw SVG:&lt;/p&gt;
&lt;p&gt;&lt;img alt="beautiful-circle.md. Here's a self-contained SVG — a &amp;quot;compass study&amp;quot; of a circle with construction lines, a slowly rotating tick ring, and an orbiting accent dot: a block of SVG code" src="https://static.simonwillison.net/static/2026/raw-svg.webp" /&gt;&lt;/p&gt;
&lt;p&gt;In the rendered tool that &lt;a href="https://tools.simonwillison.net/markdown-svg-renderer#url=https%3A%2F%2Fgist.github.com%2Fsimonw%2F6f9e48293be5c916652d29f0dc0b0657"&gt;looks like this&lt;/a&gt; instead:&lt;/p&gt;
&lt;p&gt;&lt;img alt="The same text, but now the code block has been replaced by a tabbed panel. The selected tab reads &amp;quot;Rendered&amp;quot; and shows the rendered PNG. The other tabs are PNG, JPEG, MP4, and Code" src="https://static.simonwillison.net/static/2026/rendered-svg.webp" /&gt;&lt;/p&gt;
&lt;p&gt;As you can see, that SVG block in the Markdown has been transformed into a rendered SVG (in this case animated) plus several tabs.&lt;/p&gt;
&lt;p&gt;The tabs are the really fun bit. The PNG and JPEG tabs render that SVG to those image formats in the browser and lets you copy or download them - useful for sharing on platforms that don't support SVG directly.&lt;/p&gt;
&lt;p&gt;The MP4 tab is &lt;a href="https://github.com/simonw/tools/commit/73e0327f6df9887ba2a9f9f16a2d06a45451d248"&gt;new today&lt;/a&gt; - it examines the SVG to see if it contains any animations, attempts to guess how long the looped video should be, then renders a whole bunch of frames of the animation and loads 30+MB of &lt;a href="https://github.com/ffmpegwasm/ffmpeg.wasm"&gt;ffmpeg.wasm&lt;/a&gt; so it can compile those frames into an MP4 video using the full power of FFMPEG compiled to WebAssembly and running in the browser.&lt;/p&gt;
&lt;p&gt;Being able to turn an animated SVG into a MP4 again makes it easy to share on platforms that can't support SVG animation natively. It's a neat trick!&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/svg"&gt;svg&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/markdown"&gt;markdown&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/tools"&gt;tools&lt;/a&gt;&lt;/p&gt;

</summary><category term="svg"/><category term="markdown"/><category term="tools"/></entry><entry><title>Open letters about AI development</title><link href="https://simonwillison.net/2026/Aug/2/open-letters/" rel="alternate"/><published>2026-08-02T04:16:52+00:00</published><updated>2026-08-02T04:16:52+00:00</updated><id>https://simonwillison.net/2026/Aug/2/open-letters/</id><summary type="html">&lt;h4&gt;Open letters about AI development&lt;/h4&gt;
&lt;p&gt;&lt;em&gt;I wrote this summary of the past few weeks of open letters as a section of &lt;a href="https://simonwillison.net/2026/Aug/2/july-newsletter/"&gt;my sponsors-only newsletter&lt;/a&gt; but I've decided to share it here as well.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.microsoft.com/en-us/corporate-responsibility/topics/open-weight/"&gt;Open Weights and American AI Leadership&lt;/a&gt;&lt;/strong&gt; was shepherded by Microsoft, dated July 24th, and signed by 235 AI-adjacent companies including NVIDIA (see Jensen's &lt;a href="https://twitter.com/jensenhuang/status/2080643682408321103"&gt;first ever tweet&lt;/a&gt;), Amazon, Y Combinator, The Linux Foundation, and (a later signer) OpenAI.&lt;/p&gt;
&lt;p&gt;It's clearly an argument designed to counter &lt;a href="https://www.axios.com/2026/07/20/ai-us-china-open-source-kimi"&gt;any instincts&lt;/a&gt; by the current US government to ban or limit open weight models over "safety" concerns - a reasonable consideration given &lt;a href="https://simonwillison.net/2026/Jun/13/us-government-directive-to-suspend-access/"&gt;what happened to Claude Fable 5&lt;/a&gt;!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Relying solely on closed models is not inherently safe: they can be breached, misused, or fail in ways that outsiders cannot detect. And concentrating advanced AI capabilities behind a small number of closed models compounds that risk. It results in a small number of single points of failure, weakens competition, and leaves critical technology in the hands of a few providers. Open weight models, on the other hand, allow a broad community of researchers and developers to examine their behavior, identify vulnerabilities, develop safeguards, and improve them over time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The one surprising note in the letter is that it comes out in support of distillation, where models train on output from other models:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In shaping this ecosystem, policymakers should be careful not to conflate legitimate model-development techniques with misappropriation. Distillation, or the practice of using one model’s outputs to help train or improve another, is a widely used technique for model improvement, evaluation, and validation. It reflects a long tradition of learning from, building upon, and improving existing technologies, a tradition that has helped drive innovation since the rise of the open-source software movement.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Notably absent from the signatures: Anthropic, who published their own response &lt;a href="https://www.anthropic.com/news/position-open-weights-models"&gt;Our position on open-weights models&lt;/a&gt; three days later. CEO Dario Amodei doubled down on the risk of authoritarian governments building "AI models that are more powerful than those built by the US", and models being "misused to carry out cyberattacks or biological attacks", and called for "a crack down on industrial-scale &lt;a href="https://www.anthropic.com/news/detecting-and-preventing-distillation-attacks"&gt;distillation operations&lt;/a&gt;", while also stating that "Anthropic has never advocated for a ban on open-weights models".&lt;/p&gt;
&lt;p&gt;Then on July 28th &lt;a href="https://www.pacingthefrontier.com"&gt;Pacing the Frontier&lt;/a&gt; was published, featuring signatures from "1,324 employees of frontier AI companies" - with names like Jakub Pachocki (Chief Scientist, OpenAI), Ilya Sutskever (Safe Superintelligence Inc, previously OpenAI), Dario Amodei (Anthropic), Jack Clark (Anthropic) and more. Their core message:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We request that the U.S. government support an international effort to develop the technical and governance tools needed to deliberately pace the frontier of automated AI development.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Their concern is intense competitive pressure combined with accelerated AI progress caused by automated AI research - and given that Anthropic &lt;a href="https://www.anthropic.com/institute/recursive-self-improvement"&gt;produce 80% of their code with Claude Code&lt;/a&gt;, OpenAI had Sol &lt;a href="https://openai.com/index/gpt-5-6-frontier-intelligence-efficiency/"&gt;reduce their end-to-end serving costs by 20%&lt;/a&gt;, and Kimi K3 &lt;a href="https://www.kimi.com/blog/kimi-k3#chip-design"&gt;designed a chip to serve a nano model built on its own architecture&lt;/a&gt;, you can see why people are taking that risk more seriously right now.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/anthropic"&gt;anthropic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openai"&gt;openai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-ethics"&gt;ai-ethics&lt;/a&gt;&lt;/p&gt;

</summary><category term="anthropic"/><category term="generative-ai"/><category term="openai"/><category term="ai"/><category term="llms"/><category term="ai-ethics"/></entry><entry><title>July 2026 newsletter</title><link href="https://simonwillison.net/2026/Aug/2/july-newsletter/" rel="alternate"/><published>2026-08-02T04:12:41+00:00</published><updated>2026-08-02T04:12:41+00:00</updated><id>https://simonwillison.net/2026/Aug/2/july-newsletter/</id><summary type="html">&lt;p&gt;The July edition of my &lt;a href="https://github.com/sponsors/simonw/"&gt;sponsors-only monthly newsletter&lt;/a&gt; is out. If you are a sponsor (or if you start a sponsorship now) you can &lt;a href="https://github.com/simonw-private/monthly/blob/main/2026-07-july.md"&gt;access it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Accidental cyberattacks by OpenAl and Anthropic models under test&lt;/li&gt;
&lt;li&gt;GPT-5.6 Sol, Terra, and Luna&lt;/li&gt;
&lt;li&gt;Claude Opus 5&lt;/li&gt;
&lt;li&gt;Kimi K3 and DeepSeek-V4-Flash-0731&lt;/li&gt;
&lt;li&gt;Open letters about Al development&lt;/li&gt;
&lt;li&gt;A fireside chat and a podcast&lt;/li&gt;
&lt;li&gt;Reigniting my interest in MCP&lt;/li&gt;
&lt;li&gt;Other model releases&lt;/li&gt;
&lt;li&gt;My projects&lt;/li&gt;
&lt;li&gt;What I'm using at the moment&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here's &lt;a href="https://github.com/simonw/monthly-newsletter-archive/blob/main/2026-06-june.md"&gt;a copy of the June newsletter&lt;/a&gt; as a preview of what you'll get. Pay $10/month to stay a month ahead of the free copy!&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/newsletter"&gt;newsletter&lt;/a&gt;&lt;/p&gt;

</summary><category term="newsletter"/></entry><entry><title>Orchestrions</title><link href="https://simonwillison.net/2026/Jul/22/all-the-orchestrions/" rel="alternate"/><published>2026-07-22T14:48:52+00:00</published><updated>2026-07-22T14:48:52+00:00</updated><id>https://simonwillison.net/2026/Jul/22/all-the-orchestrions/</id><summary type="html">&lt;p&gt;San Francisco tip: it only costs around $15 ($10 in quarters plus a $5 bill for the self-playing violin) to activate every single Orchestrion in &lt;a href="https://en.wikipedia.org/wiki/Musée_Mécanique"&gt;Musée Mécanique&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And because most people are bad at allocating their funds you may well be the ONLY person activating the Orchestrions, which means you get to craft the soundscape for the entire museum.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/san-francisco"&gt;san-francisco&lt;/a&gt;&lt;/p&gt;

</summary><category term="san-francisco"/></entry><entry><title>Reverse-engineering is cheap now</title><link href="https://simonwillison.net/2026/Jul/20/cheap-reverse-engineering/" rel="alternate"/><published>2026-07-20T19:24:05+00:00</published><updated>2026-07-20T19:24:05+00:00</updated><id>https://simonwillison.net/2026/Jul/20/cheap-reverse-engineering/</id><summary type="html">&lt;p&gt;I keep hearing anecdotes from people who used coding agents to reverse-engineer and automate devices in their homes.&lt;/p&gt;
&lt;p&gt;I think this is an interesting illustration of the impact of the reduced cost of writing code.&lt;/p&gt;
&lt;p&gt;Prior to agents, it was entirely possible to reverse-engineer home devices. The problem was the ROI - was it really worth all of that effort? More importantly, any experienced programmer knows that undocumented, unstable APIs like that may well change or break in the future. Is that initial work worth the effort if you're committing yourself to a frustrating cycle of maintenance in the future?&lt;/p&gt;
&lt;p&gt;Coding agents change that equation entirely. The effort to get a simple automation working has dropped, as has the cost of trying and failing to get it to work. Since the code is so cheap, the idea of having to maintain it in the future - or throw it away and start again - carries way less psychological baggage.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/reverse-engineering"&gt;reverse-engineering&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai-assisted-programming"&gt;ai-assisted-programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;&lt;/p&gt;

</summary><category term="reverse-engineering"/><category term="coding-agents"/><category term="ai-assisted-programming"/><category term="generative-ai"/><category term="ai"/><category term="llms"/></entry><entry><title>Claude Code uses Bun written in Rust now</title><link href="https://simonwillison.net/2026/Jul/19/claude-code-in-bun-in-rust/" rel="alternate"/><published>2026-07-19T03:54:09+00:00</published><updated>2026-07-19T03:54:09+00:00</updated><id>https://simonwillison.net/2026/Jul/19/claude-code-in-bun-in-rust/</id><summary type="html">&lt;p&gt;In &lt;a href="https://bun.com/blog/bun-in-rust"&gt;Rewriting Bun in Rust&lt;/a&gt; Jarred Sumner made the following claim:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Claude Code v2.1.181 (released June 17th) and later use the Rust port of Bun. Startup got 10% faster on Linux but otherwise, barely anyone noticed. Boring is good.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I decided to have a poke at my own Claude Code installation to see if I could find evidence that it was using Bun written in Rust.&lt;/p&gt;
&lt;p&gt;I found these two commands convincing:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;strings ~/.local/bin/claude | grep -m1 'Bun v1'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;For me this outputs &lt;code&gt;Bun v1.4.0 (macOS arm64)&lt;/code&gt;. The most recent release of &lt;a href="https://github.com/oven-sh/bun/releases"&gt;Bun on GitHub&lt;/a&gt; is currently &lt;a href="https://github.com/oven-sh/bun/releases/tag/bun-v1.3.14"&gt;v1.3.14&lt;/a&gt; from May 12th, so that v1.4.0 version number in Claude supports them shipping a preview of a not-yet-released Bun version.&lt;/p&gt;
&lt;p&gt;(&lt;strong&gt;Update&lt;/strong&gt;: The Rust version &lt;em&gt;has&lt;/em&gt; been released as &lt;a href="https://bun.com/docs/installation#canary-builds"&gt;Bun canary&lt;/a&gt; - running &lt;code&gt;bun upgrade --canary&lt;/code&gt; will install &lt;a href="https://github.com/oven-sh/bun/releases/tag/canary"&gt;this release&lt;/a&gt;.)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This outputs a list of &lt;a href="https://gist.github.com/simonw/c92fb0f67b114ac26e3b95a09ddccfdc"&gt;563 filenames&lt;/a&gt;, starting with these:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It looks like Bun in Rust is indeed being run in production across millions of different devices. Like Jarred said, "Boring is good".&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Here's a neat trick &lt;a href="https://twitter.com/ajanraj25/status/2078825794701242697"&gt;from Ajan Raj&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat &amp;gt; /tmp/bun-version.ts &amp;lt;&amp;lt;'EOF'
console.log("embedded bun:", Bun.version);
process.exit(0);
EOF
BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This outputs &lt;code&gt;1.4.0&lt;/code&gt; for me.&lt;/p&gt;
&lt;p&gt;Here's &lt;a href="https://github.com/oven-sh/bun/commit/b18bf6d1d0a92238f240bfd125f0e3b3461b9243#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519"&gt;the commit from May 17th&lt;/a&gt; that updated the version in &lt;code&gt;package.json&lt;/code&gt; to 1.4.0. That version hasn't been changed since then, but also hasn't yet made it into a tagged release outside of &lt;code&gt;canary&lt;/code&gt;.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bun"&gt;bun&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/rust"&gt;rust&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/anthropic"&gt;anthropic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude-code"&gt;claude-code&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jarred-sumner"&gt;jarred-sumner&lt;/a&gt;&lt;/p&gt;

</summary><category term="bun"/><category term="rust"/><category term="anthropic"/><category term="claude-code"/><category term="jarred-sumner"/></entry><entry><title>Spot birds not golf</title><link href="https://simonwillison.net/2026/Jul/17/spot-birds-not-golf/" rel="alternate"/><published>2026-07-17T02:58:07+00:00</published><updated>2026-07-17T02:58:07+00:00</updated><id>https://simonwillison.net/2026/Jul/17/spot-birds-not-golf/</id><summary type="html">&lt;p&gt;Suggestion for hyperscalers feeling pressure over data center water use:&lt;/p&gt;
&lt;p&gt;Buy up a few exclusive country clubs, convert the golf courses into public parks, pay for guides and binoculars to get the previous members into birdwatching - help them embrace a more sustainable hobby!&lt;/p&gt;
&lt;p&gt;Google &lt;a href="https://sustainability.google/reports/google-2026-environmental-report/"&gt;used 10.9 billion gallons in 2025&lt;/a&gt;, so about 30 million gallons per day.&lt;/p&gt;
&lt;p&gt;The Coachella Valley has &lt;a href="https://www.cvwd.org/167/Water-Conservation"&gt;120 golf courses each using ~800 acre-feet per year&lt;/a&gt;,  which is ~750,000 gallons per day.&lt;/p&gt;
&lt;p&gt;So Google buying up 40 of those courses (1/3) should do the trick.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/ai-energy-usage"&gt;ai-energy-usage&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;&lt;/p&gt;

</summary><category term="ai-energy-usage"/><category term="ai"/></entry><entry><title>Fable gets another bump</title><link href="https://simonwillison.net/2026/Jul/12/bump/" rel="alternate"/><published>2026-07-12T21:20:07+00:00</published><updated>2026-07-12T21:20:07+00:00</updated><id>https://simonwillison.net/2026/Jul/12/bump/</id><summary type="html">&lt;p&gt;One of the consequences of GPT-5.6 Sol being clearly a Fable/Mythos class model is that Anthropic have, once again, &lt;a href="https://x.com/claudeai/status/2076351399999557669"&gt;bumped the date&lt;/a&gt; that Fable stops being available in their Claude Max plans:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We're extending Claude Fable 5 access on all paid plans, as well as keeping Claude Code’s weekly rate limits 50% higher, through July 19.&lt;/p&gt;
&lt;p&gt;As before, you can use up to half of your weekly usage limit on Fable 5. After that, you can continue using Fable 5 with usage credits, or switch to another model to keep working within your remaining limits.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Anthropic's original rationale for this was compute constraints - they wanted a better idea of both demand and compute availability before committing to keeping the new model cheap for subscribers.&lt;/p&gt;
&lt;p&gt;OpenAI appear confident that they won't need to restrict access to GPT-5.6 in the same way. Here's Thibault Sottiaux &lt;a href="https://twitter.com/thsottiaux/status/2076365965915467978"&gt;this morning&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The last 48 hours of Codex and ChatGPT Work have been intense! Three important updates:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Temporarily removing the 5 hour usage limit restriction for all Plus, Business and Pro plans&lt;/li&gt;
&lt;li&gt;Rolling out changes that will make GPT 5.6 Sol more efficient across the board and that will be reflected in less usage being used so that it can take you further. Exact impact to be quantified and shared&lt;/li&gt;
&lt;li&gt;We hit 6M active users, and are landing a usage reset in the next hour&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;At this point I think Anthropic should change track and keep Fable permanently available on those plans. OpenAI are winning users simply due to the uncertainty that surrounds Fable access.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/anthropic"&gt;anthropic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gpt"&gt;gpt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/openai"&gt;openai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude-mythos-fable"&gt;claude-mythos-fable&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llm-pricing"&gt;llm-pricing&lt;/a&gt;&lt;/p&gt;

</summary><category term="anthropic"/><category term="generative-ai"/><category term="gpt"/><category term="openai"/><category term="claude-mythos-fable"/><category term="ai"/><category term="llms"/><category term="llm-pricing"/></entry><entry><title>Fable's judgement</title><link href="https://simonwillison.net/2026/Jul/3/judgement/" rel="alternate"/><published>2026-07-03T18:51:06+00:00</published><updated>2026-07-03T18:51:06+00:00</updated><id>https://simonwillison.net/2026/Jul/3/judgement/</id><summary type="html">&lt;p&gt;One of the most interesting tips I got from &lt;a href="https://www.ai.engineer/worldsfair/schedule?session=asn_slot_2026_06_30_main_stage_1230_2026_06_08t09_35_43_039z"&gt;the Fireside Chat&lt;/a&gt; I hosted with Cat Wu and Thariq Shihipar from the Claude Code team at AIE on Wednesday was to let Fable (and to a certain extent Opus) use their own judgement rather than dictating how they should work.&lt;/p&gt;
&lt;p&gt;The example they gave was testing. You can tell Fable "only use automated testing for larger features, don't update and run tests for small copy or design changes" - but it's better to just tell Fable to use its own judgement when deciding to write tests instead.&lt;/p&gt;
&lt;p&gt;Jesse Vincent just gave me a related tip to help avoid burning too many of those valuable Fable tokens in the few days we have left before the prices go up. Tell Fable to use other models for smaller tasks, applying its own judgement about which model to use.&lt;/p&gt;
&lt;p&gt;I prompted Claude Code just now with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;For all coding tasks use your judgement to decide an appropriate lower power model and run that in a subagent&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Claude saved this memory file in &lt;code&gt;~/.claude/projects/name-of-project/memory/delegate-coding-to-subagents.md&lt;/code&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;&lt;code&gt;---
name: delegate-coding-to-subagents
description: Simon wants coding tasks delegated to subagents running an appropriately lower-power model
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 30068d78-43a9-4fb1-bb29-9799e18c526a
---
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Stated by Simon on 2026-07-03: "For all coding tasks use your judgement to
decide an appropriate lower power model and run that in a subagent."&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Why:&lt;/strong&gt; cost/efficiency — implementation work rarely needs the top-tier
model; judgment, review, and synthesis stay with the main loop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How to apply:&lt;/strong&gt; when a task in this project is primarily writing/editing
code, spawn an Agent with a model override (sonnet for substantive
implementation, haiku for trivial/mechanical edits) and a self-contained
prompt; review the result in the main loop before committing. Design,
auditing, data synthesis, and anything judgment-heavy stays in the main
model. See also [[project-goals]].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So far it seems to be working well. I'm getting a &lt;em&gt;ton&lt;/em&gt; of work done and my Fable allowance is shrinking less quickly than before.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/claude"&gt;claude&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude-code"&gt;claude-code&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/prompt-engineering"&gt;prompt-engineering&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/claude-mythos-fable"&gt;claude-mythos-fable&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/anthropic"&gt;anthropic&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/thariq-shihipar"&gt;thariq-shihipar&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cat-wu"&gt;cat-wu&lt;/a&gt;&lt;/p&gt;

</summary><category term="claude"/><category term="ai"/><category term="claude-code"/><category term="llms"/><category term="prompt-engineering"/><category term="coding-agents"/><category term="generative-ai"/><category term="claude-mythos-fable"/><category term="anthropic"/><category term="thariq-shihipar"/><category term="cat-wu"/></entry><entry><title>June 2026 newsletter</title><link href="https://simonwillison.net/2026/Jul/3/june-newsletter/" rel="alternate"/><published>2026-07-03T14:50:50+00:00</published><updated>2026-07-03T14:50:50+00:00</updated><id>https://simonwillison.net/2026/Jul/3/june-newsletter/</id><summary type="html">&lt;p&gt;The June edition of my &lt;a href="https://github.com/sponsors/simonw/"&gt;sponsors-only monthly newsletter&lt;/a&gt; is out. If you are a sponsor (or if you start a sponsorship now) you can &lt;a href="https://github.com/simonw-private/monthly/blob/main/2026-06-june.md"&gt;access it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This month:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Claude Fable 5, GPT-5.6, and US export restrictions&lt;/li&gt;
&lt;li&gt;GLM-5.2 is the new best open weights model&lt;/li&gt;
&lt;li&gt;Tokenmaxxing is so over&lt;/li&gt;
&lt;li&gt;Datasette Apps&lt;/li&gt;
&lt;li&gt;sqlite-utils and shot-scraper and Datasette&lt;/li&gt;
&lt;li&gt;Miscellaneous WASM projects&lt;/li&gt;
&lt;li&gt;Other model releases&lt;/li&gt;
&lt;li&gt;What I'm using&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here's &lt;a href="https://github.com/simonw/monthly-newsletter-archive/blob/main/2026-05-may.md"&gt;a copy of the May newsletter&lt;/a&gt; as a preview of what you'll get. Pay $10/month to stay a month ahead of the free copy!&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/newsletter"&gt;newsletter&lt;/a&gt;&lt;/p&gt;

</summary><category term="newsletter"/></entry><entry><title>Understand to participate</title><link href="https://simonwillison.net/2026/Jul/2/understand-to-participate/" rel="alternate"/><published>2026-07-02T17:07:14+00:00</published><updated>2026-07-02T17:07:14+00:00</updated><id>https://simonwillison.net/2026/Jul/2/understand-to-participate/</id><summary type="html">&lt;p&gt;I saw Geoffrey Litt speak at &lt;a href="https://www.ai.engineer/worldsfair/2026"&gt;AIE&lt;/a&gt; yesterday, and one framing he used particularly resonated with me:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Understand to participate&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Geoffrey was talking about the challenge of collaborating with coding agents as they construct increasingly large and sophisticated changes, and the need to avoid taking on &lt;a href="https://simonwillison.net/tags/cognitive-debt/"&gt;cognitive debt&lt;/a&gt; as your understanding drifts from how the code actually works.&lt;/p&gt;
&lt;p&gt;His argument is that you need to understand the code to a depth that enables you to participate further with the model:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You can learn what the agent is doing to make sure you can be an active participant in the creative process. [...]&lt;/p&gt;
&lt;p&gt;You need a rich set of concepts in your mind to think creatively and fluently about how to move something forward. If you're lacking that fluency, your ability to participate in the project is meaningfully limited.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The AIE talks are all recorded - all 300+ of them! - and should be trickling out over the next three weeks. Geoffrey's is one that I recommend catching on YouTube.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update 10th July&lt;/strong&gt;: here's &lt;a href="https://youtu.be/WkBPX-oDMnA?is=ojFaLX2onMn3ARhi"&gt;Geoffrey's talk on YouTube&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Geoffrey also published &lt;a href="https://twitter.com/geoffreylitt/status/2072522251300409556"&gt;a thread version of his talk&lt;/a&gt; on Twitter.&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/geoffrey-litt"&gt;geoffrey-litt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/coding-agents"&gt;coding-agents&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cognitive-debt"&gt;cognitive-debt&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/generative-ai"&gt;generative-ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ai"&gt;ai&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/llms"&gt;llms&lt;/a&gt;&lt;/p&gt;

</summary><category term="geoffrey-litt"/><category term="coding-agents"/><category term="cognitive-debt"/><category term="generative-ai"/><category term="ai"/><category term="llms"/></entry></feed>