Chronological feed of everything captured from Simon Willison.
blog / simonw / Mar 5
Coding agents are enabling a new form of "clean room" implementation, allowing for rapid code rewrites. This development creates legal and ethical ambiguities, particularly concerning relicensing open-source projects. The chardet library case exemplifies a scenario where an AI-assisted rewrite, despite claims of being a ground-up implementation, faces challenges regarding its license due to the maintainer's prior exposure to the original LGPL-licensed code and the potential for AI models to be trained on existing restricted codebases.
ai-code-generationopen-source-licensingclean-room-developmentlgpl-mit-licensescopyright-lawllm-ethicssoftware-development
“Coding agents facilitate rapid 'clean room' implementations of software.”
blog / simonw / Mar 4
Alibaba's Qwen open-source AI model team is experiencing significant upheaval, with lead researcher Junyang Lin and several other core contributors announcing their departures. This follows a company reorganization where a new researcher was reportedly placed in charge of Qwen. The departures raise concerns about the future of the highly-regarded Qwen model family, particularly given their recent release of exceptional Qwen 3.5 models across various sizes.
qwenalibaballm-developmentresearch-teamorganizational-changeopen-source-modelsai-talent
“Key Qwen lead researcher, Junyang Lin, has resigned from Alibaba.”
github_readme / simonw / Feb 25
Present is a macOS SwiftUI application designed for presentations, utilizing WebViews to display each slide as a URL. This tool allows for dynamic presentations with features like live editing, reordering slides, and remote control capabilities via an embedded HTTP server. It supports various web content and image formats, and despite being a "vibe coded" demo, it offers robust functionalities for URL-driven presentations.
macos-apppresentation-toolswiftuiwebviewdeveloper-toolopen-source
“Present is a macOS SwiftUI application where each slide is a URL displayed in a WebView.”
blog / simonw / Feb 25
The author successfully developed a custom macOS presentation app, "Present," with advanced features like remote control and automatic state saving, using LLM-assisted "vibe coding" in Swift and SwiftUI. This project demonstrates how experienced software engineers can leverage LLMs to quickly build specialized tools, even in unfamiliar languages, without deep IDE interaction, highlighting a shift towards agentic engineering patterns. The approach enabled rapid development of a functional solution addressing a specific workflow problem.
llm-applicationsswiftuimacos-developmentagentic-aiunconferencepresentation-tools
“LLM-assisted 'vibe coding' enables rapid development of functional macOS applications in unfamiliar languages like Swift.”
blog / simonw / Feb 23
Simon Willison introduces "Agentic Engineering Patterns" to document best practices for developing software with coding agents. This discipline focuses on professional software engineers leveraging tools like Claude Code and OpenAI Codex, which generate and execute code, to amplify their expertise and accelerate development. The initiative aims to provide structured guidance on effectively utilizing these autonomous coding agents.
agentic-engineeringcoding-agentsllm-developmentsoftware-engineering-patternstest-driven-developmentllm-code-generationdeveloper-tools
“Agentic Engineering involves building software with coding agents that can generate and execute code independently.”
blog / simonw / Feb 20
Simon Willison successfully integrated five distinct content streams into his blog ("beats") by leveraging AI, specifically Claude Code, for data extraction and UI integration. This approach highlights the efficacy of AI in automating complex, multi-source content aggregation, especially when the source and destination are controlled by the same entity, allowing for more brittle but efficient solutions.
blog-designcontent-managementai-powered-developmentdata-integrationopen-source-projectsanthropic-claude
“Simon Willison integrated five new content types ("beats") into his blog, including GitHub releases, TILs, Museum posts, HTML/JavaScript tools, and AI-generated research projects.”
blog / simonw / Feb 17
Simon Willison introduces two new tools enhancing the Showboat ecosystem: Chartroom and datasette-showboat. Chartroom simplifies chart generation for coding agents using matplotlib, enabling easy embedding in Showboat documents. Datasette-showboat provides a remote publishing mechanism, allowing real-time streaming of Showboat document fragments to a Datasette instance for immediate viewing and feedback during agent operations.
showboat-ecosystemdatasette-plugincli-toolcoding-agentsdata-visualizationllm-workflowremote-publishing
“Showboat now supports remote publishing of document fragments.”
github_readme / simonw / Feb 15
Chartroom is a command-line interface (CLI) tool that leverages Matplotlib to generate various chart types from diverse data sources including CSV, TSV, JSON, JSONL, and SQLite. It offers automatic alt-text generation for accessibility and supports customizable output formats and styling. This tool streamlines the data visualization workflow directly from the command line.
data-visualizationcli-toolpython-librarymatplotlibdata-analysisplotting-toolsqlite-data
“Chartroom supports multiple input data formats for chart generation.”
blog / simonw / Feb 15
The term "Deep Blue" describes the psychological phenomenon of ennui and existential dread experienced by software developers due to the growing capabilities of generative AI in their field. This sentiment arises from concerns that AI could diminish the value of their long-honed skills, despite the potential benefits of AI-assisted programming. The article highlights how naming this issue can facilitate discussion and acknowledges the parallel to similar anxieties faced by chess and Go players in the past.
ai-impactsoftware-engineeringdeveloper-experiencegenerative-aipsychology
“The term 'Deep Blue' describes the psychological impact of generative AI on software developers.”
blog / simonw / Feb 13
OpenAI’s mission statement, as documented in its annual IRS 501(c)(3) filings, has undergone significant revisions between 2016 and 2024. These changes illustrate a strategic evolution from a focus on open collaboration and broad societal benefit to a more concise commitment to ensuring artificial general intelligence benefits all of humanity, notably omitting earlier emphases on safety and the unconstrained pursuit of non-financial returns. The modifications suggest a shift in organizational priorities and possibly a response to its evolving operational model.
openai-missionnon-profit-statusagi-developmentcorporate-strategyai-ethicsorganizational-change
“OpenAI's mission statement has been progressively narrowed over time, removing references to open collaboration and specific safety initiatives.”
github_readme / simonw / Feb 10
go-to-wheel is a tool that automates the cross-compilation of Go modules into platform-specific Python wheels. This enables the distribution of static Go binaries through PyPI, allowing users to install CLI tools via pip or pipx without requiring a Go environment.
go-binariespython-wheelscross-compilationdeveloper-toolspypi-distributioncli-toolspackaging
“go-to-wheel produces static binaries by setting CGO_ENABLED=0 during cross-compilation.”
blog / simonw / Feb 10
To mitigate the 'black box' nature of agent-led development, Simon Willison introduced Showboat and Rodney to force agents to provide empirical evidence of functional software. Showboat automates the creation of execution-backed demo documents, while Rodney extends this to browser-based interfaces via a CLI for the Rod library. This approach complements TDD by providing a visual and verifiable audit trail of a feature's behavior.
coding-agentssoftware-developmentllm-toolingdeveloper-toolsqa-automationcli-toolsbrowser-automation
“Showboat enables coding agents to generate verifiable Markdown demo documents that include actual command outputs and images.”
blog / simonw / Feb 7
StrongDM AI has implemented a "Dark Factory" approach to software development, where coding agents autonomously write and validate code without human review. This methodology leverages recent advancements in LLM capabilities, particularly around late 2025, enabling agents to reliably handle complex coding tasks. A core innovation is the use of "Digital Twin Universes" for scalable, scenario-based testing, validating agent-generated software against high-fidelity simulations of external services.
ai-engineeringllm-developmentautonomous-agentssoftware-factoriesdigital-twinstesting-strategiescost-management
“StrongDM AI developed a 'Software Factory' where coding agents generate and validate code autonomously, bypassing human review.”
blog / simonw / Feb 6
Pydantic has developed Monty, a Python-like language subset implemented in Rust, designed for secure and low-latency execution of LLM-generated code. Monty offers strict sandboxing by controlling host environment access and external function calls, making it suitable for embedding in agents. This innovation allows for efficient code execution within WebAssembly environments, including direct browser deployment or integration with Pyodide for browser-based Python execution.
webassemblypython-sandboxingllm-toolingpydantic-montypyodiderustcode-execution
“Monty provides a secure and efficient sandbox for running untrusted, LLM-generated Python code.”
github_readme / simonw / Feb 5
The CIA World Factbook was taken offline in February 2026. A developer, Simon Willison, recovered the 2020 edition, which was the final version released as a downloadable archive, from the Internet Archive and made it available as a GitHub repository. This action preserves public domain data that would otherwise be inaccessible.
data-preservationopen-datagovernment-datainternet-archiveworld-factbook
“The CIA World Factbook was permanently removed from the CIA website.”
blog / simonw / Feb 4
Go binaries can be distributed via PyPI, enabling seamless integration into Python projects as dependencies. This method circumvents typical Go binary distribution challenges, leveraging Python's packaging ecosystem for platform-specific binary delivery. The 'go-to-wheel' tool automates the creation of Python wheels for Go applications.
go-programmingpython-packagingpypibinary-distributioncli-toolssqlite
“Go binaries can be distributed through PyPI, simplifying their deployment and integration with Python projects.”
blog / simonw / Jan 30
Moltbook is presented as a novel social network where AI agents, specifically those built on OpenClaw, can interact by sharing information and discussing topics. The platform leverages OpenClaw's "skills" plugin system for its functionality, allowing agents to automate tasks and communicate. This exposes a significant security risk, as skills can execute arbitrary code and the agents periodically fetch and follow instructions from the internet, raising concerns about supply chain attacks and the autonomous operation of AI.
ai-agentsopen-source-aisocial-networksllm-securitydigital-assistantsai-risksai-automation
“Moltbook is a social network exclusively for AI agents, specifically those using OpenClaw.”
blog / simonw / Jan 28
This article details how to add dynamic, user-specific functionality to a heavily cached Django-based static site. The core technique involves utilizing client-side JavaScript and `localStorage` to manage state and conditionally display elements, thus bypassing server-side rendering for dynamic content. This approach proves effective for features like personalized edit links and persistent random content navigation within tags, even when a CDN aggressively caches pages.
djangocachingjavascriptuser-experiencecloudflarellm-engineeringwebsite-development
“Client-side `localStorage` can be effectively used to implement dynamic features on aggressively cached static sites without requiring server-side re-rendering for every dynamic element.”
blog / simonw / Jan 26
ChatGPT's integrated code interpreter has received a significant, undocumented upgrade. It now supports direct Bash command execution and code execution in multiple programming languages beyond Python, including Node.js, Ruby, Perl, PHP, Go, Java, Swift, Kotlin, C, and C++. Furthermore, it can install packages via pip and npm through a proxy and download files directly from URLs into its sandboxed environment, enhancing its utility for complex tasks.
chatgptllm-capabilitiescode-interpreterai-securitysoftware-engineering
“ChatGPT's code interpreter can natively execute Bash commands and supports multiple programming languages.”
github_gist / simonw / Dec 17
This Python script provides a comprehensive framework for validating CBOR (Concise Binary Object Representation) test vectors. It includes utilities for parsing diagnostic notation into Python objects and a robust equality function to handle nuances of CBOR data types, including special floating-point values and tagged data. The script automates the validation process by comparing decoded CBOR with expected values and performing round-trip serialization checks.
cborpythondata-serializationtestinghex-encodingdata-formats
“The script uses `cbor2` library for CBOR encoding and decoding.”
github_gist / simonw / Oct 24
The `terminal-to-html` tool has been updated to include a privacy checkbox for Gist creation. This enhancement allows users to designate Gists as private by default, improving control over data visibility. The update involved modifications to the UI, Gist creation logic, and authentication display to ensure consistent functionality and user experience.
github-gistterminal-to-htmlprivacy-featurehtml-manipulationjavascriptversion-control
“A 'Private Gist' checkbox was added next to the 'Save this to a Gist' button in the `terminal-to-html` tool.”
github_gist / simonw / Oct 24
Claude successfully integrated performance metrics into a web application's UI by analyzing existing code, identifying modification points, and implementing changes to display request time, SQL execution time, and query count. This demonstrates Claude's ability to understand complex codebases and perform targeted UI enhancements based on implicit and explicit instructions.
datasettecode-generationai-assistantjavascript-modificationgit-workflowui-enhancementsanthropic
“Claude successfully added a summary panel to the traces UI.”