What Happened
Simon Willison released datasette-ports 0.2, a minor but meaningful update that removes the hard dependency on Datasette. Users can now run uvx datasette-ports directly without installing Datasette first. The plugin mode remains intact — installing it as a Datasette plugin still provides the datasette ports command as before.
Why It Matters
Removing a heavyweight dependency from a utility tool lowers the barrier to adoption significantly. Developers who want port inspection functionality without committing to a full Datasette installation can now use datasette-ports as a lightweight standalone CLI tool. The uvx runner from the uv ecosystem allows zero-install ephemeral execution, meaning the tool runs in an isolated environment without polluting global Python state.
- Standalone execution via
uvx datasette-portsrequires no prior setup - Existing Datasette users retain the integrated
datasette portssubcommand - Reduces cold-start friction for CI/CD pipelines and scripted environments
Asia-Pacific Angle
The uv toolchain, developed by Astral, has seen rapid adoption among Python developers in China and Southeast Asia due to its speed advantage over pip and virtualenv. Teams in these regions building internal tooling or data pipelines on Python will find the uvx pattern increasingly relevant. datasette-ports following this pattern signals a broader shift in Python CLI tooling toward uv-native distribution — developers in the region building their own CLI tools should consider publishing with uvx compatibility as a first-class feature to reach this growing user base.
Action Item This Week
If you use Datasette or manage Python CLI tools, test running uvx datasette-ports in a clean environment to validate the zero-dependency execution model — then evaluate whether your own internal tools could adopt the same uvx-compatible packaging pattern using uv's tool publishing conventions.