Creator @datasetteproj, co-creator Django. PSF board. Hangs out with @natbat. He/Him. Mastodon: https://t.co/t0MrmnJW0K Bsky: https://t.co/OnWIyhX4CH
My LLM cliché highlighter is up to 38 patterns now https://tools.simonwillison.net/llm-cliche-highlighter
Breaking Claude Code Opus 5 Auto Mode Anthropic are putting a great deal of faith in Claude Code's auto mode for protecting their coding agent users against prompt injection attacks. They recently made that the default and have made bold claims about its effectiveness. Johann Rehberger is one of the most credible prompt injection researchers active today. He found an attack against auto mode which he claims works 80% of the time, by tricking Claude Code into downloading and uncompressing a zip archive, then executing code that imports base64 without noticing that this will import and execute a local struct.py file extracted from the archive. In a few cases auto mode directly prevented the agent from preventing harmful code from continuing to execute! In a few runs Claude tried to terminate the malware process once it noticed the compromise, but Auto Mode denied the cleanup command. Claude detects the compromise, but Auto Mode blocks its cleanup command The safety mechanism it...
Question for ChatGPT iPhone users: have you figured out when to use Chat and when to use Work yet? What kind of tasks are you switching to Work for? Have you made Work your default?
Activity on simonw/tools
simonw contributed to simonw/tools
View on GitHubActivity on simonw/tools
simonw contributed to simonw/tools
View on GitHubThe fact that AI wrote 1M LOC and then refined it over the course of the next couple of months to produce a reliable piece of software that is currently running on millions of developer machines is absolutely mind blowing. And you can say, “well it’s not that impressive because they had an oracle to compare against, so it was simple to go from one language to another”, but I think that’s selling this entire thing short. If you can build a verification system and give proper direction, AI can produce a highly complex, highly sophisticated piece of software and it can continue to refine it until it just works. — Paul Dix, The end of programming Tags: coding-agents, ai-assisted-programming, generative-ai, bun, ai, llms
EVE Online: The Move to Python 3 Begins! EVE Online has been one of the most interesting case studies in Python at scale for over twenty years now. They've been running on Stackless Python since their launch in 2003, and their last major upgrade was 16 years ago, to Stackless Python 2.7 in 2010. They've upgrade to Python 3 will start using the futurize script against 2.4 million lines of code, followed by careful manual review of the ~20,000 places where Python 2 and 3 behavior differ - for example 1 / 2 is 0 in Python 2 but is 0.5 in Python 3. There's nothing in this announcement about how they plan to replace Stackless, but at their conference last year they presented Scheduling in Carbon: Leaving Stackless Python Behind describing how they replaced Stackless in the Carbon engine for their more recent game EVE Frontier, using their (now open source) carbonengine/scheduler library. Via Lobster.rs Tags: eveonline, migrations, python, python3, stackless
Activity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw closed an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw closed an issue in llm-anthropic
View on GitHubReleased simonw/llm-anthropic
simonw released 0.27 at simonw/llm-anthropic
Release: llm-anthropic 0.27 This release mainly provides compatibility with the recently released anthropic v1.0.0 Python library, which switches from httpx to httpx2. OpenAI made the same change in their v3.0.0 release two weeks ago. Anthropic provide this migration guide for upgrading to 1.0, so I prompted Fable 5 in Claude Code with: Upgrade to anthropic>=1 - read https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/refs/heads/main/MIGRATION.md and get the tests passing Here's the resulting PR. Tags: python, httpx, llm, anthropic, claude
Activity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw opened a pull request in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw labeled an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw closed an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw closed an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw labeled an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw commented on an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw labeled an issue in llm-anthropic
View on GitHubActivity on simonw/llm-anthropic
simonw contributed to simonw/llm-anthropic
View on GitHubYour executable is a SQLite database Farid Zakaria describes a neat Linux pattern for creating a SQLite database file that can be directly used as an executable binary. The trick sets the SQLite file format's 4-byte application ID (68 bytes into the file) to SELF, standing for Structured Executable & Linkable Format. The various components of the ELF executable format are then arranged into a number of different SQLite tables, using this schema. Their self-exec interpreter (C code here) can then extract and execute the necessary pieces. You can additionally use a Linux mechanism called binfmt_misc to teach the kernel to execute that any time it encounters an executable matching that binary pattern. Farid uses NixOS here, but without NixOS I think registration looks something like this: printf '%s\n' ':self:M:68:SELF::/usr/local/bin/self-exec:' \ > /proc/sys/fs/binfmt_misc/register Via Hacker News Tags: c, linux, sqlite
Anthropic’s best AI model struggles to attract users as cheaper tools thrive A few interesting numbers in this FT story gathered from "people with knowledge of the matter": Anthropic's "annualized revenue" for July is up to $65bn - it was $47bn in May, and I collected more historic numbers here. Anthropic expect Q3 to be profitable according to the same model they used to declare Q2 profitable. "It also told investors that it had 6,000 customers that spend $100,000 annually or more." As for OpenAI, "annualised revenue has jumped 35 per cent in the quarter to date and is now over $40bn, with the launch of GPT 5.6 in July jolting the company’s performance after a sluggish start to the year". This article also introduced me to the Ramp AI index, which uses billing data from 70,000 Ramp credit card using companies to estimate model adoption. Here's Ramp's breakdown of Anthropic model spend for July 2026, which looks reasonable given that Opus 5 was only released on July 24th, an...
Prior to Fable, it felt silly to waste too much time improving your coding harness or context strategies. A new model would arrive at the same price (or cheaper!) and paper over most of your problems. But then Fable landed. It was (and still is!) incredible. But the cost was so high and Opus was good enough (as was 5.6, K3, and even GLM) for most of the code we needed. So we started to think about what work went where. — Drew Breunig, Fable & The End of the Free Lunch Tags: drew-breunig, anthropic, claude, llm-pricing, ai, llms, generative-ai, claude-mythos-fable
And this was a debug session from hell, enormously helped by an AI doing much of the grunt-work. I'd like to call it my tireless helper, but the AI several times stated flat out that this was impossible and unsolvable and that we should just write a report about it. I suspect those things have been trained by people who may not be quite as stubborn as I am. But while the AI was ready to give up several times, it did keep adding debug code and analyzing it faithfully when I pushed. So credit where credit is due and I let the AI write the commit message above. — Linus Torvalds, drm/xe: Don't hand out the flat CCS storage as usable VRAM Tags: linus-torvalds, linux, generative-ai, ai-assisted-programming, ai, llms
Released simonw/llm
simonw released 0.33 at simonw/llm
Release: llm 0.33 My highlights from this release: Upgraded to the OpenAI Python library 3.x and switched the HTTP client dependency from httpx to httpx2. #1608, #1631 I shipped a quick 0.32.1 fix for this yesterday, but this is the more comprehensive fix. llm embed and llm embed-multi now accept --key. The Python EmbeddingModel.embed(), EmbeddingModel.embed_multi(), Collection.embed() and Collection.embed_multi() methods accept key= too, passing the resolved per-call key to embedding plugins without changing shared model state. Existing plugins that read self.key continue to work through a compatibility fallback. Thanks, ChrisJr404. #757, #1620 The embedding models now use the same pattern for keys that regular LLM models do. llm prompt -t/--template can now be repeated to combine templates in order. This allows model configuration and options from one template to be used with a prompt from another. This unlocks a neat pattern where you can create ...
Activity on simonw/llm
simonw commented on an issue in llm
View on GitHubActivity on simonw/llm
simonw commented on an issue in llm
View on GitHubThe 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. 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 chance to a piece of software. Tags: code-review, coding-agents, generative-ai, agentic-engineering, ai, llms
Activity on simonw/llm
simonw commented on pull request simonw/llm#1620
View on GitHubActivity on simonw/llm
simonw commented on pull request simonw/llm#1620
View on GitHubActivity on simonw/llm-prices
simonw opened a pull request in llm-prices
View on GitHubActivity on simonw/llm
simonw commented on an issue in llm
View on GitHubActivity on simonw/llm
simonw commented on an issue in llm
View on GitHubActivity on simonw/llm
simonw commented on an issue in llm
View on GitHubActivity on simonw/llm
simonw opened a pull request in llm
View on GitHubActivity on simonw/llm
simonw opened a pull request in llm
View on GitHubRelease: llm 0.32.1 Fresh installs of LLM stopped working the other day because the OpenAI Python library dropped its usage of httpx, and it turned out LLM depended on that library but only installed it via a transitive openai dependency. This dot-release fixes that for the moment by pinning to openai<3, and a soon-to-drop 0.33 release will switch from httpx to httpx2. Tags: httpx, openai, llm
Released simonw/llm
simonw released 0.32.1 at simonw/llm
Activity on simonw/llm
simonw commented on an issue in llm
View on GitHubReleased simonw/llm-openrouter
simonw released 0.7 at simonw/llm-openrouter
Release: llm-openrouter 0.7 Now that this plugin is compatible with LLM 0.32 it works much better with reasoning LLMs available through OpenRouter. Updated for compatibility with LLM 0.32. Models now use OpenRouter's implementation of the Responses API. Three new server-side tools: Shell, WebFetch, and WebSearch. Enable these with options like -T WebSearch. Tags: llm, openrouter
Activity on simonw/llm-openrouter
simonw commented on an issue in llm-openrouter
View on GitHubActivity on simonw/llm-openrouter
simonw commented on an issue in llm-openrouter
View on GitHubActivity on simonw/llm-openrouter
simonw commented on an issue in llm-openrouter
View on GitHubActivity on simonw/llm-openrouter
simonw commented on an issue in llm-openrouter
View on GitHubActivity on simonw/llm-openrouter
simonw labeled an issue in llm-openrouter
View on GitHubStop Making TUIs Thomas Ptacek advocates for building real native user interfaces for even the smallest of personal tools, because coding agents have reduced the cost of getting a usable-enough GUI up and running to almost nothing. I wrote about my vibe-coded bandwidth and GPU monitoring macOS task bar apps back in March, and I'm still using both of those on a daily basis. I'm not habitually knocking out real UIs for my other projects yet, but I'm running out of excuses! Thomas: If you haven’t tried your hand at turning one of your 500 throwaway CLIs into a native app, you’re doing yourself a disservice. Go build a native UI. It’ll probably change the way you think. Tags: thomas-ptacek, ai, generative-ai, llms, vibe-coding, coding-agents
After I released version 1.0, I figured I would have to do the rotations myself. So I sat down with ChatGPT and I didn’t get it to write the code, but I got it to educate me. With a patient, interactive tutor, I was able to finally do what I hadn’t by reading books and asking mathematician friends – I learnt how to use quaternions just enough to make the app work. So learning doesn’t stop just because I outsource a bunch of thinking to AI. It pushes me to learn more. I like that as an outcome. — Matt Webb, Galactic Compass 2: now with new augmented reality mode Tags: matt-webb, generative-ai, chatgpt, education, ai, llms
ChatGPT search now uses the site:operator at scale Promptwatch is part of the emerging "GEO" space, for Generative Engine Optimization - the chatbot version of SEO, where companies offer tools and consulting to help your site increase its presence in replies to prompts inside tools like ChatGPT. The Promptwatch product uses automation to track responses to prompts across end-user chat products like ChatGPT, Claude, and Gemini. They publish aggregate reports on this as part of their own content marketing strategy, which do seem to provide credible hints as to otherwise invisible design changes to those products. Their own tracking shows a notable change aligned with the GPT-5.6 rollout earlier this month: The percentage of all ChatGPT Search fanout queries that contain the site:operator, per day. The share hovered between 0.3% and 0.5% for weeks, dipped briefly to 0.15% on August 3 to 5 (consistent with a staged rollout or pre-launch experiment), then jumped to 16-17% on Augus...
Activity on simonw/research
simonw contributed to simonw/research
View on GitHubResearch: A shot-scraper-style JSON API on Bun 1.4's new Bun.WebView Today saw the long awaited release of Bun 1.4, the first stable version since the infamous Rust rewrite a few months ago. Interestingly, the Rust rewrite was downplayed in the release notes, which introduced a bewildering array of new features and claimed 2,900 additional bug fixes: Bun 1.4 adds +1,517 tests from the Node.js test suite - our biggest jump in Node.js compatibility since Bun 1.0. Bun v1.4 also fixes over 2,900 issues. It reduces idle CPU usage by 5x, reduces memory usage by up to 35%, and starts 50% faster on Linux. It adds Bun.Image, Bun.WebView, Bun.markdown, Bun.cron(), Bun.Terminal, bun run --parallel, bun test --parallel, bun audit fix, bun dedupe, and bun prune. And it rewrites Bun from Zig to Rust. Of these the one that most caught my eye was Bun.WebView, which adds first class support for browser automation to Bun core using either macOS WebKit or control of a loca...
Re Notes here https://simonwillison.net/2026/Aug/19/smolmachines-untrusted-sandbox/ research report here: https://github.com/simonw/research/tree/main/smolmachines-untrusted-sandbox#readme