Reference

nix3-flake-info(1)

show flake metadata

Warning
This program is experimental ⟨@docroot@/development/experimental-features.md#xp-feature-nix-command⟩ and its interface is subject to change.

Name

nix flake info - show flake metadata

Synopsis

nix flake info [option…] flake-url

Examples

•

Show what dwarffs resolves to:

# nix flake metadata dwarffs
Resolved URL:  github:edolstra/dwarffs
Locked URL:    github:edolstra/dwarffs/f691e2c991e75edb22836f1dbe632c40324215c5
Description:   A filesystem that fetches DWARF debug info from the Internet on demand
Path:          /nix/store/769s05vjydmc2lcf6b02az28wsa9ixh1-source
Revision:      f691e2c991e75edb22836f1dbe632c40324215c5
Last modified: 2021-01-21 15:41:26
Inputs:
├───nix: github:NixOS/nix/6254b1f5d298ff73127d7b0f0da48f142bdc753c
│   ├───lowdown-src: github:kristapsdz/lowdown/1705b4a26fbf065d9574dce47a94e8c7c79e052f
│   └───nixpkgs: github:NixOS/nixpkgs/ad0d20345219790533ebe06571f82ed6b034db31
└───nixpkgs follows input 'nix/nixpkgs'

•

Show information about dwarffs in JSON format:

# nix flake metadata dwarffs --json | jq .
{
"description": "A filesystem that fetches DWARF debug info from the Internet on demand",
"lastModified": 1597153508,
"locked": {
  "lastModified": 1597153508,
  "narHash": "sha256-VHg3MYVgQ12LeRSU2PSoDeKlSPD8PYYEFxxwkVVDRd0=",
  "owner": "edolstra",
  "repo": "dwarffs",
  "rev": "d181d714fd36eb06f4992a1997cd5601e26db8f5",
  "type": "github"
},
"locks": { ... },
"original": {
  "id": "dwarffs",
  "type": "indirect"
},
"originalUrl": "flake:dwarffs",
"path": "/nix/store/hang3792qwdmm2n0d9nsrs5n6bsws6kv-source",
"resolved": {
  "owner": "edolstra",
  "repo": "dwarffs",
  "type": "github"
},
"resolvedUrl": "github:edolstra/dwarffs",
"revision": "d181d714fd36eb06f4992a1997cd5601e26db8f5",
"url": "github:edolstra/dwarffs/d181d714fd36eb06f4992a1997cd5601e26db8f5"
}

Description

This command shows information about the flake specified by the flake reference flake-url. It resolves the flake reference using the flake registry ⟨./nix3-registry.md⟩\c , fetches it, and prints some meta data. This includes:

•

Resolved URL: If flake-url is a flake identifier, then this is the flake reference that specifies its actual location, looked up in the flake registry.

•

Locked URL: A flake reference that contains a commit or content hash and thus uniquely identifies a specific flake version.

•

Description: A one-line description of the flake, taken from the description field in flake.nix.

•

Path: The store path containing the source code of the flake.

•

Revision: The Git or Mercurial commit hash of the locked flake.

•

Revisions: The number of ancestors of the Git or Mercurial commit of the locked flake. Note that this is not available for github flakes.

•

Last modified: For Git or Mercurial flakes, this is the commit time of the commit of the locked flake; for tarball flakes, it’s the most recent timestamp of any file inside the tarball.

•

Inputs: The flake inputs with their corresponding lock file entries.

With --json, the output is a JSON object with the following fields:

•

original and originalUrl: The flake reference specified by the user (flake-url) in attribute set and URL representation.

•

resolved and resolvedUrl: The resolved flake reference (see above) in attribute set and URL representation.

•

locked and lockedUrl: The locked flake reference (see above) in attribute set and URL representation.

•

description: See Description above.

•

path: See Path above.

•

revision: See Revision above.

•

revCount: See Revisions above.

•

lastModified: See Last modified above.

•

locks: The contents of flake.lock.

Options

•

--json ⟨#opt-json⟩

Produce output in JSON format, suitable for consumption by another program.

Common evaluation options

•

--arg ⟨#opt-arg⟩ name expr

Pass the value expr as the argument name to Nix functions.

•

--arg-from-file ⟨#opt-arg-from-file⟩ name path

