Langflow langflow 1.13.0: our test log
Langflow 1.13.0 installed in 19.76 s (1.7 GB) and its backend was healthy 91.5 s after launch, serving 26 starter flows and 416 components.
Tested by us on 2026-10-26. Local open-weight model, not the vendor's hosted models. A smoke test on a CPU-only box, not a benchmark.
Result at a glance
| Field | Value |
|---|---|
| Result | Passed |
| Version tested | langflow 1.13.0 |
| Date and time | 2026-10-26, 09:57 CDT (America/Chicago) |
| Task | Install Langflow with uv, start the backend (no UI) with a fresh SQLite database and auto-login, then check GET /health_check, GET /api/v1/version, the list of flows, and the component catalogue. Pass means the server reports healthy and the API answers. No flow was run and no model was used. |
| Model used | none (no language model involved) |
| Hardware | Linux x86_64 virtual machine (Debian 13), 8 vCPU (Intel Xeon, 1 thread per core), 15 GiB RAM, no GPU |
| Install | 19.76 s, 1725 MB (langflow 1.13.0) |
| Time to healthy | 91.5 s (shared machine) |
| Starter flows / components | 26 / 416 |
What we found
- /health_check returned status ok for chat and db after 91.5 s.
- A fresh database already contained 26 starter flows (for example Text Sentiment Analysis, Social Media Agent, Simple Agent, Multi Agent Flow).
- The component catalogue returned 416 components in 33 categories in 1.39 s.
What we ran, step by step
| Step | Wall time | Exit code | Notes |
|---|---|---|---|
| Install with uv (cold, no cache) | 19.76 s | 0 | langflow 1.13.0; 1725 MB on disk. A first attempt failed with 'No space left on device' because this machine's disk was full, not because of Langflow; the retry succeeded. Load 13.39. |
| Task command (start server, probe API) | 1 min 34 s | 0 | Healthy after 91.5 s with load 20.72 (heavily shared machine). |
# Install with uv (cold, no cache)
uv venv -q -p 3.13 work/py/langflow && VIRTUAL_ENV=work/py/langflow uv pip install --no-cache -q langflow && du -sm work/py/langflow | cut -f1 && VIRTUAL_ENV=work/py/langflow uv pip list 2>/dev/null | grep -i -E "^(langflow|langflow) "
# Task command (start server, probe API)
work/py/langflow/bin/langflow run --host 127.0.0.1 --port 7861 --backend-only (driven by tasks3/langflow_task.py)Raw output (excerpts)
{
"health": [
200,
"{\"status\":\"ok\",\"chat\":\"ok\",\"db\":\"ok\"}"
],
"ready_s": 91.5,
"version": {
"version": "1.13.0",
"main_version": "1.13.0",
"package": "Langflow"
},
"flows": 26,
"flow_names": [
"Text Sentiment Analysis",
"Social Media Agent",
"Simple Agent",
"Multi Agent Flow",
"SEO Keyword Generator",
"Market Research",
"Sequential Tasks Agents",
"Blog Writer"
],
"components_s": 1.39,
"component_categories": 33,
"component_count": 416
}import subprocess, time, json, urllib.request, os, sys, signal
env = dict(os.environ, LANGFLOW_CONFIG_DIR="/workspace/tests2/work/langflow-home", LANGFLOW_DATABASE_URL="sqlite:////workspace/tests2/work/langflow-home/lf.db", LANGFLOW_AUTO_LOGIN="true", DO_NOT_TRACK="true", LANGFLOW_DO_NOT_TRACK="true", LANGFLOW_OPEN_BROWSER="false")
t0 = time.perf_counter()
p = subprocess.Popen(["work/py/langflow/bin/langflow", "run", "--host", "127.0.0.1", "--port", "7861", "--backend-only", "--no-open-browser"], env=env, stdout=open("/workspace/tests2/logs/langflow-server.log", "w"), stderr=subprocess.STDOUT, preexec_fn=os.setsid)
def get(path, hdr=None):
r = urllib.request.Request("http://127.0.0.1:7861" + path, headers=hdr or {})
with urllib.request.urlopen(r, timeout=10) as x: return x.status, x.read()
res = {}
ready = None
while time.perf_counter() - t0 < 600:
if p.poll() is not None: res["died"] = p.returncode; break
try:
s, b = get("/health_check"); ready = round(time.perf_counter() - t0, 1); res["health"] = [s, b.decode()[:120]]; break
except Exception: time.sleep(2)
res["ready_s"] = ready
if ready:
s, b = get("/api/v1/version"); res["version"] = json.loads(b)
s, b = get("/api/v1/auto_login"); tok = json.loads(b)["access_token"]
s, b = get("/api/v1/flows/?get_all=true&header_flows=true", {"Authorization": "Bearer " + tok})
fl = json.loads(b); res["flows"] = len(fl); res["flow_names"] = [f["name"] for f in fl][:8]
t = time.perf_counter(); s, b = get("/api/v1/all", {"Authorization": "Bearer " + tok}); res["components_s"] = round(time.perf_counter() - t, 2)
try:
d = json.loads(b); res["component_categories"] = len(d); res["component_count"] = sum(len(v) for v in d.values())
except Exception as e: res["components_err"] = str(e)[:100]
os.killpg(os.getpgid(p.pid), signal.SIGTERM)
print("RESULT_JSON " + json.dumps(res))Gotchas and things that broke
- The install is large: 1.7 GB on disk, the biggest of the tools in this batch.
- The server logged an agent-card compliance warning at startup; it did not stop it.
What we did not test
- Building or running any flow, including a flow that calls a model.
- The visual editor: we ran the backend only.
- Langflow's hosted or desktop offerings and deployment.
- Start-up time on an idle machine: ours was heavily shared.
Reproduce it
Versions change. These commands install whatever is latest on the day you run them unless a version is pinned, so expect different results later. The version we measured is in the table above.
uv venv -p 3.13 .venv && VIRTUAL_ENV=.venv uv pip install langflow
LANGFLOW_AUTO_LOGIN=true .venv/bin/langflow run --backend-only --port 7861
curl http://127.0.0.1:7861/health_checkHow to read this test
Every number on this page was measured on this one machine, which also ran other jobs, so timings are indicative and vary run to run. A pass means our small task worked once or as stated, a fail means it did not work as we ran it; neither says how the tool behaves with a vendor's frontier model, on a GPU, or at scale. Where a tool could not run without an account or a GPU, we say so instead of guessing.
See the testing rig for the hardware, the local model and the rules we follow, and the test hub for every other test.
Related tests: workflow automation
- n8n: n8n 2.44.6 installed from npm on Node 24 in 1 min 54 s (2,343 packages), imported a three-node workflow from the CLI and executed it: a Code node returned 42 and a request to a local model returned "42".
- Open WebUI: Open WebUI 0.12.4 installed with uv in 11.6 s (6,977 MB in the virtualenv), was healthy about 11 to 12 s after start, and answered a chat through its API in 0.68 s using a local Ollama model.
- Flowise: Flowise failed to install from npm on Node 24.22.1 after 106.2 s: the better-sqlite3 native build needed a C++ toolchain this machine lacks.
FAQ
How big is a Langflow install?
About 1.7 GB on disk in a fresh Python 3.13 environment in our run, and it installed in about 20 s with uv.
Sources
- Langflow repository (fetched 2026-10-26)
Related
Markdown version for agents: /tests/langflow.md