Capri (abbreviation of CAbal PRIvate) is a wrapper program on top of cabal-install to operate it in project-private mode. In this mode, there is no global or user package databases; only one package database is defined, private to the project, located under the root directory of a project.

Capri invokes cabal-install and ghc-pkg in the way that only project's private package database is visible. Starting with minimally required set of packages, all necessary dependencies will be installed into that database, not affecting user or global databases.

Capri is mainly intended to build executable programs. It depends on certain features of GHC, and is not usable with other Haskell compilers.

Further reading: http://www.haskell.org/haskellwiki/Capri