Monthly Downloads: 3
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Distribution     DevOps    
Latest version: v1.2.0.2

hi alternatives and similar packages

Based on the "Distribution" category.
Alternatively, view hi alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of hi or a related project?

Add another 'Distribution' Package


hi Build StatusCoverage StatusHackage

Generate scaffold for a Haskell project


This application generates a scaffold for Haskell project from a Git repository. The template can be specified by Git repository. hi-hspec will be used as a default template.


Basic Example

$ hi foo-bar-baz
Creating new project with git repository:git://github.com/fujimura/hi-hspec.git
    create  foo-bar-baz/.gitignore
    create  foo-bar-baz/LICENSE
    create  foo-bar-baz/README.md
    create  foo-bar-baz/foo-bar-baz.cabal
    create  foo-bar-baz/src/Foo/Bar/Baz.hs
    create  foo-bar-baz/src/Foo/Bar/Baz/Internal.hs
    create  foo-bar-baz/test/Foo/Bar/BazSpec.hs
    create  foo-bar-baz/test/Spec.hs

Specifying template

Specifying repository in GitHub has a shorthand like this:

$ hi foo-bar-baz --repository gh:fujimura/hi-flat
Creating new project from repository: [email protected]:fujimura/hi-flat.git
    create  foo-bar-baz/.gitignore
    create  foo-bar-baz/LICENSE
    create  foo-bar-baz/Main.hs
    create  foo-bar-baz/Foo/Bar/Baz.hs
    create  foo-bar-baz/README.md
    create  foo-bar-baz/foo-bar-baz.cabal


  -h,--help                Show this help text
  -v,--version             Print version information
  -p,--package-name ARG    Name of package
  -m,--moduleName ARG      Name of Module
  -a,--author ARG          Name of the project's author
  -e,--email ARG           Email address of the maintainer
  -r,--repository ARG      Template repository
  --configuration-file ARG Use specified configuration file
                           Initialize with git repository
  --after-command ARG      The command to be run after generation


Available templates

Please see https://github.com/fujimura/hi/wiki#available-templates and feel free to add yours!

How to make your own template

Template is used for templating.

Available variables:

  • $packageName : name of package, like 'hi'
  • $moduleName : name of module, like 'Hi'
  • $author : name of author, like 'Fujimura Daisuke'
  • $email : email address of maintainer, like '[email protected]'

'package-name' and 'ModuleName' in filepath will be replaced with given variable.

Files under package-name will be used as the source of generated files. Files in root directory will not be copied.


I'm tired to organize directory structure for every new Haskell project which has some test. This library is heavily inspired by grunt-init.


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

*Note that all licence references and agreements mentioned in the hi README section above are relevant to that project's source code only.