# The `stack new` command
~~~text
stack new PACKAGE_NAME [--bare] [TEMPLATE_NAME] [-p|--param KEY:VALUE] [DIR(S)]
[--omit-packages] [--force] [--ignore-subdirs]
~~~
`stack new` creates a new Stack project for a package using a project template.
The project is created in a new directory named after the package, unless the
`--bare` flag is passed, in which case the project is created in the current
directory.
The `--param :` option specifies a key-value pair to populate a key
in a template. The option can be specified multiple times.
The arguments specifying directories and the `--ignore-subdirs`, `--force` and
`--omit-packages` flags are as for the [`stack init` command](init_command.md).
## Project templates
A project template file can be located in a repository named `stack-templates`
on GitHub, GitLab or Bitbucket; at a URL; or on the local file system.
Project template file names have the extension `.hsfiles`. The extension does
not need to be specified with `stack new`.
A project template file `my-template.hsfiles` in a repository
`username/stack-templates` on GitHub, GitLab or Bitbucket can be specified
with `stack new` as:
~~~test
:username/my-template
~~~
where `` is one of `github` for [GitHub](https://github.com/),
`gitlab` for [GitLab](https://gitlab.com), or `bitbucket` for
[Bitbucket](https://bitbucket.com).
The default service is GitHub, the default username is `commercialhaskell` and
the default project template name is `new-template`.
## Examples
Create a project for package `my-project` in new directory `my-project` with the
default project template file:
~~~text
stack new my-project
~~~
Create a project for package `my-package` in the current directory with the
default project template file:
~~~text
stack new my-package --bare
~~~
Create a project with the `rio` project template at the default repository:
~~~text
stack new my-project rio
~~~
Create a project with the `mysql` project template provided by the
`yesodweb/stack-templates` repository on GitHub:
~~~text
stack new my-project yesodweb/mysql
~~~
Create a project with the `my-template` project template provided by the
`username/stack-templates` repository on Bitbucket:
~~~text
stack new my-project bitbucket:username/my-template
~~~
Create a project with the `my-template.hsfiles` project template file at
`https://example.com`:
~~~text
stack new my-project https://example.com/my-template
~~~
Create a project with the local project template file
`/my-template.hsfiles`:
~~~text
stack new my-project /my-template
~~~