Wrote some notes on Aider's unconventional but kind of brilliant installation mechanism, which solves the "isolated Python virtual environment" problem by bundling uv as a dependency! simonwillison.net/2025/Mar/6/a

@simon That still requires you to `pip install` something in some environment, no? I feel like having a random installer with a dependency on `uv` in your (system?) python is not a good side-effect of this.

Better to have people install `pipx` and then use that to install your CLI tool. It's got the same "now pipx has to live in my global system directory" problem, but at least `pipx` is the *only* think you need there.

@pganssle @simon fwiw the `uv tool` that aider uses is basically `pipx`, with the same isolation. the python-build-standalone that uv installs if a matching system python is missing also blocks you from installating into the "system" environment to enforce that isolation.

Follow

@konstin @simon Yeah, I have been using `uv` a bit more lately. My objection here is that I didn't think this "pip install a thing that installs and calls uv" is buying you anything.

The person needs to know enough to use pip, then the installer itself gets installed into some global environment, just to install uv into that same environment?

I don't think that anyone willing to use pip will have a hard time with uv, and it seems that uv has a much better "default" experience for people uninterested in finding out what is going on under the hood.

@pganssle @konstin honestly I think this is mostly about aesthetics

A README that says this:

python -m pip install aider-install
aider-install

Is very slightly less intimidating than one that says this:

python -m pip install uv
uv tool install aider-chat --python 3.12

In the second case you need to explain more steps

@simon @konstin Both of those assume that you have pip and also Python, which is already too late to be doing it "right", so you may as well not recommend pip installing it at all, or just say, "this can be installed with pip or uv" or something.

Alternatively, you could just say, "Easiest way to install is uv tool install aider-chat", possibly with a link on how to install uv. I personally would be installing uv as a top level tool through the OS.

One of the bigger problems with the system install is that it moves when Python updates, which I suspect will break a pip installed uv, but it wouldn't be a problem for a system installed uv.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.