Contribute to Langflow
This guide is intended to help you start contributing to Langflow. As an open-source codebase 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 Langflow, follow the fork and pull request quickstart.
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
You can run Langflow from source after cloning the repository, even if you aren't contributing to the codebase.
Run from source on macOS/Linux
In your terminal, navigate to the root of the Langflow directory, and then run make run_cli
.
This command does the following:
- Installs frontend and backend dependencies
- Builds the frontend static files
- Starts the application with default settings
The Langflow frontend is served at http://localhost:7860
.
Run from source with Windows CMD
To run Langflow from source on Windows, you can use the Langflow repository's included scripts, or run the commands in the terminal.
Do one of the following:
-
To install and run Langflow with the included Windows Batch file, navigate to the
scripts/windows
directory, and then run thebuild_and_run.bat
file. -
To run Langflow from the Windows Command Line:
-
Build the Langflow frontend:
_10cd src/frontend && npm install && npm run build && npm run start -
Copy the contents of the built
src/frontend/build
directory tosrc/backend/base/langflow/frontend
. -
Start Langflow:
_10uv run langflow run
-
The Langflow frontend is served at http://localhost:7860
.
Run from source with Powershell
To run Langflow from source on Windows, you can use the Langflow repository's included scripts, or run the commands in the terminal.
Do one of the following:
-
To install and run Langflow with the included scripts, navigate to the
scripts/windows
directory, and then run thebuild_and_run.ps1
file. -
To run Langflow from a Powershell terminal:
-
Run the following commands separately to build the Langflow frontend:
_10cd src/frontend_10npm install_10npm run build_10npm run start -
Copy the contents of the built
src/frontend/build
directory tosrc/backend/base/langflow/frontend
. -
Start Langflow:
_10uv run langflow run
-
The Langflow frontend is served at http://localhost:7860
.
Set up your Langflow development environment
- Linux or macOS
- Windows
-
Set up the Langflow development environment:
_10make initThis command sets up the development environment by doing the following:
- 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# In another terminal, run frontend in development mode (includes hot reload)_10make frontendThe
make backend
andmake frontend
commands automatically install dependencies, so you don't need to run install commands separately.The frontend is served at
http://localhost:7860
. -
Optional: Install pre-commit hooks to help keep your changes clean and well-formatted.
With pre-commit hooks installed, you must use
uv run git commit
instead ofgit commit
directly.make init
installs pre-commit hooks automatically, or you can run the following command to install them manually:_10uv sync_10uv run pre-commit install -
To test your changes before pushing commits, run
make lint
,make format
, andmake unit_tests
. To run all tests, including coverage, unit, and integration, tests, runmake tests
.
Since Windows doesn't include make
, building and running Langflow from source uses npm
and uv
.
To set up the Langflow development environment, run the frontend and backend in separate terminals:
-
To run the frontend, run the following commands:
_10cd src/frontend_10npm install_10npm run start -
In a separate terminal, run the following command to run the backend:
_10uv run langflow run --backend-only
The frontend is served at http://localhost:7860
.
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. For style guidance, see the Google Developer Documentation Style Guide.
-
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.gitReplace the following:
FORK_NAME
: A name for your fork of the repositoryGIT_USERNAME
: Your Git username
-
From the root of your local Langflow fork, change to the
/docs
directory:_10cd docs -
Install dependencies and start a local Docusaurus static site with hot reload:
_10yarn install_10yarn startThe documentation is served at
localhost:3000
. -
To edit and create content, work with the
.mdx
files in thelangflow/docs/docs
directory.Create new files in
.mdx
format.Navigation is defined in
langflow/docs/sidebars.js
.Most pages use a
slug
for shorthand cross-referencing, rather than supplying the full or relative directory path. For example, if a page has aslug
of/cool-page
, you can link to it with[Cool page](/cool-page)
from any other/docs
page. -
Recommended: After making some changes, run
yarn build
to build the site locally with more robust logging. This can help you find broken links before creating a PR.
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.