Skip to content

Fish reports a missing old PLAT `env.fish`

Source: Troubleshooting reference

Symptom: Fish starts with source: No such file or directory naming an env.fish under an old ~/.local/plat_*/bin directory.

Root cause: uv’s standalone installer wrote ~/.config/fish/conf.d/uv.env.fish with the installation’s fixed path. Changing the runtime layout did not update that snippet; Fish runs conf.d files even for noninteractive commands.

Confirm: inspect ~/.config/fish/conf.d/uv.env.fish, then run fish -lc 'command -s uv; printf "%s\n" $_LOCAL_PLAT'.

Fix: update the managed Fish files with chezmoi apply --exclude=scripts ~/.config/fish/conf.d and open Fish again. The managed environment resolves the runtime root at startup and replaces the legacy uv snippet with an empty ownership marker. The Python installer now uses UV_NO_MODIFY_PATH=1 to prevent future standalone installations from rewriting shell startup. See Fish setup.