ZSH Completions for packages installed through devShell

I have a project that comes with a flake.nix, which includes a devShell using mkShell to install a bunch of software used to develop the project (think aws cli etc.). I use direnv with use flake and this works very nicely, overlaying those tools on top of my system install.

However, my ZSH config comes from the system and so the completions also just come from the system and none of the tools in the devShell then have completions beyond the simple list of files in the current directory.

How can I add completions for those tools? Many of them include some command you can call, e.g. just --completions zsh to get the definitions, but ZSH appears to be set up such that the completions have to be prepared before you start zsh.