use path edit:add-var nix~ {|@a| var is-shell = (and ^ (> (count $a) 0) ^ (eq $a[0] "develop") ^ (not (has-value $a "--command" ))) if $is-shell { set a = $a[1..] e:nix develop $@a --command elvish } else { e:nix $@a } } edit:add-var nix-shell~ {|@a| var is-shell = (not (or ^ (has-value $a "--command") ^ (has-value $a "--run"))) if $is-shell { e:nix-shell $@a --command elvish } else { e:nix-shell $@a } }