Neovim + mini.pick + nushell = CLI fuzzy picker. Why? Because why not.

neovim
reddit
Author

Evgeni Chasnovski

Published

June 20, 2025

Originally posted on Reddit

Hello, Neovim users!

For quite some time I was interested in trying out Nushell as my default shell. To be perfectly honest, I am not sure why. Probably because I am drawn to the idea of “piping structured data” and mastering a powerful tool for the future. Or maybe it is just pretty tables, who knows.

Several weeks ago I decided to give it a try but only in Ghostty (terminal emulator I use for regular activity; as opposed to backup st with Zsh). It is pretty interesting to set up from ground up and use.

Switching from Zsh to Nushell very much reminds me of switching from Vim to Neovim just after the latter got first-class Lua support. Nu (language of Nushell) is a saner language than Bash to hack the config and add custom features (very much like Lua is to Vimscript). But it is not quite stable yet, so expecting something to break after new release is not baseless.


Anyway, while writing my prompt from scratch (as one does) I also thought that it would be an interesting challenge to try to go without fzf in CLI and try to use fuzzy picking I have set up in Neovim with ‘mini.pick’. It turned out to be not as complicated as I feared at the beginning. The only downside is that Neovim always occupies full terminal window, so it is impossible to have small-ish picker as fzf.

I believe the overall approach can be generalized to other shells and Neovim’s fuzzy pickers, so decided to share it here. Basically:

My dedicated Neovim config for this is here (it assumes ‘mini.nvim’ is already installed as suggested in ’pack/*/start’ directory). The Nushell part of the approach is here.

The approach is not perfect and I’d recommend to daily drive it only if you understand how it works. But maybe the whole approach would interesting to someone.

Thanks for reading!