Simon Willison spent the 1990s watching database companies trap their customers. Every vendor wanted you locked into their SQL dialect, their client library, their proprietary extensions. The cure was ODBC: a common interface that let applications talk to any database without rewriting code. Willison thinks AI models are next.
He built llm, a command-line tool that routes prompts to over 100 different AI backends using a unified interface. OpenAI, Anthropic, Google Gemini, open-source models running locally via Ollama or llamafile — they all look the same from the calling code. Willison released it in 2023. The tool has quietly accumulated plugins for running Python code, querying read-only databases, executing sandboxed JavaScript, and running math operations, according to the plugin directory. None of that is a demo.
The read-only SQLite plugin is the piece that separates llm from a long list of "unified API" wrappers. Instead of copying data out of a database so an AI can reason about it, you send the SQL query to llm and the model sees only what the query returns. The data stays in place. The model cannot wander. Willison calls this "a safe-execution layer." It means you can ask an AI to analyze a database containing customer records, and the model gets exactly the rows the query selects — not a training run on your schema.
Sandboxed JavaScript via the quickjs plugin works the same way. The model runs code inside a sandbox that has no access to the filesystem, network, or system APIs. It can do math, manipulate strings, format output. It cannot phone home. This is not how most developers integrate AI into their tools today. Most integration today is: send a prompt, receive text, trust the model. The sandbox inverts that assumption. The model becomes a function you call, not an endpoint you expose.
LiteLLM, Portkey, and OpenRouter offer similar abstraction over multiple model providers. What separates llm is the plugin architecture for execution, not just inference. "The tool calling support in LLM 0.26 is the biggest new feature since I started the project," Willison wrote. That release let OpenAI, Anthropic, Gemini, and Ollama models run tools — which is what turns a model from a text generator into a programmable component. The community has built on top of llm in unexpected ways: one developer released Zummoner, a ZSH plugin that translates English to shell commands via llm, according to Hacker News.
The ODBC parallel has limits. Databases in 1994 were mature, stable targets. AI models today are none of those things. API formats change. Model capabilities vary wildly. A SQL query is deterministic; a prompt is not. The abstraction works at the interface level but it does not make models interchangeable in practice. GPT-4 and a local llamafile produce different outputs on the same prompt, and not every workflow can absorb that variance.
What the abstraction does create is optionality. An application written against llm's interface can switch models without rewriting the calling code. For teams building products on top of AI, that is not a small thing. It means you can start with GPT-4o, move to Claude when it launches, or drop in a local model when latency matters — without touching the integration layer.
Simon Willison also created Datasette, the open-source tool for publishing and analyzing structured data. That background shows up in how llm handles databases. The SQLite plugin is not an afterthought — it is a philosophy made concrete. Data stays where it belongs. Models visit, reason, and leave.
Whether llm's approach becomes the standard or remains a craftsman's tool depends on whether the broader ecosystem treats safe execution as a requirement or a nice-to-have. Most AI gateways today solve the routing problem. Willison is betting the execution problem — keeping models inside guardrails when they touch your systems — is the harder and more important one to solve.
What to watch: whether the plugin architecture attracts contributors who extend safe execution beyond SQL and JavaScript, and whether any of the major model providers treat llm compatibility as a selling point. The abstraction wins when the ecosystem around it grows.