Contribute to Langflow
This guide is intended to help you start contributing to Langflow. As an open-source project in a rapidly developing field, Langflow welcomes contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
To contribute code or documentation to this project, follow the fork and pull request workflow.
Install Langflow from source
Install Langflow from source by forking the repository, and then set up your development environment using Make.
Prerequisites
Clone the Langflow repository
-
Fork the Langflow GitHub repository.
-
Add the new remote to your local repository on your local machine:
_10git remote add FORK_NAME https://github.com/GIT_USERNAME/langflow.git
Replace the following:
FORK_NAME
: A name for your fork of the repositoryGIT_USERNAME
: Your Git username
Run Langflow from source
If you're not developing, but want to run Langflow from source after cloning the repo, run:
_10make run_cli
This command:
- Installs frontend and backend dependencies
- Builds the frontend static files
- Starts the application with default settings
The make run_cli
command allows you to configure the application such as logging level, host, port, and environment variables.
For example, this command starts Langflow with custom settings for the logging level, host binding, and port number, and specifies a custom .env
file.
_10make run_cli log_level=info host=localhost port=8000 env=.env.custom
The make run_cli
command accepts the following parameters:
Parameter | Default | Description |
---|---|---|
log_level | debug | Set the logging level. Options: debug , info , warning , error , critical |
host | 0.0.0.0 | The host address to bind the server to. Use localhost or 127.0.0.1 for local-only access. |
port | 7860 | The port number to run the server on. |
env | .env | Path to the environment file containing configuration variables. |
open_browser | true | Whether to automatically open the browser when starting. Set to false to disable. |
Set up your Langflow development environment
- To set up the Langflow development environment, run the following command:
_10make init
This command sets up the development environment by:
- Checking for uv and npm.
- Installing backend and frontend dependencies.
- Installing pre-commit hooks.
- Run the backend and frontend in separate terminals for development:
_10# Run backend in development mode (includes hot reload)_10make backend_10_10# In another terminal, run frontend in development mode (includes hot reload)_10make frontend
The make backend
and make frontend
commands automatically install dependencies, so you don't need to run install commands separately.
- (Optional) Install pre-commit hooks to help keep your changes clean and well-formatted.
make init
installs pre-commit hooks automatically.
_10uv sync_10uv run pre-commit install
With pre-commit hooks installed, you need to use uv run git commit
instead of git commit
directly.
- To test your changes, run
make lint
,make format
, andmake unit_tests
before pushing to the repository. To run all tests, including unit tests, integration tests, and coverage, runmake tests
.
Debug
The repo includes a .vscode/launch.json
file for debugging the backend in VSCode, which is faster than debugging with Docker Compose. To debug Langflow with the launch.json
file in VSCode:
For more information, see the VSCode documentation.
Additional contribution guides
Contribute documentation
The documentation is built using Docusaurus and written in Markdown. Contributions should follow the Google Developer Documentation Style Guide.
Prerequisites
Clone the Langflow repository
-
Fork the Langflow GitHub repository.
-
Add the new remote to your local repository on your local machine:
_10git remote add FORK_NAME https://github.com/GIT_USERNAME/langflow.git
Replace the following:
FORK_NAME
: A name for your fork of the repositoryGIT_USERNAME
: Your Git username
- From your Langflow fork's root, change directory to the
langflow/docs
folder with the following command:
_10cd docs
- To install dependencies and start a local Docusaurus static site with hot reloading, run:
_10yarn install && yarn start
The documentation will be available at localhost:3000
and all the files are located in the /docs
folder.
- Optional: Run
yarn build
to build the site locally and ensure there are no broken links.
Open a pull request
To submit a pull request, do the following:
- Open a new GitHub pull request with your patch against the
main
branch. - Ensure the PR title follows semantic commit conventions. For example, features are
feat: add new feature
and fixes arefix: correct issue with X
.
Some additional guidance on pull request titles:
- Ensure the pull request description clearly describes the problem and solution. If the PR fixes an issue, include a link to the fixed issue in the PR description with
Fixes #1234
. - Pull request titles appear in Langflow's release notes, so they should explain what the PR does as explicitly as possible.
- Pull requests should strive to fix one thing only, and should contain a good description of what is being fixed.
- A Langflow maintainer will review your pull request and may request changes, so ensure you pay attention to your PRs. Thanks for your contribution!
For more information, see the Python Developer's Guide.