These docs are for version 1.x of Rasa Open Source.

# 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.9.5/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.
```bash
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:
```bash
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.

`rasa train` will store the trained model in the directory defined by `--out`. The name of the model is per default `<timestamp>.tar.gz`. If you want to name your model differently, you can specify the name using `--fixed-model-name`.

### Arguments for `rasa train`
```
usage: rasa train [-h] [-v] [-vv] [--quiet] [--data DATA [DATA ...]]
                  [-c CONFIG] [-d DOMAIN] [--out OUT]
                  [--augmentation AUGMENTATION] [--debug-plots]
                  [--fixed-model-name FIXED_MODEL_NAME] [--persist-nlu-data]
                  [--force]
                  {core,nlu} ...
```

## Interactive Learning  
To start an interactive learning session with your assistant, run
```bash
rasa interactive
```
If you provide a trained model using the `--model` argument, the interactive learning process is started with the provided model. If no model is specified, `rasa interactive` will train a new Rasa model with the data located in `data/` if no other directory was passed to the `--data` flag. After training the initial model, the interactive learning session starts. Training will be skipped if the training data and config haven’t changed.

## Start a Server  
To start a server running your Rasa model, run:
```bash
rasa run
```

## Visualize your Stories  
To open a browser tab with a graph showing your stories:
```bash
rasa visualize
```
Normally, training stories in the directory `data` are visualized. If your stories are located somewhere else, you can specify their location with `--stories`.

## Start an Action Server  
To run your action server run:
```bash
rasa run actions
```

## Start Rasa X  
You can start Rasa X locally by executing:
```bash
rasa x
```

👋 I can help you get started with Rasa and answer your technical questions.
