* fix anchors * type convert and structured output components * vector store intro and flow example * reorg some vector search components by provider * still on vector stores * vector store example and outputs * finish vector store page * corrections to astra db vector store * start split text component * save file and smart function * llm router * parser * still on dataframe * finish datafram ops * remove-extra-kv-pair-and-clarify-serialization-from-python --------- Co-authored-by: Mendon Kissling <59585235+mendonk@users.noreply.github.com>
370 lines
No EOL
13 KiB
Text
370 lines
No EOL
13 KiB
Text
---
|
|
title: Langflow CLI
|
|
slug: /configuration-cli
|
|
---
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import Icon from "@site/src/components/icon";
|
|
|
|
The Langflow command line interface is the main interface for managing and running the Langflow server.
|
|
|
|
The Langflow CLI is automatically installed when you [install the Langflow package](/get-started-installation).
|
|
It isn't available for Langflow Desktop.
|
|
|
|
## How to use the CLI
|
|
|
|
The Langflow CLI can be invoked in several ways, depending on your installation method and environment.
|
|
|
|
The recommended approach is to run the CLI with `uv run` from within a virtual environment where Langflow is installed.
|
|
|
|
For example, to start Langflow on the default port, run the following command:
|
|
|
|
```bash
|
|
uv run langflow run
|
|
```
|
|
|
|
If Langflow is installed globally or added to your PATH, you can execute the CLI directly with `langflow`.
|
|
|
|
```bash
|
|
langflow run
|
|
```
|
|
|
|
## Precedence
|
|
|
|
Langflow CLI options override the values of [environment variables](/environment-variables) set in your terminal or primary `.env` file.
|
|
|
|
For example, if you have `LANGFLOW_PORT=7860` defined as an environment variable, and you run the CLI with `--port 7880`, then Langflow sets the port to `7880` because the CLI option overrides the environment variable.
|
|
|
|
This also applies to Boolean environment variables.
|
|
For example, if you set `LANGFLOW_REMOVE_API_KEYS=True` in your `.env` file, then you can change it to `False` by running the CLI with `--no-remove-api-keys`.
|
|
|
|
## Langflow CLI options
|
|
|
|
All Langflow CLI commands support options that modify the command's behavior or set environment variables.
|
|
|
|
To set values for options, you can use either of the following syntax styles:
|
|
|
|
* `--option value`
|
|
* `--option=value`
|
|
|
|
Values with spaces must be surrounded by quotation marks:
|
|
|
|
* `--option 'Value with Spaces'`
|
|
* `--option="Value with Spaces"`
|
|
|
|
### Boolean options
|
|
|
|
Boolean options enable and disable settings.
|
|
They have a true (enabled) and false (disabled) form:
|
|
|
|
* Enabled (true): `--option`
|
|
* Disabled (false): `--no-option`
|
|
|
|
The following examples compare Boolean option forms for `REMOVE_API_KEYS`.
|
|
|
|
<Tabs>
|
|
<TabItem value="true" label="True" default>
|
|
|
|
`--remove-api-keys` is equivalent to setting `LANGFLOW_REMOVE_API_KEYS=True` in `.env`:
|
|
|
|
```bash
|
|
uv run langflow run --remove-api-keys
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="false" label="False">
|
|
|
|
`--no-remove-api-keys` is equivalent to `LANGFLOW_REMOVE_API_KEYS=False` in `.env`:
|
|
|
|
```bash
|
|
uv run langflow run --no-remove-api-keys
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
In the following command references, default values for Booleans include both the CLI flag and the equivalent Boolean evaluation, such as "`--option` (true)" and "`--no-option` (false)".
|
|
|
|
### Universal options
|
|
|
|
The following options are available for all Langflow CLI commands:
|
|
|
|
* `--version`, `-v`: Show the version and exit.
|
|
* `--install-completion`: Install auto-completion for the current shell.
|
|
* `--show-completion`: Show the location of the auto-completion config file, if installed.
|
|
* `--help`: Print information about command usage, options, and arguments.
|
|
|
|
## CLI commands
|
|
|
|
The following sections describe the available CLI commands and any additional options (beyond the [universal options](#universal-options)) available for each command.
|
|
|
|
### langflow
|
|
|
|
Running the CLI without any arguments prints a list of available options and commands.
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### langflow api-key {#langflow-api-key}
|
|
|
|
Creates a Langflow API key.
|
|
|
|
You must be a superuser to create API keys with the CLI.
|
|
For more information, see [Langflow API keys](/api-keys-and-authentication#langflow-api-keys).
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow api-key
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow api-key
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
#### Options
|
|
|
|
| Option | Default | Type | Description |
|
|
|--------|---------|--------|-------------|
|
|
| `--log-level` | `error` | String | The logging level. One of `debug`, `info`, `warning`, `error`, or `critical`. |
|
|
|
|
### langflow copy-db
|
|
|
|
Copies the Langflow database files from the cache directory to the current Langflow installation directory, which is the directory containing `__main__.py`.
|
|
You can find the copy target directory by running `which langflow`.
|
|
|
|
The following files are copied if they exist in the cache directory:
|
|
|
|
* `langflow.db`: The main Langflow database, stored in the user cache directory
|
|
* `langflow-pre.db`: The pre-release database, if it exists
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow copy-db
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow copy-db
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### langflow migration
|
|
|
|
Manages Langflow database schema changes using [Alembic](https://alembic.sqlalchemy.org/en/latest/), a database migration tool for SQLAlchemy.
|
|
|
|
The `migration` command has two modes:
|
|
|
|
* **Test mode (default)**: Checks if migrations can be applied safely without actually running the migrations.
|
|
Use this mode to previews the changes that would be made to the database schema before proceeding with the migrations.
|
|
|
|
* **Fix mode**: Applies the migrations to update the database schema.
|
|
|
|
:::warning
|
|
`langflow migration --fix` is a destructive operation that can delete data.
|
|
Always run `langflow migration` first to preview the changes.
|
|
:::
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
1. Run test mode:
|
|
|
|
```bash
|
|
uv run langflow migration
|
|
```
|
|
|
|
2. Preview the changes returned by the test to determine if it's safe to proceed with the migration.
|
|
|
|
3. Run fix mode to apply the changes:
|
|
|
|
```bash
|
|
uv run langflow migration --fix
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Global" label="Global">
|
|
|
|
1. Run test mode:
|
|
|
|
```bash
|
|
langflow migration
|
|
```
|
|
|
|
2. Preview the changes returned by the test to determine if it's safe to proceed with the migration.
|
|
|
|
3. Run fix mode to apply the changes:
|
|
|
|
```bash
|
|
langflow migration --fix
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### langflow run {#langflow-run}
|
|
|
|
Starts the Langflow server.
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow run [OPTIONS]
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow run [OPTIONS]
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
#### Options
|
|
|
|
This command supports some common and non-sensitive configuration options for your Langflow server.
|
|
Other options must be set in the `.env` or your terminal.
|
|
For more information Langflow configuration options, see [Langflow environment variables](/environment-variables).
|
|
|
|
| Option | Default | Type | Description |
|
|
|--------|---------|--------|-------------|
|
|
| `--auto-saving` | `--auto-saving` (true) | Boolean | Whether to enable flow auto-saving. Use `--no-auto-saving` to disable flow auto-saving. |
|
|
| `--auto-saving-interval` | `1000` | Integer | The interval for flow auto-saving in milliseconds. |
|
|
| `--backend-only` | `--no-backend-only` (false) | Boolean | Whether to run Langflow's backend service only (no frontend). Omit or use `--no-backend-only` to start both the frontend and backend. See [Start Langflow in headless mode](#start-langflow-in-headless-mode). |
|
|
| `--cache` | `async` | String | The type of cache to use. One of `async`, `redis`, `memory`, or `disk`. |
|
|
| `--components-path` | Not set | String | The path to the directory containing custom components. |
|
|
| `--dev` | `--no-dev` (false) | Boolean | Whether to run in development mode (may contain bugs). |
|
|
| `--env-file` | Not set | String | The path to the `.env` file containing Langflow environment variables. See [Start Langflow with a specific .env file](#start-langflow-with-a-specific-env-file). |
|
|
| `--frontend-path` | Not set | String | The path to the frontend directory containing build files. This is only used when [contributing to the Langflow codebase](/contributing-how-to-contribute) or developing a custom Langflow image that includes customized frontend code. |
|
|
| `--health-check-max-retries` | `5` | Integer | The maximum number of retries for the health check. |
|
|
| `--host` | `localhost` | String | The host on which the Langflow server will run. |
|
|
| `--log-file` | `logs/langflow.log` | String | The path to the log file for Langflow. |
|
|
| `--log-level` | `critical` | String | The logging level as one of `debug`, `info`, `warning`, `error`, or `critical`. |
|
|
| `--log-rotation` | Not set | String | The log rotation (Time/Size). |
|
|
| `--max-file-size-upload` | `100` | Integer | The maximum size in megabytes for file uploads. |
|
|
| `--open-browser` | `--no-open-browser` (false) | Boolean | Whether to open the system web browser on startup. Use `--open-browser` to open the system's default web browser when Langflow starts. |
|
|
| `--port` | `7860` | Integer | The port on which the Langflow server will run. The server automatically selects a free port if the specified port is in use. |
|
|
| `--remove-api-keys` | `--no-remove-api-keys` (false) | Boolean | Whether to remove API keys from projects saved in the Langflow database. |
|
|
| `--ssl-cert-file-path` | Not set | String | The path to the SSL certificate file on the local system. |
|
|
| `--ssl-key-file-path` | Not set | String | The path to the SSL key file on the local system. |
|
|
| `--store` | `--store` (true) | Boolean | Whether to enable the Langflow Store features. Use `--no-store` to disable the Langflow Store features. |
|
|
| `--worker-timeout` | `300` | Integer | The worker timeout in seconds. |
|
|
| `--workers` | `1` | Integer | The number of worker processes. |
|
|
|
|
#### Start Langflow with a specific .env file {#start-langflow-with-a-specific-env-file}
|
|
|
|
The `--env-file` option starts Langflow using the configuration defined in the given `.env` file.
|
|
Additional options appended to this command override the values in the `.env` file if there are duplicates.
|
|
|
|
If `--env-file` is omitted or doesn't include all required variables, Langflow uses the default values for those variables.
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow run --env-file PATH/TO/LANGFLOW/.env
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow run --env-file PATH/TO/LANGFLOW/.env
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
#### Start Langflow in headless mode {#start-langflow-in-headless-mode}
|
|
|
|
The `--backend-only` option starts Langflow's backend service only.
|
|
This headless mode has no frontend (visual editor), and you can only access the server programmatically with the Langflow API and CLI.
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow run --backend-only
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow run --backend-only
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
### langflow superuser {#langflow-superuser}
|
|
|
|
Creates a superuser account with the given username and password.
|
|
|
|
<Tabs groupId="Invocation">
|
|
<TabItem value="uv (recommended)" label="uv (recommended)" default>
|
|
|
|
```bash
|
|
uv run langflow superuser --username [NAME] --password [PASSWORD] [OPTIONS]
|
|
```
|
|
|
|
</TabItem>
|
|
<TabItem value="Direct" label="Direct">
|
|
|
|
```bash
|
|
langflow superuser --username [NAME] --password [PASSWORD] [OPTIONS]
|
|
```
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
#### Options
|
|
|
|
| Option | Default | Type | Description |
|
|
|--------|---------|--------|-------------|
|
|
| `--log-level` | `error` | String | The logging level. One of `debug`, `info`, `warning`, `error`, or `critical`. |
|
|
|
|
For this command, `--username` and `--password` aren't optional, and they have no default value.
|
|
The command fails if you don't provide these arguments.
|
|
For more information, see [`LANGFLOW_SUPERUSER` and `LANGFLOW_SUPERUSER_PASSWORD`](/api-keys-and-authentication#langflow-superuser).
|
|
|
|
#### Disable CLI superuser creation
|
|
|
|
The `langflow superuser` command is controlled by the [`LANGFLOW_ENABLE_SUPERUSER_CLI`](/api-keys-and-authentication#langflow-enable-superuser-cli) environment variable:
|
|
|
|
* **`LANGFLOW_ENABLE_SUPERUSER_CLI=True` (default)**: The `langflow superuser` command is available, and superuser creation is unrestricted.
|
|
* **`LANGFLOW_ENABLE_SUPERUSER_CLI=False` (recommended)**: Disables the `langflow superuser` command.
|
|
For security reasons, this is recommended to prevent unauthorized superuser creation, especially in production environments.
|
|
|
|
To disable the `langflow superuser` command, you must set `LANGFLOW_ENABLE_SUPERUSER_CLI=False` in your Langflow `.env` file, and then [start Langflow with your `.env` file](#start-langflow-with-a-specific-env-file). |