# Command Line Interface

## Cheat Sheet
The command line interface (CLI) gives you easy-to-remember commands for common tasks.

| Command                      | Effect                                                                                   |
|-----------------------------|------------------------------------------------------------------------------------------|
| `rasa init`                 | Creates a new project with example training data, actions, and config files.           |
| `rasa train`                | Trains a model using your NLU data and stories, saves trained model in `./models`.     |
| `rasa interactive`          | Starts an interactive learning session to create new training data by chatting.         |
| `rasa shell`                | Loads your trained model and lets you talk to your assistant on the command line.       |
| `rasa run`                  | Starts a Rasa server with your trained model. See the [Configuring the HTTP API](https://legacy-docs-v1.rasa.com/1.10.19/user-guide/configuring-http-api/#configuring-http-api) docs for details. |
| `rasa run actions`          | Starts an action server using the Rasa SDK.                                            |
| `rasa visualize`            | Visualizes stories.                                                                      |
| `rasa test`                 | Tests a trained Rasa model using your test NLU data and stories.                       |
| `rasa data split nlu`       | Performs a split of your NLU data according to the specified percentages.               |
| `rasa data convert nlu`     | Converts NLU training data between different formats.                                    |
| `rasa export`               | Export conversations from a tracker store to an event broker.                          |
| `rasa x`                    | Launch Rasa X locally.                                                                  |
| `rasa -h`                   | Shows all available commands.                                                            |

## Create a new project
A single command sets up a complete project for you with some example training data.

```
rasa init
```

This creates the following files:

```
.
├── __init__.py
├── actions.py
├── config.yml
├── credentials.yml
├── data
│   ├── nlu.md
│   └── stories.md
├── domain.yml
├── endpoints.yml
└── models
    └── <timestamp>.tar.gz
```

The `rasa init` command will ask you if you want to train an initial model using this data.
If you answer no, the `models` directory will be empty.

With this project setup, common commands are very easy to remember.
To train a model, type `rasa train`, to talk to your model on the command line, `rasa shell`,
to test your model type `rasa test`.

## Train a Model
The main command is:

```
rasa train
```

This command trains a Rasa model that combines a Rasa NLU and a Rasa Core model.
If you only want to train an NLU or a Core model, you can run `rasa train nlu` or `rasa train core`.
However, Rasa will automatically skip training Core or NLU if the training data and config haven’t changed.