Pass the contents of file path as the argument name to Nix functions.

•

--arg-from-stdin ⟨#opt-arg-from-stdin⟩ name

Pass the contents of stdin as the argument name to Nix functions.

•

--argstr ⟨#opt-argstr⟩ name string

Pass the string string as the argument name to Nix functions.

•

--debugger ⟨#opt-debugger⟩

Start an interactive environment if evaluation fails.

•

--eval-store ⟨#opt-eval-store⟩ store-url

The URL of the Nix store ⟨@docroot@/store/types/index.md#store-url-format⟩ to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.

•

--impure ⟨#opt-impure⟩

Allow access to mutable paths and repositories.

•

--include ⟨#opt-include⟩ / -I path

Add path to search path entries used to resolve lookup paths ⟨@docroot@/language/constructs/lookup-path.md⟩

This option may be given multiple times.

Paths added through -I take precedence over the nix-path configuration setting ⟨@docroot@/command-ref/conf-file.md#conf-nix-path⟩ and the NIX_PATH environment variable ⟨@docroot@/command-ref/env-common.md#env-NIX_PATH⟩\c .

•

--override-flake ⟨#opt-override-flake⟩ original-ref resolved-ref

Override the flake registries, redirecting original-ref to resolved-ref.

Common flake-related options

•

--commit-lock-file ⟨#opt-commit-lock-file⟩

Commit changes to the flake’s lock file.

•

--inputs-from ⟨#opt-inputs-from⟩ flake-url

Use the inputs of the specified flake as registry entries.

•

--no-registries ⟨#opt-no-registries⟩

Don’t allow lookups in the flake registries.

DEPRECATED

Use --no-use-registries ⟨@docroot@/command-ref/conf-file.md#conf-use-registries⟩ instead.

•

--no-update-lock-file ⟨#opt-no-update-lock-file⟩

Do not allow any updates to the flake’s lock file.

•

--no-write-lock-file ⟨#opt-no-write-lock-file⟩

Do not write the flake’s newly generated lock file.

•

--output-lock-file ⟨#opt-output-lock-file⟩ flake-lock-path

Write the given lock file instead of flake.lock within the top-level flake.

•

--override-input ⟨#opt-override-input⟩ input-path flake-url

Override a specific flake input (e.g. dwarffs/nixpkgs). This implies --no-write-lock-file.

•

--recreate-lock-file ⟨#opt-recreate-lock-file⟩

Recreate the flake’s lock file from scratch.

DEPRECATED

Use nix flake update ⟨@docroot@/command-ref/new-cli/nix3-flake-update.md⟩ instead.

•

--reference-lock-file ⟨#opt-reference-lock-file⟩ flake-lock-path

Read the given lock file instead of flake.lock within the top-level flake.

•

--update-input ⟨#opt-update-input⟩ input-path

Update a specific flake input (ignoring its previous entry in the lock file).

DEPRECATED

Use nix flake update ⟨@docroot@/command-ref/new-cli/nix3-flake-update.md⟩ instead.

Logging-related options

•

--debug ⟨#opt-debug⟩

Set the logging verbosity level to ‘debug’.

•

--log-format ⟨#opt-log-format⟩ format

Set the format of log output; one of raw, internal-json, bar or bar-with-logs.

•

--print-build-logs ⟨#opt-print-build-logs⟩ / -L

Print full build logs on standard error.

•

--quiet ⟨#opt-quiet⟩

Decrease the logging verbosity level.

•

--verbose ⟨#opt-verbose⟩ / -v

Increase the logging verbosity level.

Miscellaneous global options

•

--help ⟨#opt-help⟩

Show usage information.

•

--offline ⟨#opt-offline⟩

Disable substituters and consider all previously downloaded files up-to-date.

•

--option ⟨#opt-option⟩ name value

Set the Nix configuration setting name to value (overriding nix.conf).

•

--refresh ⟨#opt-refresh⟩

Consider all previously downloaded files out-of-date.

•

--repair ⟨#opt-repair⟩

During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.

•

--version ⟨#opt-version⟩

Show version information.

Note

See man nix.conf ⟨@docroot@/command-ref/conf-file.md#command-line-flags⟩ for overriding configuration settings with command line flags.

History