Tanto nix-shell como nix-build suportam a transmissão de argumentos com --arg e --argstr . --arg será avaliado como uma expressão nix e --argstr será tratado como uma string literal.
Usando a expressão fornecida na pergunta, você poderia usá-los para substituir o valor de pkgs da seguinte maneira:
nix-shell -A yarn --arg pkgs 'import /home/me/nixpkgs {}'
Você pode adicionar outro argumento à sua expressão que representa o ramo de dependência:
branch ? "2310-nifty-unmerged-feature"
e referencie-o dentro da expressão com:
profile="export DEPENDENCY_BRANCH=${branch}";
A ramificação pode então ser passada na linha de comando com:
nix-shell --arg branch \"somebranch\"
nix-shell --argstr branch somebranch
Com isso, deve-se ajustar as expressões externas de maneira semelhante e fazê-las propagar o argumento branch .
nix-shell tem mais detalhes sobre o tratamento de --arg e --argstr .