---
layout: docs
page_title: vagrant init - Command-Line Interface
description: |-
  The "vagrant init" command is used to initialize the current directory to be
  a Vagrant environment by creating an initial Vagrantfile.
---

# Init

**Command: `vagrant init [name [url]]`**

This initializes the current directory to be a Vagrant environment
by creating an initial [Vagrantfile](/vagrant/docs/vagrantfile/) if
one does not already exist.

If a first argument is given, it will prepopulate the `config.vm.box`
setting in the created Vagrantfile.

If a second argument is given, it will prepopulate the `config.vm.box_url`
setting in the created Vagrantfile.

## Options

- `--box-version` - (Optional) The box version or box version constraint to add
  to the `Vagrantfile`.

- `--force` - If specified, this command will overwrite any existing
  `Vagrantfile`.

- `--minimal` - If specified, a minimal Vagrantfile will be created. This
  Vagrantfile does not contain the instructional comments that the normal
  Vagrantfile contains.

- `--output FILE` - This will output the Vagrantfile to the given file.
  If this is "-", the Vagrantfile will be sent to stdout.

- `--template FILE` - Provide a custom ERB template for generating the Vagrantfile.

## Examples

Create a base Vagrantfile:

```shell-session
$ vagrant init hashicorp/bionic64
```

Create a minimal Vagrantfile (no comments or helpers):

```shell-session
$ vagrant init -m hashicorp/bionic64
```

Create a new Vagrantfile, overwriting the one at the current path:

```shell-session
$ vagrant init -f hashicorp/bionic64
```

Create a Vagrantfile with the specific box, from the specific box URL:

```shell-session
$ vagrant init my-company-box https://example.com/my-company.box
```

Create a Vagrantfile, locking the box to a version constraint:

```shell-session
$ vagrant init --box-version '> 0.1.5' hashicorp/bionic64
```
