Important correction - Carapace doesn't only complete cobra apps, and AWS was definitely not written with Cobra (it's actually written in Python - github.com/aws/aws-cli). Leave a comment with your thoughts or ping me on x.com/devopstoolbox
Trying to figure out why carapace exists. I thought cobra had completions already built in, so what is the need for carapace? It looks like a significant project so I’m definitely missing something which isn’t really explained in any introduction, it just assumes you already know.
I've been using Nushell for about 2 years now. I use it for _everything_. I live in my shell now. It replaces my need for Python, Node, Bash, configuration files, and clicking around the UI of my OS. - Editor macros? I just pipe my selections to Nushell. (A must for Helix, its biggest missing feature) - Transpile or transform watched files? I write a Nushell script. - Interface with REST APIs? Nevermind Postman and `jq`, you just need Nushell. - Need JSON that gets its data from dynamic sources? Nevermind Dhall or Jsonett-treat Nu scripts as data. - Shell sessions and environment variables? Nu config hooks. - Always performing the same actions on a repo? Nevermind `package.json` scripts-Nushell module overlays. - Bored? Write a Nushell text adventure RPG.
Every line in this comment blew my mind in another direction. How did I miss piping stuff from vim to Nushell 🤦 Sounds like another rabbit hole I'm diving head straight into... How do you feel about the scripting language? is it worth the hassle of learning?
@@UliTroyo I remember looking for a good 'watch' program. I installed one, didn't know what it was called. Then I typed 'watch - h'. And I got a nushell help page.... Anyway. That was pretty useful.
I used nushell as my daily driver from mid-2021 to March of this year and it is endlessly frustrating. Every other time nushell releases a new version it brings with it *tons* of breaking changes. I got so sick of having to go through and update all my scripts and source files every single time I installed nushell on a new machine. Like, constant breaking changes. Breaking syntax changes to the scripting language *and* breaking changes to how that language is processed even if the syntax hasn't changed. I just went back and installed it on a fresh NixOS machine and immediately hit a ton of errors just trying to load my old configs that worked perfectly fine at the beginning of the year. One of these functions I actually fixed when I tried to give nushell another shake about 4 months ago and that fixed version no longer works now. 4 months ago! It appears that the way subshells inherit variables from the parent process namespace has changed and I just dgaf enough anymore to figure out why it's broken and how to fix it. The documentation is subpar and the shell introduces breaking changes enough that it's worthless trying to refer to old GitHub issues or SO posts. Even config lines that Nushell put in my config files when they were original generated are erroring out and preventing my config.nu from loading now (`use_grid_icons: true`). Like, they can just shoot a warning, they have to kill the entire config.nu load -- for a line of code that they put in the config.nu file and I haven't touched since. Similarly, the way I used to install my plugins just a few months ago are also now deprecated and giving me errors. Nushell itself is hella cool -- when it works, but the project itself is horribly mismanaged by the maintainers. I've never used another tool that's been around for *years* and introduces a plethora of breaking changes every update. It is almost laughable how unstable it is. At this point, I'd prefer Powershell.
This isn't even getting into how wildly unnecessarily convoluted the scripting language itself is becoming. Pipes on the command line in nushell are beautiful, but the full scripting language is a nightmare. The inability to source dynamic files is a huge headache that I've had to go to great lengths to get around. They keep breaking the plugin system every few months. It's just not worth it to use as an interactive shell.
nushell is dope is hell, I have been daily driving it for a few months now, but DO NOT CHANGE IT TO YOUR DEFAULT SHELL!!! YOUR DEFAULT/LOGIN SHELL MUST BE POSIX COMPLIANT! Instead, set it is the default program for your terminal emulator to launch. This way it's always the interactive shell without interfering with your system.
Interesting... few qustions 1. Why? What's the big deal about a non-posix compliant default shell? I had issues when trying to run copy-pasted commands but they were rather easily fixed. Is there something else major I'm missing? 2. What's the different in having it as a default program vs a default shell ?
@@devopstoolboxdefault shell means many tiling wm will need reconfiguring as they use bash commands to function for example so posix compliance is p important for that unless you want to rewrite all the configs to be nushell
@@devopstoolbox The default shell is what is used anytime a piece of software asks for a shell to do something with the system: if it's not posix compliant, the scripts may fail to execute. It's not for commands a user runs directly, it's for system processes. Your terminal emulator doesn't have to launch your default shell: you can tell it to launch any other program instead, for instance tmux.
This reminds me of Brian Will's video about Unix, in which he brings this idea of "data-table based OS" vs the current "tree-shaped files hierarchy". This feels like a experimental try at what Brian explained in his video, regardless whether nushell creators directly take inspirations from that video or not.
Watching this has totally dropped a bombshell on my own cli world making me feel like I’m still in the stone age using zsh. Nushell is doing what powershell tries to do but so much better. I’ve also fairly recently discovered the awesomeness of nix and combined with nushell will mark the dawn of a new era of my cli world, but the shift is daunting and I just see a huge learning curve towering over me
Carapace and the advanced problems you solve makes this a AAA-tier video! Thank you Omer for many hours saved and really delving into this! And for listening to us to check this out ;-) In your opinion: can nu-shell become the new sensible default for (devops) scripting? Or will you continue to write #!/bin/bash scripts?
Thanks!! A great question I don't have a good answer to (yet) simply because I haven't experienced enough with the scripting language (I'm on it though ;) ) With the tricks I used in the video it's very much worth the switch already for me personally!
0:01 - NGL, those “can your shell do this?” bits were on screen for, like, 20 frames apiece? Dude, I couldn’t even perceive what I was being shown in that timeframe, let alone gauge whether my shell could do those things.
My only issue with it is that they don't support a different mode key other than "esc". i'm used to "jj" and it's been quite annoying not being able to use it...
@@devopstoolbox That's a good point - Personally I got hooked on Ctrl+C years ago as an Esc replacement, but ... that won't work in a shell :P. Probably why I've never switched to vi mode in any shell. OTOH, Ctrl+O is always there to open the commandline in the editor itself. Leader keys with a timeout (I assume that's how jj is typically implemented?) would be nice - I've toyed with some ideas here in Nushell (very briefly), but I don't think we can do it with Nushell/Reedline keybindings just yet.
@@devopstoolbox No smash escape ('jk'), not with me. But you should try jk instead of jj, especially in vim. It's literally the first thing I enter when I use vim on a remote/unconfigured machine: ":imap jk " THAT's how important it is to me. But with your moonlander keyboard this isn't a big issue actually.
I don't get why it provided git completions, though. The docs don't say that git.exe was written using Cobra - but it's the only completion I really care about :)
I had nushell configured for some time, but the PSOIX compliance always held me back Maybe I should give it a shot again! Especially since I am on NixOS most of the time and putting some random bash oneliners isn't much of a thing anymore
I totally get it. But, scripts can just be sent to their executor with a proper shabang, while other inline operations require some learning on your behalf. If you work with data from time to time, feels like its well worth the effort (I'm at the same point right now, and feeling the same annoyance)
In what way did this being non posix compliance hold you back? What kind of use cases require posix compliance, and how often do we need such use cases? Genuinely curious as i don’t use the shell for more than the trivial stuff
@@vikingthedude Well, as soon as I wrote the post, I hit me kinda hard 😂 I was trying out clevis (something for encryption which also uses the TPM) and there you need to read into stdin and write to stdout. You usually do it with < (reading) and > (writing). For example "echo 'hi' > test.txt" would create a file test.txt with the content "hi". Somehow nutshell doesn't follow this and when I tried the example "$ clevis encrypt PIN CONFIG < PLAINTEXT > CIPHERTEXT.jwe" I was getting some weird errors from clevis, but nutshell was the culprit since the operators were doing something different. It's just those small things, which in the end make your life a bit harder 🥲
@@devopstoolbox Don’t just do it! Wait until 1.0.0. Nu is the future imo. Bash isn’t going anywhere and I’d encourage every engineer to learn it, but slowly migrating stuff to Nu after it’s stable is going to be incredible.
As always, interesting, really appreciate you're sharing a lot of tricks. I rely a lot on my zshrc file to create symlinks and initialize some things, does this mean I have to move to a nu shell equivalent file with its own syntax?
@@devopstoolbox The demo you shared covers a lot of stuff that takes hours or even days to figure out on your own, so it's a wonderful starting point, again, thanks and will keep this shell in mind. New rabbit hole added to my procrastination list.
there's a quick operator you're used to, and there's sensible language and readability of scripts! the two aren't mutually exclusive. You could just map the operator in nushell if you wanted, but IIUC it wants to be better than posix not just different
@@devopstoolbox I don't think "save" is sensible wording. > is a redirect to file operator. It has different implications. It means it can pipe any incoming data continuously into a file. "save" just doesn't make sense for that. Atleast, not any more than redirect.
I am glad you like nushell, I was sure a tech champions like you would like it. The default features of nushell make it easy to create performant script to build commands and you can even DOCUMENT them O_o
It's true that it takes some getting used to and that they break things very often at the moment, but i think it is better that way than having a bad 1.0 release that we as users have to live with for possibly decades later. Devs should take their time and experiment to find the best workflows before releasing 1.0. If you don't like to tweak your scripts and configs a bit every quarter or so this is not for you yet (just like any fresh programming language also is for more hardcore users willing to invest more time)
And way better. I used to be a powershell enthusiast in the days when I was happy to use windows. But over recent times my patience with evil corp has expired. Powershell has good intentions but in my opinion poorly executed. My biggest problem with it is its woeful approach to flag definitions its concept of parameter sets which ultimately makes building larger CLIs much more difficult. Nushell is going to be my shining knight to the rescue
Is there any chance that you tell us something about the aluminum base your moonlander is mounted on? I would really appreciate having something like this, but did not found anything about on your „tech I use“ webpage. I got my moonlander a week ago and wanted to also use such a mount if it is not complete custom made which I think it might be?
of course! that's the ZSA platform. BUT - not a cheap product, and they have plenty of open source free models you can 3d print and enjoy. if you're unsure about tenting I'd start from there (you can find cheap services online that will print and ship it for you if you don't have a printer)
I changed to nushell 6 months ago just to try it. And has been my default ever since. Only thing that is annoying is that they deprecate stuff a lot and I keep have to fix scripts all the time
very interesting, although I just switched from bash to zsh, I will try to see nushell BUT I would also like to ask you where you found the keyboard tilt, unfortunately it is not shown on your KIT page
Hey, I love your videos. Can you make a video for how you setup your macbook into your dev environment from scratch. I would love to see your settings that you change. Anyways Great Video.
I actually use nushell with everything with CI for now. nu-lang has syntax pretty similar to rust, but so much easier and much more beautiful than bash 😂😂
I love it for small scripts more than python, although i havent used it much i believe it is what powershell was supposed to be.. Im waiting for v1.0 stability before jumping into it
@alexstone691 try writing Java, c, or#. I don't find it verbose, but it can be if you want that much control and to make whatever your are writing featurefull.
i like the idea of nushell but it is not a shell replacer for me. I gave an honest effort to rewrite a script I have I have in python and JavaScript to nushell but it doesn't have enough library yet
not sure it compares (or want to be compared) to languages like python or js. the 'idea' is being able to do most data-oriented tasks right from your shell with native tooling. scripting is another layer on top and i'd compare it to bash
@@luccahuguet the script is too complicated for plain POSIX shell. it needs to run tasks asynchronously which I was hoping to use par-each (nu-shell's async runner) but yet it doesn't need a general purpose language either.
@@ZiggleFingers nice. At least you tried But what I meant is that this comparison is unfair, since it's a python/js script and not the niche nushell is aiming for... If it was a bash script and you could not rewrite it in nushell that would be another story... What @devopstoolbox said is quite on point imo
I am going through this ATM - did you manage to set nushell as a default/login shell? I am getting permission denied errors when I change the shell to nushell with chsh... Tried installing w/ just homebrew or with nix-darwin - no difference
These are the things i dont like about it. > It feels like a programming language for some reason. > It errrors when i try to reference a value that hasn't been declared. Just set it to nul. > For some reason i have to turn a value into a boolean before i use it in an if statement. Just check for truthy or something
That double shell prompt character for starship and nushell are bugging me... been trying to solve that for a few hours now... would be great if the interop was a little better between nushell and starship for managing the prompt char and also handling custom escape keys for vi mode...
but it will still stream data as strings instead of types nushell recognizes even types like duration also id argue that avoiding so many different dependencies and scripts and centralizing all functionality is a positive by itself
there's literally a github repo with countless CLI utils that deal with sorting and querying data but nushell persists and is only growing in popularity. Probably a good reason for it
I mean, almost everything is solvable with more tooling. IIUC nushell is trying to eliminate the need for tooling by implementing most functionality and doing it opinionated enough to save you from the choice paradox. additionally it comes with LOTS of stuff - hooks overlays, scripting, things I didn't touch or used really... this thing packs POWER.
I had one hooked into skhd but apple changed something in one of the recent OS releases and it stopped working properly. I'd ask chat gpt... (let me know if you make it work)
Yes, they are often compared these days. My favorite comment is "nu-shell is powershell done right". I support that, because I just hate the verbosity and overall command design of pwsh. It's so microsofty... Like their other 90's garbage.
If I'd let the editor stack all of them it'd be a 15 minute videos piling comments on the screen :) on a different optic - fancy a new screen saver...?
At this point of time, If only there exist A "First Principle" tool that make me rethink the way I do my things will change something Unless that everything is perfect nothing will change and I believe things that are already good need not be written rather why not just improve it? Linux community recreating tools so badly nowadays that only thing left is Linux kernel itself. like If I have already a good env with Kitty + tmux + bash/zsh + Neovim I don't need Ghostty + zellij + nushell + ...
Me with alacritty + zellij + nushell + helix: :') I'm glad someone created these newb friendly tools for me I guess. But yeah once you build a good env not much need to change. Don't think Ghostty adds anything for me.
Important correction - Carapace doesn't only complete cobra apps, and AWS was definitely not written with Cobra (it's actually written in Python - github.com/aws/aws-cli).
Leave a comment with your thoughts or ping me on x.com/devopstoolbox
Trying to figure out why carapace exists. I thought cobra had completions already built in, so what is the need for carapace? It looks like a significant project so I’m definitely missing something which isn’t really explained in any introduction, it just assumes you already know.
This reminds me of powershell.
Powershell was built with the same idea in mind that your output should be treated like data objects.
Damn , first video I ever appeared in. (My name at least ) 😂. Great to have played a part in bringing nushell to your attention 😊
I've been using Nushell for about 2 years now. I use it for _everything_. I live in my shell now. It replaces my need for Python, Node, Bash, configuration files, and clicking around the UI of my OS.
- Editor macros? I just pipe my selections to Nushell. (A must for Helix, its biggest missing feature)
- Transpile or transform watched files? I write a Nushell script.
- Interface with REST APIs? Nevermind Postman and `jq`, you just need Nushell.
- Need JSON that gets its data from dynamic sources? Nevermind Dhall or Jsonett-treat Nu scripts as data.
- Shell sessions and environment variables? Nu config hooks.
- Always performing the same actions on a repo? Nevermind `package.json` scripts-Nushell module overlays.
- Bored? Write a Nushell text adventure RPG.
Every line in this comment blew my mind in another direction.
How did I miss piping stuff from vim to Nushell 🤦
Sounds like another rabbit hole I'm diving head straight into...
How do you feel about the scripting language? is it worth the hassle of learning?
@@UliTroyo I remember looking for a good 'watch' program. I installed one, didn't know what it was called. Then I typed 'watch - h'. And I got a nushell help page....
Anyway. That was pretty useful.
I used nushell as my daily driver from mid-2021 to March of this year and it is endlessly frustrating. Every other time nushell releases a new version it brings with it *tons* of breaking changes. I got so sick of having to go through and update all my scripts and source files every single time I installed nushell on a new machine. Like, constant breaking changes. Breaking syntax changes to the scripting language *and* breaking changes to how that language is processed even if the syntax hasn't changed.
I just went back and installed it on a fresh NixOS machine and immediately hit a ton of errors just trying to load my old configs that worked perfectly fine at the beginning of the year. One of these functions I actually fixed when I tried to give nushell another shake about 4 months ago and that fixed version no longer works now. 4 months ago! It appears that the way subshells inherit variables from the parent process namespace has changed and I just dgaf enough anymore to figure out why it's broken and how to fix it. The documentation is subpar and the shell introduces breaking changes enough that it's worthless trying to refer to old GitHub issues or SO posts.
Even config lines that Nushell put in my config files when they were original generated are erroring out and preventing my config.nu from loading now (`use_grid_icons: true`). Like, they can just shoot a warning, they have to kill the entire config.nu load -- for a line of code that they put in the config.nu file and I haven't touched since. Similarly, the way I used to install my plugins just a few months ago are also now deprecated and giving me errors.
Nushell itself is hella cool -- when it works, but the project itself is horribly mismanaged by the maintainers. I've never used another tool that's been around for *years* and introduces a plethora of breaking changes every update. It is almost laughable how unstable it is. At this point, I'd prefer Powershell.
This isn't even getting into how wildly unnecessarily convoluted the scripting language itself is becoming. Pipes on the command line in nushell are beautiful, but the full scripting language is a nightmare. The inability to source dynamic files is a huge headache that I've had to go to great lengths to get around. They keep breaking the plugin system every few months.
It's just not worth it to use as an interactive shell.
@@sugasheeze to be fair, it's not released a stable release yet. Breaking changes are expected.
And the docs cover all the changes so I've been fine
nushell is dope is hell, I have been daily driving it for a few months now, but DO NOT CHANGE IT TO YOUR DEFAULT SHELL!!! YOUR DEFAULT/LOGIN SHELL MUST BE POSIX COMPLIANT! Instead, set it is the default program for your terminal emulator to launch. This way it's always the interactive shell without interfering with your system.
Interesting... few qustions
1. Why? What's the big deal about a non-posix compliant default shell? I had issues when trying to run copy-pasted commands but they were rather easily fixed. Is there something else major I'm missing?
2. What's the different in having it as a default program vs a default shell ?
@@devopstoolboxdefault shell means many tiling wm will need reconfiguring as they use bash commands to function for example so posix compliance is p important for that unless you want to rewrite all the configs to be nushell
@@devopstoolbox The default shell is what is used anytime a piece of software asks for a shell to do something with the system: if it's not posix compliant, the scripts may fail to execute. It's not for commands a user runs directly, it's for system processes. Your terminal emulator doesn't have to launch your default shell: you can tell it to launch any other program instead, for instance tmux.
This reminds me of Brian Will's video about Unix, in which he brings this idea of "data-table based OS" vs the current "tree-shaped files hierarchy".
This feels like a experimental try at what Brian explained in his video, regardless whether nushell creators directly take inspirations from that video or not.
Let’s go!!! Nushell for the win. As a data engineer it’s a dream shell for me.
Oh yeah... people who work with data don't have to think twice!
💯
It's lovely to learn this and it is very much handy, but I will stick to posix compatible zsh for now but it's definitely for future me to explore
fair enough!
Watching this has totally dropped a bombshell on my own cli world making me feel like I’m still in the stone age using zsh. Nushell is doing what powershell tries to do but so much better. I’ve also fairly recently discovered the awesomeness of nix and combined with nushell will mark the dawn of a new era of my cli world, but the shift is daunting and I just see a huge learning curve towering over me
Im right there with you. working on another video going into more depth of what nushell has to offer!
Carapace and the advanced problems you solve makes this a AAA-tier video! Thank you Omer for many hours saved and really delving into this! And for listening to us to check this out ;-)
In your opinion: can nu-shell become the new sensible default for (devops) scripting? Or will you continue to write #!/bin/bash scripts?
Thanks!! A great question I don't have a good answer to (yet) simply because I haven't experienced enough with the scripting language (I'm on it though ;) )
With the tricks I used in the video it's very much worth the switch already for me personally!
thanks, i never heard about nushell before. sounds like it will be right up my alley, going to install it tonight and see how i like it
0:01 - NGL, those “can your shell do this?” bits were on screen for, like, 20 frames apiece? Dude, I couldn’t even perceive what I was being shown in that timeframe, let alone gauge whether my shell could do those things.
Totally. My bad.
yup. but this is common now i think.
Oh wow, finally a video that shows me something i didn't knew about. I'm actually gonna try this. I love the vi mode, I wanted this for so long
My only issue with it is that they don't support a different mode key other than "esc". i'm used to "jj" and it's been quite annoying not being able to use it...
@@devopstoolbox That's a good point - Personally I got hooked on Ctrl+C years ago as an Esc replacement, but ... that won't work in a shell :P. Probably why I've never switched to vi mode in any shell. OTOH, Ctrl+O is always there to open the commandline in the editor itself.
Leader keys with a timeout (I assume that's how jj is typically implemented?) would be nice - I've toyed with some ideas here in Nushell (very briefly), but I don't think we can do it with Nushell/Reedline keybindings just yet.
@@devopstoolbox No smash escape ('jk'), not with me. But you should try jk instead of jj, especially in vim. It's literally the first thing I enter when I use vim on a remote/unconfigured machine: ":imap jk " THAT's how important it is to me. But with your moonlander keyboard this isn't a big issue actually.
OMG I didn't know about Carapace! Thanks for that. Was gonna roll my own completions script but that's way better.
I don't get why it provided git completions, though. The docs don't say that git.exe was written using Cobra - but it's the only completion I really care about :)
@@TheOneAnOnlyGuy imo git is the only thing i don't need completions for, but that's fair
One of us, one of us! (I've bean using nutshell for like 3-4 years now, love it)
Not like us, not like us! (hardcore ksh users)
Ok this is actually big! Very cool
Good to know about the sxhkd tweaking needed. Thanks!
I had nushell configured for some time, but the PSOIX compliance always held me back
Maybe I should give it a shot again! Especially since I am on NixOS most of the time and putting some random bash oneliners isn't much of a thing anymore
I totally get it. But, scripts can just be sent to their executor with a proper shabang, while other inline operations require some learning on your behalf. If you work with data from time to time, feels like its well worth the effort (I'm at the same point right now, and feeling the same annoyance)
In what way did this being non posix compliance hold you back? What kind of use cases require posix compliance, and how often do we need such use cases? Genuinely curious as i don’t use the shell for more than the trivial stuff
@@vikingthedude
Well, as soon as I wrote the post, I hit me kinda hard 😂
I was trying out clevis (something for encryption which also uses the TPM) and there you need to read into stdin and write to stdout. You usually do it with < (reading) and > (writing). For example "echo 'hi' > test.txt" would create a file test.txt with the content "hi". Somehow nutshell doesn't follow this and when I tried the example "$ clevis encrypt PIN CONFIG < PLAINTEXT > CIPHERTEXT.jwe" I was getting some weird errors from clevis, but nutshell was the culprit since the operators were doing something different.
It's just those small things, which in the end make your life a bit harder 🥲
This is a great video.I just started with Nu yesterday and your video is here! Wow.
How about a tutorial series on this?
I'm thinking about it. But I need some milage with it :)
@@devopstoolbox Don’t just do it! Wait until 1.0.0. Nu is the future imo. Bash isn’t going anywhere and I’d encourage every engineer to learn it, but slowly migrating stuff to Nu after it’s stable is going to be incredible.
As always, interesting, really appreciate you're sharing a lot of tricks. I rely a lot on my zshrc file to create symlinks and initialize some things, does this mean I have to move to a nu shell equivalent file with its own syntax?
Thanks! And unfortunately yes... definitely something to consider
@@devopstoolbox The demo you shared covers a lot of stuff that takes hours or even days to figure out on your own, so it's a wonderful starting point, again, thanks and will keep this shell in mind. New rabbit hole added to my procrastination list.
Oh nice! Looks like kusto or kql in shell. Love it!
5:40 honestly, its my only complaint.
'>' is such a quick and reliable operator. save takes too long to type
Where nushell costs you time there, it will save you a lot of time in other areas.
there's a quick operator you're used to, and there's sensible language and readability of scripts! the two aren't mutually exclusive. You could just map the operator in nushell if you wanted, but IIUC it wants to be better than posix not just different
@@devopstoolbox I don't think "save" is sensible wording. > is a redirect to file operator. It has different implications. It means it can pipe any incoming data continuously into a file. "save" just doesn't make sense for that. Atleast, not any more than redirect.
just alias it then
I think you can use "out>" or "o>" in nushell for that
There's also "err>" or "e>, and "out+err>" or "o+e>"
I am glad you like nushell, I was sure a tech champions like you would like it. The default features of nushell make it easy to create performant script to build commands and you can even DOCUMENT them O_o
You should make a video about the `xonsh` shell. That’s the real power 💪, especially if you’re a Python guy. 🐍
Thanks for the idea!
It's true that it takes some getting used to and that they break things very often at the moment, but i think it is better that way than having a bad 1.0 release that we as users have to live with for possibly decades later. Devs should take their time and experiment to find the best workflows before releasing 1.0. If you don't like to tweak your scripts and configs a bit every quarter or so this is not for you yet (just like any fresh programming language also is for more hardcore users willing to invest more time)
So it's powershell?
easier syntax and way faster
And way better. I used to be a powershell enthusiast in the days when I was happy to use windows. But over recent times my patience with evil corp has expired. Powershell has good intentions but in my opinion poorly executed. My biggest problem with it is its woeful approach to flag definitions its concept of parameter sets which ultimately makes building larger CLIs much more difficult. Nushell is going to be my shining knight to the rescue
Many thanks, Omer, for this review!
Is there any chance that you tell us something about the aluminum base your moonlander is mounted on? I would really appreciate having something like this, but did not found anything about on your „tech I use“ webpage. I got my moonlander a week ago and wanted to also use such a mount if it is not complete custom made which I think it might be?
of course! that's the ZSA platform. BUT - not a cheap product, and they have plenty of open source free models you can 3d print and enjoy. if you're unsure about tenting I'd start from there (you can find cheap services online that will print and ship it for you if you don't have a printer)
I changed to nushell 6 months ago just to try it. And has been my default ever since. Only thing that is annoying is that they deprecate stuff a lot and I keep have to fix scripts all the time
I hope I'll get to your place. Right now it's mainly fighting the bash muscle memory (exports, open commands, etc)
Id like to see a comparison between nushell and powershell
Not going to take powershell on anytime soon 😅
very interesting, although I just switched from bash to zsh, I will try to see nushell BUT I would also like to ask you where you found the keyboard tilt, unfortunately it is not shown on your KIT page
Yes, this is the ZSA platform, I love it but it's not cheap. they have plenty of free 3d printable models too!
imho, nushell relates to powershell same as fish to zsh
i still prefer zsh and pwsh in daily usage, but after the video probably want to check nushell
powershell was the 1st to use structured data. Maybe nushell makes it more ergonomic
I hate the fact that I love PowerShell lol. I’m so ready for Nu to hit 1.0.0
It's not a "maybe", it's a "definitely". PowerShell is an exercise in inconvenience. I'm not going to use nu anytime soon but it looks appealing.
Hey, I love your videos. Can you make a video for how you setup your macbook into your dev environment from scratch. I would love to see your settings that you change. Anyways Great Video.
Great idea!
I fucking love nushell
I actually use nushell with everything with CI for now. nu-lang has syntax pretty similar to rust, but so much easier and much more beautiful than bash 😂😂
I love it for small scripts more than python, although i havent used it much i believe it is what powershell was supposed to be.. Im waiting for v1.0 stability before jumping into it
How is it what powershell was supposed to be?
@adriansrfr powershell has started it with the structured data thing but i feel like it was made to be too verbose and feels like writing cobol
@alexstone691 try writing Java, c, or#. I don't find it verbose, but it can be if you want that much control and to make whatever your are writing featurefull.
OMG i'm in the video hi
I created the bat completions
THANK YOU!
Can nushell talk to other custom cli tools? For example can a program output JSON and nushell would just display that as a table?
Of course, pipes are first class citizen in nu, pipe your json / yaml the way you like it
What keyboard layout are you using? For me, it seems that it's not qwerty so I wanted to ask if you're using an alternative one
It is like powershell but faster
Love that shell
i like the idea of nushell but it is not a shell replacer for me. I gave an honest effort to rewrite a script I have I have in python and JavaScript to nushell but it doesn't have enough library yet
The point is rewriting bash
Why do you want to rewrite your python scripts?
not sure it compares (or want to be compared) to languages like python or js.
the 'idea' is being able to do most data-oriented tasks right from your shell with native tooling. scripting is another layer on top and i'd compare it to bash
@@luccahuguet the script is too complicated for plain POSIX shell. it needs to run tasks asynchronously which I was hoping to use par-each (nu-shell's async runner) but yet it doesn't need a general purpose language either.
@@ZiggleFingers nice. At least you tried
But what I meant is that this comparison is unfair, since it's a python/js script and not the niche nushell is aiming for...
If it was a bash script and you could not rewrite it in nushell that would be another story...
What @devopstoolbox said is quite on point imo
Configuring this on MacOS was a pain in the ass. I use a lot of *nix tools and this was by far the worst experience I’ve had.
How come? I'm using home manager for my mac and had 0 issues...
I am going through this ATM - did you manage to set nushell as a default/login shell? I am getting permission denied errors when I change the shell to nushell with chsh... Tried installing w/ just homebrew or with nix-darwin - no difference
Pretty cool!
These are the things i dont like about it.
> It feels like a programming language for some reason.
> It errrors when i try to reference a value that hasn't been declared. Just set it to nul.
> For some reason i have to turn a value into a boolean before i use it in an if statement. Just check for truthy or something
so its more similar to Windows Powershell but not object but structure(serialized object) based?
yes, pretty much
That double shell prompt character for starship and nushell are bugging me... been trying to solve that for a few hours now... would be great if the interop was a little better between nushell and starship for managing the prompt char and also handling custom escape keys for vi mode...
What is that browser?
It's arc, but it only looks this way because of editing tricks
@@devopstoolbox oh, I'd have sold a kidney.
Switch to zen, it's going to stay a browser, not switching focus to some AI train
Can someone tell me the difference between this and pwsh? More concise? Serious question ty ya'll.
Where is your dot file I would like to see how get syntax highlighted
dotfiles.omerxx.com
Reminds me of what powershell was trying to be
What's powershell trying to be.
What is this keyboard!?
The Moonlander :)
I've got a video covering it in full, coming out in a week or two!
LOL, crabs reinvented awk
They reinvent everything these days 😅
I wonder if a lot of the functionality here really requires a new shell. A custom CLI could replicate the querying and sorting of data using pipes.
but it will still stream data as strings instead of types
nushell recognizes even types like duration
also id argue that avoiding so many different dependencies and scripts and centralizing all functionality is a positive by itself
there's literally a github repo with countless CLI utils that deal with sorting and querying data but nushell persists and is only growing in popularity. Probably a good reason for it
I mean, almost everything is solvable with more tooling. IIUC nushell is trying to eliminate the need for tooling by implementing most functionality and doing it opinionated enough to save you from the choice paradox. additionally it comes with LOTS of stuff - hooks overlays, scripting, things I didn't touch or used really... this thing packs POWER.
You can use nu as a cli tool from another shell
Awesome content as always!
Can you share apple script for closing all notifications, please ?
I had one hooked into skhd but apple changed something in one of the recent OS releases and it stopped working properly. I'd ask chat gpt... (let me know if you make it work)
nu is real 👏
Isn't this what PowerShell tries to do? I guess nu would be much faster though.
Yes, they are often compared these days. My favorite comment is "nu-shell is powershell done right". I support that, because I just hate the verbosity and overall command design of pwsh. It's so microsofty... Like their other 90's garbage.
Pretty much, Nushell is like powershell for unix
@@freeo6242 i don't mind the verbosity because it has great auto complete that gets you like 90% of what you want to type
Aren't they both cross-platform?
@@adriansrfr exactly, you can use powershell on both Linux and Mac
lol so it's basically MS powershell for linux
what is worse: "skill issue" or "get good"?
Hit me with both?
Sad my comment was not in the screenshot reel
If I'd let the editor stack all of them it'd be a 15 minute videos piling comments on the screen :)
on a different optic - fancy a new screen saver...?
@@devopstoolbox who doesn't
Vim mode this vim mode that...
hx mode when?
Powershell in Rust?
Lets gooooo
So... Basically like Powershell?
Powershell uses objects, nushell uses tables.
I'd never use a shell that's not posix compliant
I thought so too, but what if...
Elvish next?
😅
You'd have to sell it...
At this point of time, If only there exist A "First Principle" tool that make me rethink the way I do my things will change something
Unless that everything is perfect nothing will change and I believe things that are already good need not be written rather why not just improve it?
Linux community recreating tools so badly nowadays that only thing left is Linux kernel itself.
like If I have already a good env with
Kitty + tmux + bash/zsh + Neovim
I don't need
Ghostty + zellij + nushell + ...
I guess it's a combination of approach and affinity to adopting new tech and improving the workflow, not always for the best reasons 😅
Me with alacritty + zellij + nushell + helix: :')
I'm glad someone created these newb friendly tools for me I guess.
But yeah once you build a good env not much need to change. Don't think Ghostty adds anything for me.
Ok now do a comparison to elvish ;)
Worth it?
Ctrl+O
nushell just looks like powershell for people living in denial
Looks more like powershell for beginners.
not a big fan of using this ugly ai art in the video
uhmm what AI art...?
@devopstoolbox the two pictures on the left in the beginning?
"Is Nushell Worth The Hype?"
Well.. no, not for me - Thanks for asking :)
Fair enough :)
another overhype shell
What else is overhyped? I'd love to test it!
Do you use plain nix for your config or you use home.nix ?
home.nix
How can I show collapsed table when you type "open some.json" ? I can get this with "open some.json | table". Thanks.