# The `stack unpack` command
~~~text
stack unpack TARGET [--candidate] [--to DIR]
~~~
`stack unpack` downloads an archive file for one or more specified target
packages from the package index (e.g. Hackage), or one or more specified target
package candidates, and unpacks each archive into a subdirectory named after the
package version.
In the case of packages from the package index, a target can be a package
name only. In that case, by default:
* if Stack's `--snapshot` option is not specified, the download is for the
most recent version of the package in the package index. Stack will first
seek to update the index; and
* if Stack's `--snapshot` option is specified, the download is for the version
of the package included directly in the specified snapshot.
!!! note
Stackage snapshots do not include directly most GHC boot packages (packages
that come with GHC and are included in GHC's global package database) but
some snapshots may include directly some boot packages. In particular, some
snapshots include directly `Win32` (which is a boot package on Windows)
while others do not.
Otherwise, a target should specify a package name and version (for example,
`acme-missiles-0.3`). In the case of package versions from the package index,
optionally, a revision in the package index can be specified by appending
`@rev:` or `@sha256:` (for example, `acme-missiles-0.3@rev:0`).
By default:
* the download is from the package index. Pass the flag `--candidate` to
specify package candidates; and
!!! note
Stack assumes that a package candidate archive is a `.tar.gz` file named
after the package version and located at endpoint
`package\\candidate\`. This is true of Hackage.
* the target is unpacked into a subdirectory of the current directory. Pass
the option `--to ` to specify an alternative destination
directory to the current directory. The destination directory can be an
absolute one or relative to the current directory.