dspy-ai 3.3.1
The dspy-ai package on PyPI is now a stub — nothing more than a forwarding address. Its entire published description is a single sentence telling you to install dspy instead.
This matters more than it might seem. A significant portion of the DSPy ecosystem's tutorials, blog posts, and course materials were written when dspy-ai was the canonical install name. That name is now a compatibility alias, meaning anyone following older instructions will get the package, but they are silently depending on a shell rather than the real thing.
The rename itself reflects how the project has matured. Early-stage Python libraries often land on PyPI with a hyphenated -ai or -py suffix because the clean name was taken or the authors weren't sure the project would stick. When a library grows confident enough in its identity to consolidate under a single, clean name, that is a signal worth reading. DSPy has reached that point.
For anyone building agents or LLM pipelines today, the practical instruction is simple: audit your requirements.txt and pyproject.toml files. If dspy-ai appears there, replace it with dspy. The alias will likely persist for backward compatibility, but pinning to an alias means your dependency graph is one maintainer decision away from confusion — if the alias ever stops tracking the real package cleanly, debugging that gap will cost more time than the find-and-replace takes now.
The source text for this release is literally one sentence. There is no changelog, no README, no additional detail. That minimalism is itself the message: the maintainers consider dspy-ai a dead end worth only a redirect, not documentation.
A one-sentence stub: `dspy-ai` is now just an alias — replace it with `dspy` in every dependency file you own.