import Admonition from "@theme/Admonition";

# Command Line Interface (CLI)

<Admonition type="warning" title="warning">
This page may contain outdated information. It will be updated as soon as possible.
</Admonition>

Langflow's Command Line Interface (CLI) is a powerful tool that allows you to interact with the Langflow server from the command line. The CLI provides a wide range of commands to help you shape Langflow to your needs.

The available commands are below. Navigate to their individual sections of this page to see the parameters.

- [langflow](#overview)
- [langflow api-key](#langflow-api-key)
- [langflow copy-db](#langflow-copy-db)
- [langflow migration](#langflow-migration)
- [langflow run](#langflow-run)
- [langflow superuser](#langflow-superuser)

## Overview

Running the CLI without any arguments displays a list of available options and commands.

```bash
langflow
# or
langflow --help
# or
python -m langflow
```

| Command     | Description                                                            |
| ----------- | ---------------------------------------------------------------------- |
| `api-key`   | Creates an API key for the default superuser if AUTO_LOGIN is enabled. |
| `copy-db`   | Copy the database files to the current directory (`which langflow`).   |
| `migration` | Run or test migrations.                                                |
| `run`       | Run the Langflow.                                                      |
| `superuser` | Create a superuser.                                                    |

### Options

| Option                 | Description                                                                      |
| ---------------------- | -------------------------------------------------------------------------------- |
| `--install-completion` | Install completion for the current shell.                                        |
| `--show-completion`    | Show completion for the current shell, to copy it or customize the installation. |
| `--help`               | Show this message and exit.                                                      |

## langflow api-key

Run the `api-key` command to create an API key for the default superuser if `LANGFLOW_AUTO_LOGIN` is set to `True`.

```bash
langflow api-key
# or
python -m langflow api-key
╭─────────────────────────────────────────────────────────────────────╮
│ API Key Created Successfully:                                       │
│                                                                     │
│ sk-O0elzoWID1izAH8RUKrnnvyyMwIzHi2Wk-uXWoNJ2Ro                      │
│                                                                     │
│ This is the only time the API key will be displayed.                │
│ Make sure to store it in a secure location.                         │
│                                                                     │
│ The API key has been copied to your clipboard. Cmd + V to paste it. │
╰──────────────────────────────
```

### Options

| Option      | Type | Description                                                   |
| ----------- | ---- | ------------------------------------------------------------- |
| --log-level | TEXT | Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error] |
| --help      |      | Show this message and exit.                                   |

## langflow copy-db

Run the `copy-db` command to copy the cached `langflow.db` and `langflow-pre.db` database files to the current directory.

If the files exist in the cache directory, they will be copied to the same directory as `__main__.py`, which can be found with `which langflow`.

### Options

None.

## langflow migration

Run or test migrations with the [Alembic](https://pypi.org/project/alembic/) database tool.

```bash
langflow migration
# or
python -m langflow migration
```

### Options

| Option              | Description                                                                                                                |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `--test, --no-test` | Run migrations in test mode. [default: test]                                                                               |
| `--fix, --no-fix`   | Fix migrations. This is a destructive operation, and should only be used if you know what you are doing. [default: no-fix] |
| `--help`            | Show this message and exit.                                                                                                |

## langflow run

Run Langflow.

```bash
langflow run
# or
python -m langflow run
```

### Options

| Option                                                     | Description                                                                                                                                                                                                                                        |
| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--help`                                                   | Displays all available options.                                                                                                                                                                                                                    |
| `--host`                                                   | Defines the host to bind the server to. Can be set using the `LANGFLOW_HOST` environment variable. The default is `127.0.0.1`.                                                                                                                     |
| `--workers`                                                | Sets the number of worker processes. Can be set using the `LANGFLOW_WORKERS` environment variable. The default is `1`.                                                                                                                             |
| `--timeout`                                                | Sets the worker timeout in seconds. The default is `60`.                                                                                                                                                                                           |
| `--port`                                                   | Sets the port to listen on. Can be set using the `LANGFLOW_PORT` environment variable. The default is `7860`.                                                                                                                                      |
| `--env-file`                                               | Specifies the path to the .env file containing environment variables. The default is `.env`.                                                                                                                                                       |
| `--log-level`                                              | Defines the logging level. Can be set using the `LANGFLOW_LOG_LEVEL` environment variable. The default is `critical`.                                                                                                                              |
| `--components-path`                                        | Specifies the path to the directory containing custom components. Can be set using the `LANGFLOW_COMPONENTS_PATH` environment variable. The default is `langflow/components`.                                                                      |
| `--log-file`                                               | Specifies the path to the log file. Can be set using the `LANGFLOW_LOG_FILE` environment variable. The default is `logs/langflow.log`.                                                                                                             |
| `--cache`                                                  | Select the type of cache to use. Options are `InMemoryCache` and `SQLiteCache`. Can be set using the `LANGFLOW_LANGCHAIN_CACHE` environment variable. The default is `SQLiteCache`.                                                                |
| `--dev`/`--no-dev`                                         | Toggles the development mode. The default is `no-dev`.                                                                                                                                                                                             |
| `--path`                                                   | Specifies the path to the frontend directory containing build files. This option is for development purposes only. Can be set using the `LANGFLOW_FRONTEND_PATH` environment variable.                                                             |
| `--open-browser`/`--no-open-browser`                       | Toggles the option to open the browser after starting the server. Can be set using the `LANGFLOW_OPEN_BROWSER` environment variable. The default is `open-browser`.                                                                                |
| `--remove-api-keys`/`--no-remove-api-keys`                 | Toggles the option to remove API keys from the projects saved in the database. Can be set using the `LANGFLOW_REMOVE_API_KEYS` environment variable. The default is `no-remove-api-keys`.                                                          |
| `--install-completion [bash\|zsh\|fish\|powershell\|pwsh]` | Installs completion for the specified shell.                                                                                                                                                                                                       |
| `--show-completion [bash\|zsh\|fish\|powershell\|pwsh]`    | Shows completion for the specified shell, allowing you to copy it or customize the installation.                                                                                                                                                   |
| `--backend-only`                                           | This parameter, with a default value of `False`, allows running only the backend server without the frontend. It can also be set using the `LANGFLOW_BACKEND_ONLY` environment variable. For more, see [Backend-only](../deployment/backend-only). |
| `--store`                                                  | This parameter, with a default value of `True`, enables the store features, use `--no-store` to deactivate it. It can be configured using the `LANGFLOW_STORE` environment variable.                                                               |

#### CLI environment variables

You can configure many of the CLI options using environment variables. These can be exported in your operating system or added to a `.env` file and loaded using the `--env-file` option.

A sample `.env` file named `.env.example` is included with the project. Copy this file to a new file named `.env` and replace the example values with your actual settings. If you're setting values in both your OS and the `.env` file, the `.env` settings will take precedence.

## langflow superuser

Create a superuser for Langflow.

```bash
langflow superuser
# or
python -m langflow superuser
```

### Options

| Option        | Type | Description                                                   |
| ------------- | ---- | ------------------------------------------------------------- |
| `--username`  | TEXT | Username for the superuser. [default: None] [required]        |
| `--password`  | TEXT | Password for the superuser. [default: None] [required]        |
| `--log-level` | TEXT | Logging level. [env var: LANGFLOW_LOG_LEVEL] [default: error] |
| `--help`      |      | Show this message and exit.                                   |
