# CLI Commands

Build your sandbox with our CLI. {{ className: 'lead' }}

<Note>
You can use `--help` flag for more information about commands.
</Note>

---

# Auth

<br/>

## `auth login`

Log in to the CLI. It will save your access token in `~/.e2b` file.

```bash
e2b auth login
```

## `auth logout`

Log out of the CLI. It will remove your access token from `~/.e2b` file.

```
e2b auth logout
```

## `auth info`

Get info about your current user.

```
e2b auth info
```

---

# Templates

<br/>

## `template init`

Creates a basic Dockerfile (`./e2b.Dockerfile`) in current directory.
You can then run `e2b template build` to build sandbox template from this Dockerfile.

```bash
e2b template init
```

#### **Options**

<Options>
  <Option name="path" type="-p, --path">
    Change the root directory where the command is executed to `path` directory.
  </Option>
</Options>


## `template build`

Builds a sandbox template defined by `./e2b.Dockerfile` or `./Dockerfile` from the root directory.
By default, the root directory is the current working directory.
This command also creates the `e2b.toml` config.

```bash
e2b template build
```

<Note>
Running `e2b template build` without specifying a template with the `[template]` argument will rebuild template defined by the `e2b.toml` config.

If there is no `e2b.toml` config a new template will be created.
</Note>

#### **Arguments**

<Options>
  <Option type="[template]">
    Specify the template you want to rebuild. You can use the template name or ID.
  </Option>
</Options>


#### **Options**

<Options>
  <Option type="-c, --cmd" name="start-command">
    Specify the command that should be running when a sandbox starts.
  </Option>
  <Option type="-n, --name" name="template-name">
    Specify the name of the sandbox template. You can use the template name to start the sandbox in the SDK. The name must be lowercase and contain only letters, numbers, dashes, and underscores.
  </Option>
  <Option type="-p, --path" name="path">
    Change the root directory where the command is executed to the `path` directory.
  </Option>
  <Option type="-d, --dockerfile" name="dockerfile">
    Specify the path to Dockerfile. By default E2B tries to find `e2b.Dockerfile` or `Dockerfile` in the root directory.
  </Option>
  <Option type="--cpu-count" name="cpu-count">
    Specify the number of CPUs that will be used to run the sandbox. The default value is 2.
  </Option>
  <Option type="--memory-mb" name="memory-mb">
    Specify the amount of memory in megabytes that will be used to run the sandbox. Must be an even number. The default value is 512.
  </Option>
</Options>

## `template delete`

Delete the sandbox template specified by the `[template]` argument, `e2b.toml` config in the working directory, or by an interactive selection.
By default, the root directory is the current working directory.

This command also deletes the `e2b.toml` config.

```bash
e2b template delete
```

<Note>
Running `e2b template delete` without specifying a template with the `[template]` argument will delete the template defined by the `e2b.toml` config.
</Note>

#### **Arguments**

<Options>
  <Option type="[template]">
    Specify the template you want to delete. You can use the template name or ID.
  </Option>
</Options>


#### **Options**

<Options>
  <Option type="-p, --path" name="path">
    Change the root directory where the command is executed to the `path` directory.
  </Option>
  <Option type="-s, --select">
    Interactively select sandbox templates you want to delete.
  </Option>
  <Option type="-y, --yes">
    Don't ask for confirmation before deleting the sandbox template.
  </Option>
</Options>


## `template list`

List your sandbox templates.

```bash
e2b template list
```

---

# Sandboxes

<br/>

## `sandbox list`

List your spawned sandboxes that are running right now.

```bash
e2b sandbox list
```

## `sandbox connect`

Connects your terminal to a running sandbox that you spawned via the E2B SDK.
This command is useful if you need to debug a running sandbox.

This command works similar to the `docker exec -it <container> bash` command in Docker.

```bash
e2b sandbox connect <sandboxID>
```

<Note>
You can use `e2b sandbox list` to get a list of running sandboxes and their IDs that can be used with `e2b sandbox connect <sandboxID>` command.
</Note>

#### **Arguments**

<Options>
  <Option type="<sandboxID>">
    Specify the ID of a running sandbox you want to connect to.
  </Option>
</Options>

## `sandbox spawn`

Spawns a sandbox and connects your terminal to the sandbox.
This command can be used to debug your sandbox template.

This command works similar to the `docker run -it <image> bash` command in Docker.

```bash
e2b sandbox spawn
```

<Note>
Running `e2b sandbox spawn` without specifying a template with the `[template]` argument will spawn sandbox defined by the `e2b.toml` config.
</Note>

#### **Arguments**

<Options>
  <Option type="[template]">
    Specify the template you want to spawn sandbox from. You can use the template name or ID.
  </Option>
</Options>


#### **Options**

<Options>
  <Option name="path" type="-p, --path">
    Change the root directory where the command is executed to `path` directory.
  </Option>
</Options>

## `sandbox kill`

Immediately kill a running sandbox.

```bash
e2b sandbox kill <sandboxID>
```

