nix3-search(1)
π nix3-search(1) β the manual page, but make it make sense
okay bestie, welcome to nix3-search(1), straight out of the General Commands Manual. this one's for the nix CLI, and it's giving very useful, lowkey iconic energy. π
β οΈ Warning: this program is experimental and its interface is subject to change. like, she's still in her development era. don't come for her when the flags shift, okay? π
β¨ Name β¨
nix search β search for packages π
β¨ Synopsis β¨
nix search [optionβ¦] installable regexβ¦
β¨ Examples β¨
okay so let's actually do some stuff, fr fr:
- Show all packages in the nixpkgs flake:
# nix search nixpkgs ^
* legacyPackages.x86_64-linux.AMB-plugins (0.8.1)
A set of ambisonics ladspa plugins
* legacyPackages.x86_64-linux.ArchiSteamFarm (4.3.1.0)
Application with primary purpose of idling Steam cards from multiple accounts simultaneously
β¦
- Show packages in the nixpkgs flake containing blender in its name or description:
# nix search nixpkgs blender
* legacyPackages.x86_64-linux.blender (2.91.0)
3D Creation/Animation/Publishing System
- Search for packages underneath the attribute gnome3 in Nixpkgs:
# nix search nixpkgs#gnome3 vala
* legacyPackages.x86_64-linux.gnome3.vala (0.48.9)
Compiler for GObject type system
- Show all packages in the flake in the current directory:
# nix search . ^
- Search for Firefox or Chromium:
# nix search nixpkgs 'firefox|chromium'
- Search for packages containing git and either frontend or gui:
# nix search nixpkgs git 'frontend|gui'
- Search for packages containing neovim but hide ones containing either gui or python:
# nix search nixpkgs neovim --exclude 'python|gui'
or
# nix search nixpkgs neovim --exclude 'python' --exclude 'gui'
β¨ Description β¨
okay so nix search searches an installable that can be evaluated β so like, a flake or a Nix expression, but not a store path or a deriving path β for packages whose name or description matches all of the regular expressions regex. πΈ
for every matching package, she prints the full attribute name (from the root of the installable), the version, and the meta.description field β and she highlights the substrings that got matched by your regular expressions. main character highlighting, honestly. β¨
wanna show all the packages? use the regular expression ^. and the way that this is better than .*?? .* highlights the entire name and description of every single package, which is lowkey a crime against your eyeballs. ^ does not. periodt. π
π Note: in this context, ^ is the regex character that matches the beginning of a string β it is not the delimiter for selecting a derivation output. don't confuse them bestie, they're different girlies. π
β¨ Flake output attributes β¨
if you don't give a flake output attribute, nix search goes looking for packages:
- Directly underneath
packages.<system>. - Underneath
legacyPackages.<system>, recursing into attribute sets that contain an attributerecurseForDerivations = true.
β¨ Options β¨
--exclude,-eregex β hide packages whose attribute path, name or description contain regex. bye girl, not today. π«Ά--jsonβ produce output in JSON format, suitable for consumption by another program. feed the machines. π€--no-prettyβ print compact JSON output on a single line, even when the output is a terminal. some commands may print multiple JSON objects on separate lines. see--pretty.--prettyβ print multi-line, indented JSON output for readability.
Default: indent if output is to a terminal.
This option is only effective when --json is also specified.
Common evaluation options
--argname expr β pass the value expr as the argument name to Nix functions.--arg-from-filename path β pass the contents of file path as the argument name to Nix functions.--arg-from-stdinname β pass the contents of stdin as the argument name to Nix functions.--argstrname string β pass the string string as the argument name to Nix functions.--debuggerβ start an interactive environment if evaluation fails. girl help is on the way. π§--eval-storestore-url β the URL of the Nix store to use for evaluation, i.e. to store derivations (.drvfiles) and inputs referenced by them.--impureβ allow access to mutable paths and repositories. she's a little unhinged, we love that for her. π₯--include,-Ipath β add path to search path entries used to resolve lookup paths.
This option may be given multiple times.
Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable.
--override-flakeoriginal-ref resolved-ref β override the flake registries, redirecting original-ref to resolved-ref.
Common flake-related options
--commit-lock-fileβ commit changes to the flake's lock file.--inputs-fromflake-url β use the inputs of the specified flake as registry entries.--no-registriesβ don't allow lookups in the flake registries.
π« DEPRECATED Use --no-use-registries instead.
--no-update-lock-fileβ do not allow any updates to the flake's lock file. hands off. β--no-write-lock-fileβ do not write the flake's newly generated lock file.--output-lock-fileflake-lock-path β write the given lock file instead offlake.lockwithin the top-level flake.--override-inputinput-path flake-url β override a specific flake input (e.g.dwarffs/nixpkgs). The input path must not be empty. This implies--no-write-lock-file.--recreate-lock-fileβ recreate the flake's lock file from scratch.
π« DEPRECATED Use nix flake update instead.
--reference-lock-fileflake-lock-path β read the given lock file instead offlake.lockwithin the top-level flake.--update-inputinput-path β update a specific flake input (ignoring its previous entry in the lock file).
π« DEPRECATED Use nix flake update instead.
Logging-related options
--debugβ set the logging verbosity level to 'debug'.--log-formatformat β set the format of log output; one ofraw,internal-json,barorbar-with-logs.--print-build-logs,-Lβ print full build logs on standard error.--quietβ decrease the logging verbosity level. shhh. π€«--verbose,-vβ increase the logging verbosity level. tell me EVERYTHING. π
Miscellaneous global options
--helpβ show usage information.--offlineβ disable substituters and consider all previously downloaded files up-to-date.--optionname value β set the Nix configuration setting name to value (overridingnix.conf).--refreshβ consider all previously downloaded files out-of-date.--repairβ during evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.--versionβ show version information.
Options that change the interpretation of installables
--exprexpr β interpret installables as attribute paths relative to the Nix expression expr.--file,-ffile β interpret installables as attribute paths relative to the Nix expression stored in file. If file is the character-, then a Nix expression is read from standard input. Implies--impure.
π Note: see man nix.conf for overriding configuration settings with command line flags.
and that's the whole page, bestie!! π¦ she's from the General Commands Manual, she's nix3-search(1), and she ate. no cap. go search some packages, you got this π β¨ π
π¦ where this page comes from
- fedora 44: nix-core 2.35.3-2.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms