Skip to content

The stack config commands

stack config COMMAND

Available commands:
  build-files              Generate (when applicable) a Cabal file from a
                           package description in the Hpack format and/or a lock
                           file for Stack's project-level configuration.
  env                      Print environment variables for use in a shell.
  set                      Set a key in a configuration file to value.

The stack config commands provide assistance with accessing or modifying Stack's configuration. See stack config for the available commands.

The stack config build-files command

stack config build-files

stack config build-files generates (when applicable):

  • a Cabal file from a package description in the Hpack format (package.yaml); and/or

  • a lock file for Stack's project-level configuration (by default, stack.yaml);

without taking any other build steps.

The stack config env command

stack config env [--[no-]locals] [--[no-]ghc-package-path] [--[no-]stack-exe]
                 [--[no-]locale-utf8] [--[no-]keep-ghc-rts]

stack config env outputs a script that sets or unsets environment variables for a Stack environment. Flags modify the script that is output:

  • --[no-]locals (enabled by default) include/exclude project package information
  • --[no-]ghc-package-path (enabled by default) set GHC_PACKAGE_PATH environment variable or not
  • --[no-]stack-exe (enabled by default) set STACK_EXE environment variable or not
  • --[no-]locale-utf8 (disabled by default) set the GHC_CHARENC environment variable to UTF-8 or not
  • --[no-]keep-ghc-rts (disabled by default) keep/discard any GHCRTS environment variable

The command also accepts flags and options of the stack build command that affect the location of the local project installation directory, such as --profile and --no-strip. For further information, see the documentation of the project Stack work directory.

The stack config set commands

stack config set COMMAND

Available commands:
  install-ghc              Configure whether or not Stack should automatically
                           install GHC when necessary.
  install-msys             Configure whether or not Stack should automatically
                           install MSYS2 when necessary.
  package-index            Configure Stack's package index
  recommend-stack-upgrade  Configure whether or not Stack should notify the user
                           if it identifes a new version of Stack is available.
  resolver                 Change the snapshot of the current project, using the
                           resolver key.
  snapshot                 Change the snapshot of the current project.
  system-ghc               Configure whether or not Stack should use a system
                           GHC installation.

The stack config set commands allow the values of keys in configuration files to be set. See stack config set for the available keys.

Note

The config set commands support an existing key only in the form key: value on a single line.

The stack config set install-ghc command

stack config set install-ghc [--global] true|false

stack config set install-ghc true or false sets the install-ghc non-project specific configuration option in a configuration file, accordingly. By default, the project-level configuration file (stack.yaml, by default) is altered. The --global flag specifies the user-specific global configuration file (config.yaml).

The stack config set install-msys command

3.5.1

stack config set install-msys [--global] true|false

stack config set install-msys true or false sets the install-msys non-project specific configuration option in a configuration file, accordingly. By default, the project-level configuration file (stack.yaml, by default) is altered. The --global flag specifies the user-specific global configuration file (config.yaml).

The stack config set package-index download-prefix command

2.9.3

stack config set package-index download-prefix [--global] [URL]

stack config set package-index download-prefix <url> sets the download-prefix key of the package-index non-project specific configuration option in a configuration file, accordingly. By default, the project-level configuration file (stack.yaml, by default) is altered. The --global flag specifies the user-specific global configuration file (config.yaml).

The stack config set recommend-stack-upgrade command

stack config set recommend-stack-upgrade [--project] true|false

stack config set recommend-stack-upgrade true or false sets the recommend-stack-upgrade non-project specific configuration option in a configuration file, accordingly. By default, the user-specific global configuration file (config.yaml) is altered. The --project flag specifies the project-level configuration file (stack.yaml, by default).

The stack config set resolver command

stack config set resolver SNAPSHOT

A command corresponding to the stack config set snapshot command but using the resolver key instead of the snapshot key.

The stack config set snapshot command

2.15.1

stack config set snapshot SNAPSHOT

stack config set snapshot <snapshot> sets the snapshot project-specific configuration option in the project-level configuration file (stack.yaml, by default) to the specified snapshot.

A snapshot of lts or nightly will be translated into the most recent available. A snapshot of lts-22 will be translated into the most recent available in the lts-22 sequence.

If a resolver key is present, it will be replaced by a snapshot key.

The stack config set system-ghc command

stack config set system-ghc [--global] true|false

stack config set system-ghc true or false sets the system-ghc non-project specific configuration option in a configuration file, accordingly. By default, the project-level configuration file (stack.yaml, by default) is altered. The --global flag specifies the user-specific global configuration file (config.yaml).