# The `stack ls` commands ~~~text stack ls COMMAND Available commands: dependencies View the dependencies snapshots View snapshots (local by default) stack-colors View Stack's output styles stack-colours View Stack's output styles (alias for 'stack-colors') tools View Stack's installed tools ~~~ The `stack ls` commands list different types of information. Command `stack ls` for the available commands. ## The `stack ls dependencies` command Either ~~~text stack ls dependencies COMMAND Available commands: cabal Print dependencies as exact Cabal constraints json Print dependencies as JSON text Print dependencies as text (default) tree Print dependencies as tree ~~~ or ~~~text stack ls dependencies [--separator SEP] [--[no-]license] [--[no-]external] [--[no-]include-base] [--depth DEPTH] [--prune PACKAGES] [TARGET] [--flag PACKAGE:[-]FLAG] [--test] [--bench] [--global-hints] ~~~ `stack ls dependencies` lists all of the packages and versions used for a project. All local packages are considered by default, but a target can be specified as an argument. For further information, see the [target syntax](build_command.md#target-syntax) documentation. Subcommands specify the format of the output, as follows: * `cabal` lists the packages in the format of exact Cabal constraints. For example (extract): ~~~text constraints: , Cabal ==3.6.3.0 , Cabal-syntax ==3.6.0.0 , Glob ==0.10.2 ~~~ * `json` lists dependencies in JSON format (an array of objects). For example (extract): ~~~text [{"dependencies":["base","bytestring"],"license":"BSD3","location":{"type":"hackage","url":"https://hackage.haskell.org/package/zlib-0.6.3.0"},"name":"zlib","version":"0.6.3.0"}, ~~~ Each object has the following keys: ~~~json name: zlib version: 0.6.3.0 location: type: hackage url: https://hackage.haskell.org/package/zlib-0.6.3.0 licence: BSD3 dependencies: - base - bytestring ~~~ * `text` (the default) lists the packages, each on a separate line. For example (extract): ~~~text Cabal 3.6.3.0 Cabal-syntax 3.6.0.0 Glob 0.10.2 ~~~ * `tree` lists dependencies in the format of a tree. For example (extract): ~~~text Packages └─┬ stack 2.10.0 ├─┬ Cabal 3.6.3.0 │ ├─┬ Win32 2.12.0.1 │ │ ├─┬ base 4.16.3.0 │ │ │ ├─┬ ghc-bignum 1.2 │ │ │ │ └─┬ ghc-prim 0.8.0 │ │ │ │ └── rts 1.0.2 │ │ │ ├─┬ ghc-prim 0.8.0 ~~~ The `--separator` option specifies the separator between the package name and its version. The default is a space character. Set the `--license` flag, after the `text` or `tree` subcommand, to replace each package's version with its licence. (Consistent with the Cabal package description format specification, only the American English spelling (license) is accepted.) Set the `--no-external` flag to exclude external dependencies. Set the `--no-include-base` flag to exclude dependencies on the `base` package. The `--depth` option limits the depth of dependency resolution. The `--prune ` option prunes the specified packages and their dependencies from the tree of packages used to generate the output, where `` is a comma separated list of package names. The `--flag` option allows Cabal flags to be specified. Pass the `--test` flag to consider the dependencies of test suite components. Pass the `--bench` flag to consider the dependencies of benchmark components. Pass the `--global-hints` flag to use a hints file for global packages. The command then does not require an installed GHC. ## The `stack ls snapshots` command ~~~text stack ls snapshots [COMMAND] [-l|--lts] [-n|--nightly] Available commands: local View local snapshots remote View remote snapshots ~~~ `stack ls snapshots` will list all the local snapshots by default. You can also view the remote snapshots using `stack ls snapshots remote`. It also supports options for viewing only lts (`-l`) and nightly (`-n`) snapshots. ## The `stack ls stack-colors` command ~~~text stack ls stack-colors [--[no-]basic] [--[no-]sgr] [--[no-]example] ~~~ The British English spelling is also accepted (`stack ls stack-colours`). `stack ls stack-colors` will list all of Stack's output styles. A number of different formats for the output are available, see `stack ls stack-colors --help`. The default is a full report, with the equivalent SGR instructions and an example of the applied style. The latter can be disabled with flags `--no-sgr` and `--no-example`. The flag `--basic` specifies a more basic report, in the format that is accepted by Stack's command line option `--stack-colors` and the YAML configuration key `stack-colors`. ## The `stack ls tools` command ~~~text stack ls tools [--filter TOOL_NAME] ~~~ `stack ls tools` will list Stack's installed tools. On Unix-like operating systems, they will be one or more versions of GHC. On Windows, they will include MSYS2. For example, on Windows the command: ~~~text stack ls tools ~~~ yields output like: ~~~text ghc-9.4.1 ghc-9.2.4 ghc-9.0.2 msys2-20210604 ~~~ The `--filter ` option will filter the output by a tool name (e.g. 'ghc', 'ghc-git' or 'msys2'). The tool name is case sensitive. For example the command: ~~~text stack ls tools --filter ghc ~~~ yields output like: ~~~text ghc-9.4.1 ghc-9.2.4 ghc-9.0.2 ~~~