| title | Commands |
|---|
Some of Stack's features will not be needed regularly or by all users. This part of the guide and the part on configuration provide information about some of those features, organised as a reference guide. Some of the features are complex and separate pages are dedicated to them.
Stack is usually used with one of its commands (see further below). However:
-
stack,stack --help(or-h) lists Stack's commands, and flags and options common to those commands; -
stack <command> --help(or-h) — provides help on the particular Stack command, including flags and options specific to the command; and -
stack --versionidentifies the version and Git hash of the Stack executable.
!!! info "Runtime system (RTS) options"
The Stack executable is built by GHC with the `-rtsopts=some` option. This
means that the RTS extracts command-line arguments bracketed between `+RTS`
and `-RTS` as its own when Stack is run. Only the following RTS
options are available:
* `-?` (e.g. `stack +RTS -?`) causes the RTS to output information about
RTS options; and
* `--info` (e.g. `stack +RTS --info`) causes the RTS to output information
about the RTS.
To avoid the RTS extracting such command-line arguments as its own when
using Stack commands such as [`exec`](exec_command.md),
[`test`](test_command.md) or [`bench`](bench_command.md), see the
documentation for those commands.
setup- get GHC for a Stack project (usually not needed)update- update the package index (usually not needed)new- create a new project with Stackinit- initialise Stack's project-level YAML configuration file for an existing project
build- build packagestest- a synonym forstack build --testbench- a synonym forstack build --benchhaddock- a synonym forstack build --haddockinstall- a synonym forstack build --copy-binsrun- build and run an executable
docker- use Stack with Docker
exec- executate a command in the Stack environmentghc- runghceval- evaluate some Haskell code inlinerunghc- runrunghcrunhaskell- a synonym forstack runghc
unpack- unpack one or more packages locallysdist- create an archive file for a package, in a form accepted by Hackageupload- upload a package to Hackage
clean- delete build artefacts for the project packagespurge- delete the Stack working directories
config set- modify Stack's configuration
script- run a Haskell source file as a script
path- information about locations used by Stackls- list information about Stacklist- list packages on Hackage or in a snapshotide- information for an integrated development environment (IDE)query- information about the buildconfig env- modify Stack's configurationtemplates- information about templates for use withstack newuninstall- information about how to uninstall Stack
hoogle- runhoogledot- dependency visualizationhpc- generate Haskell Program Coverage (HPC) code coverage reports
upgrade- upgrade Stack
Stack's commands are listed below, in alphabetical order.
bench- a synonym forstack build --benchbuild- build packagesclean- delete build artefacts for the project packagesconfig- access and modify Stack's configurationdocker- use Stack with Dockerdot- dependency visualizationeval- evaluate some Haskell code inlineexec- executate a command in the Stack environmenthaddock- a synonym forstack build --haddockhoogle- runhooglehpc- generate Haskell Program Coverage (HPC) code coverage reportsghc- runghcghci- run GHCi, a REPL environmentide- information for an integrated development environment (IDE)init- initialise Stack's project-level YAML configuration file for an existing projectinstall- a synonym forstack build --copy-binslist- list packages on Hackage or in a snapshotls- list information about Stacknew- create a new project with Stackpath- information about locations used by Stackpurge- delete the Stack working directoriesquery- information about the buildrepl- a synonym forstack ghcirun- build and run an executablerunghc- runrunghcrunhaskell- a synonym forstack runghcscript- run a Haskell source file as a scriptsdist- create an archive file for a package, in a form accepted by Hackagesetup- get GHC for a Stack projecttemplates- information about templates for use withstack newtest- a synonym forstack build --testuninstall- information about how to uninstall Stackunpack- unpack one or more packages locallyupdate- update the package indexupgrade- upgrade Stackupload- upload a package to Hackage