Warning
This program is experimental and its interface is subject to change.
Name
nix search
- search for packages
Synopsis
nix search
[option...] installable regex...
Examples
-
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 containingblender
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 eitherfrontend
orgui
:# nix search nixpkgs git 'frontend|gui'
-
Search for packages containing
neovim
but hide ones containing eithergui
orpython
:# nix search nixpkgs neovim --exclude 'python|gui'
or
# nix search nixpkgs neovim --exclude 'python' --exclude 'gui'
Description
nix search
searches installable (which can be evaluated, that is, a
flake or Nix expression, but not a store path or store derivation path) for packages whose name or description matches all of the
regular expressions regex. For each matching package, It prints the
full attribute name (from the root of the installable), the version
and the meta.description
field, highlighting the substrings that
were matched by the regular expressions.
To show all packages, use the regular expression ^
. In contrast to .*
,
it avoids highlighting the entire name and description of every package.
Note that in this context,
^
is the regex character to match the beginning of a string, not the delimiter for selecting a derivation output.
Flake output attributes
If no flake output attribute is given, nix search
searches for
packages:
-
Directly underneath
packages.<system>
. -
Underneath
legacyPackages.<system>
, recursing into attribute sets that contain an attributerecurseForDerivations = true
.
Options
-
--exclude
/-e
regexHide packages whose attribute path, name or description contain regex.
-
Produce output in JSON format, suitable for consumption by another program.
Common evaluation options
-
--arg
name exprPass the value expr as the argument name to Nix functions.
-
--arg-from-file
name pathPass the contents of file path as the argument name to Nix functions.
-
--arg-from-stdin
namePass the contents of stdin as the argument name to Nix functions.
-
--argstr
name stringPass the string string as the argument name to Nix functions.
-
Start an interactive environment if evaluation fails.
-
--eval-store
store-urlThe URL of the Nix store to use for evaluation, i.e. to store derivations (
.drv
files) and inputs referenced by them. -
Allow access to mutable paths and repositories.
-
--include
/-I
pathAdd path to search path entries used to resolve lookup paths
This option may be given multiple times.
Paths added through
-I
take precedence over thenix-path
configuration setting and theNIX_PATH
environment variable. -
--override-flake
original-ref resolved-refOverride the flake registries, redirecting original-ref to resolved-ref.
Common flake-related options
-
Commit changes to the flake's lock file.
-
--inputs-from
flake-urlUse the inputs of the specified flake as registry entries.
-
Don't allow lookups in the flake registries.
DEPRECATED
Use
--no-use-registries
instead. -
Do not allow any updates to the flake's lock file.
-
Do not write the flake's newly generated lock file.
-
--output-lock-file
flake-lock-pathWrite the given lock file instead of
flake.lock
within the top-level flake. -
--override-input
input-path flake-urlOverride a specific flake input (e.g.
dwarffs/nixpkgs
). This implies--no-write-lock-file
. -
Recreate the flake's lock file from scratch.
DEPRECATED
Use
nix flake update
instead. -
--reference-lock-file
flake-lock-pathRead the given lock file instead of
flake.lock
within the top-level flake. -
--update-input
input-pathUpdate a specific flake input (ignoring its previous entry in the lock file).
DEPRECATED
Use
nix flake update
instead.
Logging-related options
-
Set the logging verbosity level to 'debug'.
-
--log-format
formatSet the format of log output; one of
raw
,internal-json
,bar
orbar-with-logs
. -
--print-build-logs
/-L
Print full build logs on standard error.
-
Decrease the logging verbosity level.
-
--verbose
/-v
Increase the logging verbosity level.
Miscellaneous global options
-
Show usage information.
-
Disable substituters and consider all previously downloaded files up-to-date.
-
--option
name valueSet the Nix configuration setting name to value (overriding
nix.conf
). -
Consider all previously downloaded files out-of-date.
-
During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.
-
Show version information.
Options that change the interpretation of installables
-
--expr
exprInterpret installables as attribute paths relative to the Nix expression expr.
-
--file
/-f
fileInterpret installables as attribute paths relative to the Nix expression stored in file. If file is the character -, then a Nix expression will be read from standard input. Implies
--impure
.
Note
See
man nix.conf
for overriding configuration settings with command line flags.