Langflow CLI
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. 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:
_10uv run langflow run
If Langflow is installed globally or added to your PATH, you can execute the CLI directly with langflow
.
_10langflow run
Precedence
Langflow CLI options override the values of 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
.
- True
- False
--remove-api-keys
is equivalent to setting LANGFLOW_REMOVE_API_KEYS=True
in .env
:
_10uv run langflow run --remove-api-keys
--no-remove-api-keys
is equivalent to LANGFLOW_REMOVE_API_KEYS=False
in .env
:
_10uv run langflow run --no-remove-api-keys
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) available for each command.
langflow
Running the CLI without any arguments prints a list of available options and commands.
- uv (recommended)
- Direct
_10uv run langflow
_10langflow
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.
- uv (recommended)
- Direct
_10uv run langflow api-key
_10langflow api-key
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 directorylangflow-pre.db
: The pre-release database, if it exists
- uv (recommended)
- Direct
_10uv run langflow copy-db
_10langflow copy-db
langflow migration
Manages Langflow database schema changes using Alembic, 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.
warninglangflow migration --fix
is a destructive operation that can delete data. Always runlangflow migration
first to preview the changes.
- uv (recommended)
- Global
- Run test mode:
_10uv run langflow migration
-
Preview the changes returned by the test to determine if it's safe to proceed with the migration.
-
Run fix mode to apply the changes:
_10uv run langflow migration --fix
- Run test mode:
_10langflow migration
-
Preview the changes returned by the test to determine if it's safe to proceed with the migration.
-
Run fix mode to apply the changes:
_10langflow migration --fix
langflow run
Starts the Langflow server.
- uv (recommended)
- Direct
_10uv run langflow run [OPTIONS]
_10langflow run [OPTIONS]
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.
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. |
--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. |
--frontend-path | Not set | String | The path to the frontend directory containing build files. This is only used when contributing to the Langflow codebase 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
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.
- uv (recommended)
- Direct
_10uv run langflow run --env-file PATH/TO/LANGFLOW/.env
_10langflow run --env-file PATH/TO/LANGFLOW/.env
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.
- uv (recommended)
- Direct
_10uv run langflow run --backend-only
_10langflow run --backend-only
langflow superuser
Creates a superuser account with the given username and password.
- uv (recommended)
- Direct
_10uv run langflow superuser --username [NAME] --password [PASSWORD] [OPTIONS]
_10langflow superuser --username [NAME] --password [PASSWORD] [OPTIONS]
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
.
Disable CLI superuser creation
The langflow superuser
command is controlled by the LANGFLOW_ENABLE_SUPERUSER_CLI
environment variable:
LANGFLOW_ENABLE_SUPERUSER_CLI=True
(default): Thelangflow superuser
command is available, and superuser creation is unrestricted.LANGFLOW_ENABLE_SUPERUSER_CLI=False
(recommended): Disables thelangflow 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.