Rosa Del Mar

Daily Brief

Issue 84 2026-03-25

Release Milestone And Ecosystem Base Layer

Issue 84 Edition 2026-03-25 5 min read
General
Sources: 1 • Confidence: High • Updated: 2026-04-12 10:20

Key takeaways

  • datasette-llm version 0.1a1 has been released.
  • Dependent plugins can request a model by purpose using an API such as awaiting llm.model(purpose="enrichment"), and can register their purpose strings via register_llm_purposes().
  • datasette-llm centrally configures which models are used for different purposes so users can assign different models to tasks such as data enrichment versus SQL query assistance.
  • datasette-llm 0.1a1 adds a register_llm_purposes() plugin hook and a get_purposes() function for retrieving registered purpose strings.
  • datasette-llm is a base plugin that makes models from the LLM project available to other Datasette plugins, including datasette-enrichments-llm.

Sections

Release Milestone And Ecosystem Base Layer

  • datasette-llm version 0.1a1 has been released.
  • datasette-llm is a base plugin that makes models from the LLM project available to other Datasette plugins, including datasette-enrichments-llm.

Purpose Registration And Purpose Discovery Surface

  • Dependent plugins can request a model by purpose using an API such as awaiting llm.model(purpose="enrichment"), and can register their purpose strings via register_llm_purposes().
  • datasette-llm 0.1a1 adds a register_llm_purposes() plugin hook and a get_purposes() function for retrieving registered purpose strings.

Centralized Purpose-To-Model Routing For Governance And Cost Control

  • Dependent plugins can request a model by purpose using an API such as awaiting llm.model(purpose="enrichment"), and can register their purpose strings via register_llm_purposes().
  • datasette-llm centrally configures which models are used for different purposes so users can assign different models to tasks such as data enrichment versus SQL query assistance.

Unknowns

  • What is the concrete configuration interface and storage location for the purpose-to-model mapping (e.g., where and how users specify which model handles each purpose)?
  • How are purpose string collisions, namespaces, or versioning handled when multiple plugins register similar or identical purposes?
  • Which dependent plugins (beyond the cited example) have adopted the purpose-based API, and at what adoption rate over time?
  • Is there (or will there be) any administrative UI or management surface that uses purpose discovery to let users assign models to purposes without manual configuration?
  • What stability and backward-compatibility guarantees exist for datasette-llm 0.1a1 and for the new hook/function APIs?

Investor overlay

Read-throughs

  • A shared base layer for LLM access in Datasette could reduce duplicated integration work and accelerate adoption of LLM enabled plugins, potentially increasing usage of the surrounding ecosystem and related developer tooling.
  • Purpose based model routing could enable cost control and governance features that are attractive to organizations, increasing demand for admin and configuration surfaces and driving more enterprise oriented usage patterns.
  • Standardized purpose registration and discovery may create a de facto interface for interoperability across plugins, improving network effects for compatible plugins and making the base layer more central to the ecosystem.

What would confirm

  • Clear documentation of the configuration interface and storage for purpose to model mapping, plus examples showing users assigning different models to enrichment versus SQL assistance.
  • Growing list of dependent plugins adopting llm.model with purpose and registering purposes, with visible adoption over time in releases or repositories.
  • Introduction of an administrative UI or management workflow that discovers registered purposes and lets users assign models without manual configuration.

What would kill

  • No stable backward compatibility guarantees and frequent breaking changes to the new hook and purpose APIs, limiting downstream plugin reliance.
  • Persistent purpose string collisions or lack of namespacing or versioning guidance, leading to inconsistent behavior across plugins.
  • Minimal uptake beyond the cited dependent plugin, indicating the base layer is not becoming the common integration path.

Sources

  1. 2026-03-25 simonwillison.net