Repository navigation
Rename 'nix shell' #4715
Description
Activity
- addedUXThe way in which users interact with Nix. Higher level than UI.The way in which users interact with Nix. Higher level than UI.
on Apr 16, 2021 This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/how-to-invoke-nix-shell-p-for-packages-not-in-nixpkgs/12475/6
nix inate nixpkgs#git
but then again, I'm biased... and a robot from the future.
Reacted by Naïm Camille Favier, Tv, Janne Heß, Valentin Gagarin, Aleksana, Skyler Grey, Rikiub%, jaredmontoya, Tim Jarratt and eveeifyeveReacted by Lee Hughes, Matthew Croughan, Ryan J.P. Casalino, unrooted, Chris Cummings, Valentin Gagarin, PedroRegisPOAR, panda2134, Skyler Grey, Rae 5e and 1 moreI actually quite like
nix shell: it nicely indicates that the command affects the 'current shell', and does not have 'side effects' (using the term loosely). I'm not sure the confusion with development shells is such a problem: it's clear for regular users thatnix shellis the one they need, and when developers learn aboutnix developthey're likely already familiar withnix shell, so that might be smooth enough.I like push/pop because it makes it clearer you can 'nest' shells, but it's not so clear "what is pushed on what" and where that change is 'visible', so I'm not sure it's a net improvement.
nix entermight be another option, as you're 'entering' an environment with different behavior.Reacted by Cole Helbling, Norbert Melzer, Raphael Das Gupta, j-k, Artem Grunichev, Maximilian Bosch, Patryk Wychowaniec, Aluísio Augusto Silva Gonçalves, Kira Bruneau, Axel Forsman and 47 moreWasn't this already replaced with
nix run?Reacted by davidakReacted by goyalyashpalAn idea: adding another command level to disambiguate:
nix add <where>, i.e.nix add [new-shell|this-shell|user-profile|global-system]I used
addhere, but other verbs also work well with the explicit 3rd argument.Wasn't this already replaced with nix run?
No,
nix rundoesn't start a shell, it directly runs the specified app or the default program from a package.nix enter might be another option, as you're 'entering' an environment with different behavior.
Maybe
nix entercould be the subshell variant ofnix load.Reacted by Bjørn Forsman, Davids Paskevics, Oleg Lebedev, James Sully, Nicole Wren, Sridhar Ratnakumar, Jasper Ras, Mommessc and eveeifyeveI recall joking (to myself? in public? I'd have to go look...) that
nix snowglobewould be groan-inducingly perfect.Reacted by Kiwi, Ninlives, Jess Kay, James Sully, Sivizius, Atemu, Dixon Sean Low Yan Feng, Will R S Hansen, Ross Smyth and ar7eniyanReacted by Tv and eveeifyeveReacted by Scott Santucci, Atemu and Valentin GagarinReacted by Kiwi and Florian FranzenReacted by Kiwinix inate nixpkgs#git
but then again, I'm biased... and a robot from the future.
Either
bonkorinatewould cause the user to read the manpage. I like both.nix inatejust sounds too cool and is my preference.A custom suggestion of my own would be
nix actualize, althoughnix inatealready kind of implies that in the same way - 'bringing something into existence'.Reacted by Tv, Naïm Camille Favier, Paul Haerle, Janne Heß, pacak, Ryan Butler, jaredmontoya and eveeifyeveIf spelt with two n's,
innateis actually a word. It could imply that the shell is the innate behavior/feature of nix, that you can run a nix shell on anything.It could imply that everything is built from a shell.
Innate - An innate quality or ability is one that you were born with
Innatism - A philosophical and epistemological doctrine that holds that the mind is born with ideas/knowledgenix innate- I love it..Reacted by Lee Hughes and Davids PaskevicsReacted by Lee Hughes, Tv, Naïm Camille Favier, pacak and eveeifyeveReacted by Lee Hughesnix insertnix shoveReacted by eveeifyeveReacted by Valentin Gagarin and goyalyashpalNo,
nix rundoesn't start a shellOn Nix 2.3.10 without flakes
nix run ...does start a shell.Reacted by AleXoundOS, Sivizius and Et7f3Reacted by goyalyashpal178 remaining items
Load more actionsI use
nix withas the name for a convenience alias fornix shellwith some extra arguments, so @jzbor's suggestion makes a lot of sense to me.Reacted by Yueh-Shun Linix environmentmaybe?Reacted by goyalyashpal- moved this from Accepted work to In discussion in Nix implementation board
on Feb 29, 2024 This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/2024-04-10-nix-team-meeting-138/43585/1
Closing as stale. Re-open if needed.
- moved this from In discussion to Done in Nix implementation board
on Aug 13, 2026
Metadata
Metadata
Assignees
Labels
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
The
nix shellcommand replacesnix-shell -pto provide a shell in which the specified packages are available. However, the namenix shellis confusing since there are also development shells (created bynix develop), which this isn't; and the oldnix-shellby default does start a development shell. So we should come up with a better name. Some suggestions have been made:nix load nixpkgs#git- "load" a package into the current shell. This one mainly makes sense in the context of updating the current shell, rather than starting a subshell.nix push nixpkgs#git/nix pop- update the current shell to add a package to the environment (similar topushd/popd)nix use nixpkgs#git- "use" is probably too ambiguous though.nix add nixpkgs#git- probably sounds too permanent.nix bonk nixpkgs#git- random name with no connotations that forces people to read the manpage.