| Introducing Kimi K3.1 Pro |
https://www.kimi.ai/blog/kimi-k3-1-pro |
Kimi K3.1 Pro landed on the Kimi API today - it's not yet open weights, but Moonshot promise "Full model weights will be released by Nov 4, 2026".
They're also offering a "Highspeed" version that's 2-3x faster, at twice the price (except for input token cache hits, which are priced the same).
The [US dollar pricing](https://platform.kimi.ai/docs/pricing/chat) is $2.00/million tokens for input and $10/million for output - the same as GPT-6.1 Sol and half the price of Claude Opus 5.5.
Moonshot's own benchmarks show Kimi as approximately level with Opus 5.5 and GPT-6 Astra - beating them on a few benchmarks, coming close on others.
Artificial Analysis [scored Kimi at 55](https://artificialanalysis.ai/models/kimi-k3-1-pro) - ahead of Claude Fable 5.1, GPT-6 Astra, and Gemini 4 Argon (all at 53) and behind only Claude Opus 5.5 (58).
This is the first time a (soon-to-be) open weight model has scored this highly against the frontier.
I tried it out via the [Moonshot API](https://platform.kimi.ai/docs/get-your-api-key) using the [llm openai endpoint](https://llm.datasette.io/en/stable/other-models.html#openai-endpoint) command I added to [LLM 0.32](https://llm.datasette.io/en/stable/changelog.html#v0-32) back in August:
llm openai endpoint \
https://api.moonshot.ai/v1 \
--key kimi \
-m kimi-k3.1-pro \
"Generate an SVG of a pelican riding a bicycle" \
--responses \
-o reasoning_effort low \
> kimi-k3.1-pro-pelican-low.stdout.txt \
2> kimi-k3.1-pro-pelican-low.stderr.txt
`llm openai endpoint` can run prompts against any OpenAI-compatible endpoint but doesn't log the results, hence the extra options to save stdout and stderr (the reasoning trace).
Here [are the pelicans](https://tools.simonwillison.net/markdown-svg-renderer?url=https%3A%2F%2Fgist.github.com%2Fsimonw%2F9b7181492209387da1d4f53002f26663) I got for Kimi K3.1 Pro on the three reasoning levels it supports - low, medium, and max. This is max:

For comparison, I ran fresh [pelicans against Kimi K3](https://tools.simonwillison.net/markdown-svg-renderer?url=https%3A%2F%2Fgist.github.com%2Fsimonw%2Feba9a4283c9e94cbbb5325902a3921a8) on those three reasoning levels. |
2026-10-23 19:40:54+00:00 |
| DE STAAT - FREEDOM (Official Music Video) |
https://www.youtube.com/watch?v=hKO4pQtIXow |
OK well this is a first for me... at [00:44](https://www.youtube.com/watch?v=hKO4pQtIXow&t=44s) in this new music video by Dutch alternative rock band [De Staat](https://en.wikipedia.org/wiki/De_Staat):
<video
src="https://static.simonwillison.net/static/2026/freedom-pelican.mp4"
poster="https://static.simonwillison.net/static/2026/freedom-pelican-poster.jpg"
preload="none"
loop="1" controls="1"
playsinline="1" muted="1"
width="1280"
height="720"
style="display: block; width: 100%; height: auto;"
> </video>
The visual effects are credited to Matties Grooten of [Fake it or Leave it](https://fakeitorleaveit.com). |
2026-10-22 19:42:26+00:00 |
| Donating Agent Skills to the Agentic AI Foundation |
https://www.anthropic.com/news/donating-agent-skills-to-the-agentic-ai-foundation |
News today from Anthropic:
> We’re committed to keeping Agent Skills open, community-driven, and vendor-neutral. Today, we are donating the standard to the Agentic AI Foundation (AAIF) under the Linux Foundation, [which we co-founded](https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation) with Block and OpenAI last year, and to which we donated the Model Context Protocol (MCP).
I'm pleased to note I called this one [last December](https://simonwillison.net/2025/Dec/19/agent-skills/), when Anthropic first declared skills to be an "open standard":
> I wouldn't be surprised to see this end up [in the AAIF](https://simonwillison.net/2025/Dec/9/agentic-ai-foundation/), recently the new home of the MCP specification.
Fun side note: since my blog content is available to Claude via the [datasette-mcp](https://github.com/datasette/datasette-mcp)
plugin I found that post by [prompting Claude](https://claude.ai/share/80b341de-590b-4834-bca9-0d9c9a3a0298) to "`Use simonwillison.net MCP to find if I ever talked about how I want skills to be donated to a standards body`". |
2026-10-22 18:09:56+00:00 |
| Today's PHP Security Release, and How We're Strengthening PHP Security |
https://thephp.foundation/blog/2026/10/21/todays-php-security-release-and-how-were-strengthening-php-security/ |
If you're running anything on PHP it's vital you upgrade - today's updates (across the entire PHP 8.x line) address two remote code execution holes, and there have been exploits circulating since last night, thanks to a leak in the coordinated disclosure process.
This post from the PHP Foundation explain what went so wrong:
> On Tuesday, October 20th, at around 15:00 UTC, the two CVE IDs began circulating on online forums and social media. They came with a wrong release time and a wrong CVSS score of 10.0 (the actual score is 9.2). No technical details leaked. In response, the PHP project brought its pre-announcement forward and [published it at 19:30 UTC](https://www.php.net/archive/2026.php#2026-10-20-1). It also moved the release from October 22nd, 14:00 UTC, to October 21st, 14:00 UTC [...]
>
> As a result of the leak and pre-announcement around 20:00 UTC, Calif, one of the security firms that had reported the issues mistakenly published a video. It showed their proof of concept working against a number of targets and revealed a few additional, though limited, details about the vulnerabilities. Copies of the deleted video started circulating on social media soon after. The video contributed to accelerated development of various PoCs (exploitation proof of concepts), which then increased circulation on October 21st.
[This article](https://www.wiz.io/blog/php2shell-php-rce) from the team that discovered the original vulnerability includes a more detailed timeline of the original intended responsible disclosure:
> - **August 19, 2026:** Wiz Research discovers the first PHP vulnerability using Wiz Atlas, Gemini 4 Argon, and GPT-5.6 Sol.
> - **August 20, 2026:** Unauthenticated RCE is confirmed against Drupal.
> - **August 21, 2026:** Unauthenticated RCE is confirmed against WordPress.
> - **August 24, 2026:** Wiz Research reports the vulnerabilities to the PHP security team.
> - **September 21, 2026:** PHP acknowledges the reports and begins developing a coordinated fix.
> - **October 21, 2026:** Patched PHP releases become available.
> - **October 21, 2026:** Public disclosure. |
2026-10-21 18:41:53+00:00 |
| Panache — RTS Belle Époque pour mobile |
https://github.com/menufactory43/panache/ |
Well this is delightful: I [released Battle Drones](https://simonwillison.net/2026/Oct/20/battledrones/) yesterday under an Apache 2.0 License and there's already a French language fork which reskins the game to take place in steampunk 1900s France and adds an animated intro!
> **Panache** est un jeu de stratégie en temps réel pour mobile et navigateur, dans la France de la Belle Époque (vers 1900) : dirigeables, Fardiers à vapeur, Creusot cuirassés, automates en képi, Gargantua la forteresse marchante — et beaucoup de panache.
You can [play Panache here](https://menufactory43.github.io/panache/) - it's worth clicking that link just to experience the new intro video.
So far it's mostly just aesthetic updates as opposed to gameplay changes. The music has had a French twist added to it as well.
The new steampunk models are so cool!

Here's a page with [the original Battle Drones models](https://simonw.github.io/battledrones/models.html) and that same page [with the new Panache alternatives](https://menufactory43.github.io/panache/models.html).
This is a comparison of the original and the new design for the Goliath:
 |
2026-10-21 16:25:16+00:00 |
| eMudhra Intermediate CA Compromise |
https://emudhra.we-have-a-problem.com |
This is very, very bad news:
> The private keys of eight eMudhra intermediate CA certificates have been compromised. They chain to roots trusted by the Mozilla, Microsoft, Apple and Chrome root programs and by many downstream trust stores.
Any software that bundles a list of trusted certificates needs to be updated. This site is tracking software updates [via this GitHub repository](https://github.com/galadran/we-have-a-problem.com) - Linux distros need to update their `ca-certificates` packages.
In Python world [uv 0.13.4](https://github.com/astral-sh/uv/releases/tag/0.13.4) and [pip 26.2.2](https://github.com/pypa/pip/releases/tag/26.2.2) and [certifi 2026.10.19](https://github.com/certifi/python-certifi/releases/tag/2026.10.19) have been released with upgraded certificate lists.
There's a [very informative thread](https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576) about this on the official Python forum. |
2026-10-20 23:50:25+00:00 |
| My obituary for programming |
https://dumbmatter.com/2026/10/programming-obituary/ |
Jeremy Scheff poignantly captures the key loss caused by coding agents for career programmers who enjoyed the *puzzle* of developing code:
> Programming turned into one of the greatest jobs you could imagine. You got paid to work on tricky little logic puzzles. The trickier the puzzle, the more you got paid. But even pretty simple puzzles were worth a lot of money because regular people just couldn't do it! No, they needed us. They would give us a problem and we would solve it the way we wanted. We set the strategy, we made the timeline, we defined what was and was not possible.
If you're a programmer who thrives on building working systems and doesn't care too deeply about the problems solved along the way, LLMs are the gift that keeps on giving.
If directly solving those problems was a big part of your enjoyment, the loss is very real. |
2026-10-19 23:58:25+00:00 |
| Inline rendering with document.currentScript |
https://leanrada.com/notes/inline-rendering-currentscript/ |
Lean Rada describes a neat trick that takes advantage of the [document.currentScript](https://developer.mozilla.org/en-US/docs/Web/API/Document/currentScript) property. You can use that to drop in a tiny inline `<script>` element that replaces itself when the page loads:
The year is <script>
document.currentScript.replaceWith(
new Date().getFullYear())</script>
If you define a shortcut function like this:
$=(...n)=>document.currentScript.replaceWith(...n)
You get a tiny template language:
The year is <script>$(new Date().getFullYear())</script> |
2026-10-17 21:11:12+00:00 |
| Anthropic tells investors quarterly revenue up nearly 50% to $16.8bn ahead of IPO |
https://www.ft.com/content/11632d03-358c-454b-af95-d06d4072932b?syn-25a6b1a6=1 |
The phrase "told investors" appears four times in this FT article, which reports on Anthropic's day of hosting investors on Wednesday. Lots of details in here from "[people with knowledge of the matter](https://simonwillison.net/2023/Nov/22/deciphering-clues/#hints-to-look-out-for)".
Key things I learned from the article:
- Q1 revenue (Jan/Feb/Mar) was "about $4.8bn"
- Q2 (Apr/May/Jun) was $11.5bn
- Q3 (Jul/Aug/Sep) was $16.8bn
- In Q3: $1.70 in revenue for every $1 spent on "computing power"
- Adjusted operating margins (excluding stock-based compensation) were 11%
This point about distillation is worth quoting in full (highlight mine):
> The start-up has also clamped down on “distillation” — a controversial practice whereby rival AI labs train their models on the outputs of more advanced ones.
>
> When rival companies “distil” their models from Anthropic’s models, that involves heavy usage and spending.
>
> Anthropic told investors on Wednesday **distillation accounted for 5 per cent to 7 per cent of revenue** and that they had cut it back “materially” in the third quarter of the year, said four people with direct knowledge of the matter.
Napkin maths says that if distillation was 5% of their Q2 revenue (before they cut it back in Q3) then unnamed "other labs" spent over half a billion dollars distilling Anthropic's models in that quarter!
Also notable: Anthropic appear to no longer be leaning on "annualized run-rate revenue" ([previously](https://simonwillison.net/2026/May/29/anthropic/)) in these communications to their investors. |
2026-10-15 13:04:03+00:00 |
| AI is mass decompiling games. That's both awesome and scary. |
https://popcar.bearblog.dev/ai-is-mass-decompiling-games-thats-both-awesome-and-scary/ |
Indie game developer Popcar talks about the recent wave of AI-powered decompilation of existing games, enabling weird mashups between existing games, and producing a boom in game preservation projects to get old games working on new hardware (often in a browser using WebAssembly).
I like how this piece captures both the positives and the negatives of this new development:
> Most people already realized the scary part by now. If AI can decompile games and software, then the entire tech industry is about to explode. Anybody can decompile other software and use it any way they'd like, and nobody can stop them. Companies can steal from competitors. Your paid game or app can be open-sourced against your will. This isn't exclusive to old video games, we can apply this to _any_ software. [...]
>
> This is also a big win for preservation. Old games can be ported, modified, enhanced, and made much more easily accessible than before. [...[
>
> With console makers going all in on digital and games becoming entirely unplayable due to servers shutting down, this is _fantastic_ news. We could own software we bought regardless of what the company thinks. |
2026-10-14 16:26:53+00:00 |