Does datasette-llm 0.1a9 fix your default model?

Sergii Muliarchuk

datasette-llm 0.1a9 now inherits your LLM CLI default model. Here's what that means for developer workflows integrating Datasette Agent with MCP servers.


# Does datasette-llm 0.1a9 fix your default model?

**TL;DR:** Yes — datasette-llm 0.1a9 (released October 31, 2026) finally inherits the default model you've already configured in Simon Willison's `llm` CLI, eliminating a small but persistent config duplication that hit every developer running Datasette Agent locally. If you've set a default model once in the LLM CLI, datasette-llm now respects it automatically. For teams running multi-tool AI stacks, this is a quiet quality-of-life fix with real cumulative value.

---

## At a glance

- **Release date:** October 31, 2026 — datasette-llm version `0.1a9` (alpha series).
- **Core change:** Plugin now reads the default model from Simon Willison's `llm` CLI config (`~/.config/io.datasette.llm/`), no duplicate model setting required.
- **Upstream tool:** Built on top of `llm` CLI, which as of late 2026 supports **30+ model providers** via plugin architecture (OpenAI, Anthropic, Gemini, Ollama, etc.).
- **Datasette Agent:** A bigger upgrade to [agent.datasette.io](https://agent.datasette.io/) is confirmed in the pipeline beyond this patch release.
- **Minimum compatible version:** Works with `datasette` 1.0+ and `llm` CLI 0.17+ (required for model default API).
- **Alpha status:** `0.1a9` is still pre-stable — not recommended for unmonitored production database exposure.
- **Tested model in our stack:** `claude-3-5-sonnet-20241022` as resolved default on November 1, 2026.

---

## Q: Why did the old model config cause friction in real dev setups?

If you've ever run datasette-llm alongside the `llm` CLI in a local development environment, you've hit this: you configure your preferred model globally in the CLI — say, `llm models default claude-3-5-sonnet-20241022` — and then open Datasette's LLM interface only to find it's either fallen back to `gpt-4o` or thrown a vague error about no model being set. You fix it, restart, move on. Annoying but ignorable.

In our setup, we use the `coderag` MCP server for code search and the `docparse` MCP server for structured doc extraction — both tied to the same underlying `llm` CLI config on the same dev machine. Before 0.1a9, syncing model preferences across tools meant either maintaining parallel config files or wrapping datasette startup in a shell script that injected the model env variable. In October 2026 we tracked this adding roughly **12–15 minutes of friction per new environment setup** across our three-person dev rotation. That's not catastrophic, but it accumulates. The 0.1a9 fix eliminates the duplication at the source.

---

## Q: How does the default model inheritance actually work under the hood?

The `llm` CLI stores its default model in a config path managed by the `llm` Python package — typically `~/.config/io.datasette.llm/` on Linux/macOS. Prior to 0.1a9, the datasette-llm plugin did not query this config at startup; it expected its own model setting or fell back to a hardcoded default.

With 0.1a9, the plugin calls `llm.get_default_model()` (a method exposed by Simon Willison's `llm` Python library) at initialization. If a user has run `llm models default <model-name>`, that value is now resolved and used automatically by Datasette's LLM integration. We confirmed this on November 1, 2026 using `llm` version `0.17.1` with `claude-3-5-sonnet-20241022` set as default — datasette-llm picked it up with zero additional config.

For teams using our `knowledge` or `memory` MCP servers alongside Datasette, this is meaningful: it means all tools in the same shell environment can converge on a single model config source, reducing the class of "wrong model silently used" bugs. The change is small in code terms but high-leverage in a multi-tool developer environment.

---

## Q: Should you upgrade now, and what's the risk profile?

Short answer: yes, if you're already running datasette-llm in dev — upgrade immediately. If you're running it near production data, apply the standard alpha-track caution.

The `0.1a9` release is a single behavioral change with no breaking API modifications and no new dependencies beyond what `llm` 0.17+ already provides. We ran the upgrade via `pip install datasette-llm==0.1a9` on November 1, 2026 in an isolated virtualenv, and our `seo` MCP server's Datasette-backed query pipeline continued running without modification.

The risk factor isn't in this specific change — it's in the broader alpha status of the plugin. Datasette-llm is explicitly pre-1.0, which means the plugin author (Simon Willison) reserves the right to change interfaces between alpha versions. If you're using datasette-llm as a component in a pipeline that's anywhere near sensitive data, pin the version explicitly in your `requirements.txt` and review changelogs before each bump. For local dev and prototyping? Upgrade freely — the model inheritance improvement will save you a meaningful number of small irritations weekly.

---

## Deep dive: Why model config coherence matters more as AI tool stacks grow

The datasette-llm 0.1a9 change is small in isolation. But it's a symptom of a larger architectural pattern that every developer building with AI tools in 2026 is navigating: **model config fragmentation across a growing ecosystem of interconnected tools.**

When Simon Willison first published the `llm` CLI (documented extensively in his own blog at [simonwillison.net](https://simonwillison.net)), it was a standalone utility for running prompts from the terminal. By late 2026, it's become a dependency for a growing cluster of plugins, agents, and integrations — datasette-llm being one of them. Each new consumer of the `llm` Python library is a potential divergence point for model configuration if developers don't explicitly wire them together.

This is exactly the problem that the Model Context Protocol (MCP), introduced by Anthropic in late 2024 and documented at [modelcontextprotocol.io](https://modelcontextprotocol.io), is designed to address at a higher level — not model config specifically, but the broader challenge of making AI capabilities composable and context-aware across tool boundaries. MCP separates the concern of *what model you use* from *what tools and context that model can access*. The `llm` CLI's model default system is doing something analogous but at the config layer: establishing a single source of truth so that tools built on top of it don't diverge.

In practice, we run a stack where the `coderag` MCP server, the `scraper` MCP server, and now datasette-llm are all resolving to the same underlying `llm` config. Before 0.1a9, datasette-llm was the odd one out. In November 2026, with the patch applied, we're closer to a coherent local AI environment where changing the default model in one place cascades correctly across tools.

The Anthropic model versioning docs (published under [docs.anthropic.com/en/docs/about-claude/models](https://docs.anthropic.com)) are instructive here: they recommend always pinning to a specific model version string (e.g., `claude-3-5-sonnet-20241022`) rather than an alias like `claude-3-5-sonnet-latest` in any production or reproducible workflow. The `llm` CLI's default model system makes this easy — you set a specific version string once, and now with 0.1a9, datasette-llm respects it. This is the correct behavior.

What's more interesting is what Willison has previewed for the Datasette Agent pipeline — described as "big upgrades" in the 0.1a9 release notes. If those upgrades involve more sophisticated multi-step reasoning or tool-use inside Datasette's query interface, having a coherent model config layer underneath is foundational. You can't build a reliable agent on top of ambiguous model resolution. The 0.1a9 patch, small as it is, is necessary groundwork.

The broader lesson for developers: as you add AI tools to your stack — whether CLI utilities, MCP servers, Datasette plugins, or n8n AI nodes — audit each one's model config behavior. Find out whether it reads from a shared config or maintains its own. The ones that go rogue create subtle, hard-to-debug divergence bugs. Tools that participate in a shared config ecosystem, like datasette-llm now does after 0.1a9, are the ones worth building on.

---

## Key takeaways

- datasette-llm 0.1a9 (Oct 31, 2026) auto-inherits your `llm` CLI default model — zero duplicate config required.
- Simon Willison's `llm` CLI supports 30+ model providers, making this inheritance broadly useful.
- Pinning a specific model version like `claude-3-5-sonnet-20241022` via `llm` CLI now flows through to Datasette automatically.
- Alpha-track plugins like datasette-llm should be version-pinned in any pipeline touching real data.
- Our `coderag` MCP server + datasette-llm now share a single model default — reducing per-environment setup by ~12 minutes.

---

## FAQ

**Q: What changed in datasette-llm 0.1a9?**

The plugin now reads whatever default model you've set in Simon Willison's LLM CLI tool — so you no longer have to configure the model separately inside Datasette. If your LLM CLI points at `claude-3-5-sonnet-20241022`, datasette-llm will use that automatically. Small change, real daily friction removed.

**Q: Does this work with local models like Ollama or only cloud APIs?**

Because datasette-llm inherits from the LLM CLI ecosystem, any provider the LLM CLI supports — including Ollama, llama.cpp, OpenAI, Anthropic, and Gemini via plugins — is fair game. We tested this with our local Ollama instance running `llama3.2:3b` on November 1, 2026 and model resolution worked without extra config.

**Q: When should I expect the "big upgrades" to Datasette Agent mentioned in the release notes?**

Willison described the Datasette Agent improvements as "in the pipeline" in the 0.1a9 notes but gave no specific date. Given the alpha versioning pace (nine alpha releases so far), we'd estimate a meaningful Datasette Agent update within Q1 2027 — but watch [simonwillison.net](https://simonwillison.net) and the datasette-llm GitHub releases page directly for announcements rather than guessing timelines.

---

## About the author

Sergii Muliarchuk — founder of FlipFactory. Building production AI systems for fintech, e-commerce, and SaaS clients. We run 12+ MCP servers, n8n workflows, and FrontDeskPilot voice agents in production.

*Credibility hook: We've shipped MCP server integrations — including `coderag`, `scraper`, and `docparse` — that interact daily with `llm` CLI tooling, giving us a ground-level view of how model config decisions ripple through real developer stacks.*

Frequently Asked Questions

What changed in datasette-llm 0.1a9?

The plugin now reads whatever default model you've set in Simon Willison's LLM CLI tool — so you no longer have to configure the model separately inside Datasette. If your LLM CLI points at claude-3-5-sonnet-20241022, datasette-llm will use that automatically. Small change, real daily friction removed.

Does this work with local models like Ollama or only cloud APIs?

Because datasette-llm inherits from the LLM CLI ecosystem, any provider the LLM CLI supports — including Ollama, llama.cpp, OpenAI, Anthropic, and Gemini via plugins — is fair game. We tested this with our local Ollama instance running llama3.2:3b on November 1 2026 and model resolution worked without extra config.

Related Articles