Jeremy Morgan

@jeremymorgan.com

Developer, Tech Blogger, and Volunteer Firefighter. World's okayest developer "You don't need permission to be awesome" - @reverentgeek.com I came here to break builds and chew bubblegum. And I'm all out of bubble gum.

The lesson from OpenAI’s Hugging Face intrusion is not “AI went rogue.” Excessive permissions, exposed execution, weak egress controls, and reusable credentials get far more dangerous when an automated system can probe them at machine speed. simonwillison.net/2026/Aug/7/o...

Now we have a timeline of the OpenAI accidental attack against Hugging Face

OpenAI gave a last-minute presentation at the Black Hat security on Wednesday about “the Hugging Face Incident” (previously on this blog). The video was published yesterday. It’s short and…

simonwillison.net

mcp-explorer is basically curl for MCP. It can list tools, inspect full schemas, call them directly, emit JSON, and test modern versus legacy behavior. Small protocol tools like this are often what make new infrastructure understandable. github.com/simonw/mcp-e...

GitHub - simonw/mcp-explorer: CLI tool for exploring an MCP server

CLI tool for exploring an MCP server. Contribute to simonw/mcp-explorer development by creating an account on GitHub.

github.com

Building a project and I dug out some old touchscreen for a Raspberry Pi. Hey! this will work! I decided to Google it and figure out how to hook it up and it turns out some nerd wrote the instructions for one in 2015. Good stuff!

BildBildBild

Connecting a custom MCP server to the standard Claude and ChatGPT chat interfaces works, but takes more steps than anyone admits. This TIL documents every one of them for both products. Bookmark it for the next time you build a server til.simonwillison.net/llms/mcp-in-...

Adding a custom MCP server to Claude and ChatGPT

I've started exploring MCP in more detail. The web chat UIs for both Claude and ChatGPT can access MCP servers but it's not obvious how to set them up. Here's what I figured out.

til.simonwillison.net

PostgreSQL 19 Beta 2, actually tested: REPACK CONCURRENTLY for online table reorgs, parallel autovacuum, in-place partition split and merge, and native SQL/PGQ property graph queries. Plus the changed defaults that will bite upgraders. computingforgeeks.com/postgresql-1...

What's New in PostgreSQL 19: Tested on Beta 2 | ComputingForGeeks

Review PostgreSQL 19 new features tested on Beta 2: REPACK CONCURRENTLY, parallel autovacuum, online data checksums, partition merge and split.

computingforgeeks.com

Turso, having rewritten SQLite in Rust, is now compiling Postgres onto the same bytecode VM: one modern core, many database frontends, "the LLVM of databases." An experimental Postgres dialect and wire protocol are already in the repo. turso.tech/blog/a-new-m...

We're building Postgres in Rust. Using the LLVM of databases

Turso is becoming the LLVM of databases: one modern, reliable Rust core with many SQL frontends. After rewriting SQLite, we are now building Postgres.

turso.tech

Cloudflare moved cdnjs, 9 billion requests a day, entirely onto its own developer platform, and raised Workers and Workflows limits along the way. Dogfooding posts at this traffic level double as capacity planning documents.

Dogfooding at scale: migrating cdnjs to Cloudflare’s Developer Platform

We moved cdnjs, serving 9 billion requests a day, entirely onto Cloudflare's Developer Platform. That means we’re running one of the Internet's busiest open-source CDNs on our own building blocks,…

blog.cloudflare.com

Astro's maintainers drove open GitHub issues down 85 percent using isolated AI subagents in GitHub Actions: automated bug reproduction, patch verification, preview releases. The architecture writeup is concrete enough to copy for your own triage backlog. blog.cloudflare.com/astro-issue-...

How we built a software factory to drive Astro’s GitHub issue count to zero

By replacing manual issue verification with isolated AI subagents running in GitHub Actions, the Astro maintainers reduced open issue count by 85%. This post explores the architecture behind…

blog.cloudflare.com

OpenAI says GPT-5.6 Sol rewrote their production Triton kernels via Codex and cut end-to-end serving costs 20 percent, which funded the 80 percent Luna price drop. Read it for the inference detail: precompute, avoid, parallelize. openai.com/index/gpt-5-...

How GPT-5.6 fuses frontier intelligence with frontier efficiency

GPT-5.6 improves AI efficiency across models, inference, and agentic workflows, helping deliver more useful intelligence per dollar.

openai.com

DeepSeek-V4-Flash-0731 is 304B params priced at $0.14 in / $0.27 out per million tokens, and it benches ahead of models 40 percent larger. If you route bulk agentic workloads, this may be the best value-per-intelligence open weights option available right. huggingface.co/deepseek-ai/...

deepseek-ai/DeepSeek-V4-Flash-0731 · Hugging Face

We’re on a journey to advance and democratize artificial intelligence through open source and open science.

huggingface.co

A disclosed prompt injection variant turns Copilot for Word into a self-replicating worm: hidden instructions get copied into every document the assistant touches, and each output becomes a new carrier. 144 days after disclosure, no fix covers the class. enklypesalt.com/posts/contex...

Context Collapse, Part 3 - AI Worming through Word

I would like to thank Microsoft product teams and Microsoft Security Response Center (MSRC) for collaborating with me on this technical analysis and mitigation of the disclosed vulnerabilities. The…

enklypesalt.com

During a benchmark run, an OpenAI model broke out of its sandboxed container and compromised Hugging Face infrastructure trying to fetch the eval's answers. The clearest account yet of how the isolation failed. Eval infrastructure is now production attack surface. simonwillison.net/2026/Jul/22/...

OpenAI’s accidental cyberattack against Hugging Face is science fiction that happened

This story is wild. The short version: OpenAI were running a cybersecurity test against an unreleased model, with the model’s guardrail features turned off. Rather than solve the test, the …

simonwillison.net

smevals is a small eval harness you can run entirely with uvx: tasks in YAML, runs across multiple models, grading separated from execution, static HTML reports. Tell your coding agent to run "uvx smevals docs" and have it build your suite. github.com/prime-radian...

GitHub - prime-radiant-inc/smevals: A framework for running evals against small (and large) models

A framework for running evals against small (and large) models - prime-radiant-inc/smevals

github.com