I split off my nixos option command from the nixos-cli project that I’ve been working on and made it work with pretty much any module system you can get your hands on.
As such, you can search through and evaluate options for NixOS, nix-darwin, home-manager, and flake-parts: basically, as long as you have an options attribute set exposed somewhere, you can search through those options and preview their values.
There’s a few linked recipes for how to setup the configuration file for proper searching; try it out and see how you all like it!
This is cool! Gonna try it out. Regarding HM options when using the NixOS module, it seems nixosConfigurations.HOSTNAME.options.home-manager.users.type.getSubOptions [] gives an attrset of HM options, similar to nixosConfigurations.HOSTNAME.options. Not sure if this is useful, as my knowledge of the language and module system is still pretty basic.
Interestingly I’m unable to evaluate the result from this using lib.optionAttrSetToDocList, but if you can get a good minimal example working, since you can plugin any command for generating the option list, I’d love to include in my recipes in the README! I’ll also experiment around with this for a bit on my own.
Something that would be super nice is a gif of the CLI in action in the readme. I am less likely to bother going through required (reasonable!) setup if I don’t know what my destination is.