Local-first visual AI workflow builder — chain LLM, API, and human steps in one SQLite file. Self-hosted Dify/n8n in one docker run, offline.
Zapier caps at 100 steps, 10 branches, $340/mo vs $19. Make breaks on messy PDFs. Dify needs 36 containers. flowcraft does 5+ step stateful workflows with memory, http, llm, condition, human approval — in one flowcraft.db.
pip install flowcraft# 1. Backend (Python + SQLite, one file, no cloud)
git clone https://github.com/thehypewipe/flowcraft.git
cd flowcraft
pip install -e ".[dev]"
uvicorn flowcraft.main:app --reload # http://127.0.0.1:8000/docs
# 2. Frontend (TypeScript + React Flow)
cd frontend
npm install
npm run dev # http://127.0.0.1:5173
# 3. Or one docker run
# docker compose upWorks offline, single SQLite file flowcraft.db, no API keys required (LLM node is mock by default, swap to OpenAI via env).
- One SQLite file — no Postgres/ClickHouse/Redis like LangSmith/Dify
- Visual builder — React Flow canvas, save -> run -> logs, local history
- Stateful — handles 5+ chained steps, exceptions, human approval — where Zapier/Make choke
- Offline & private — all runs stay on your machine, SQLite + local Ollama optional
- Star-proven — n8n 203k, Dify 154k, OpenClaw 388k show huge demand for self-hosted automation, but all heavy. This is the simple one.
# create workflow
curl -X POST http://127.0.0.1:8000/workflows -H "Content-Type: application/json" -d '{"name":"My flow","definition":{"nodes":[{"id":"1","type":"trigger"},{"id":"2","type":"llm","data":{"prompt":"hi"}}]}}'
# run
curl -X POST http://127.0.0.1:8000/workflows/1/run -H "Content-Type: application/json" -d '{"inputs":{"text":"hello"}}'
# list runs
curl http://127.0.0.1:8000/workflows/1/runs| Method | Path | Description |
|---|---|---|
| POST | /workflows |
create visual workflow |
| GET | /workflows |
list |
| GET | /workflows/{id} |
get |
| POST | /workflows/{id}/run |
run with inputs -> logs |
| GET | /workflows/{id}/runs |
run history |
Node types: trigger, llm, http, condition, delay, human (approval gate).
- Backend: Python 3.8+, FastAPI, SQLAlchemy, SQLite, requests
- Frontend: TypeScript 5, React 18, React Flow 11, Vite 5
See CONTRIBUTING.md. Add node type in backend/flowcraft/engine.py + UI in frontend/src/App.tsx + test.
MIT — see LICENSE
If flowcraft saved you Zapier $340/mo, star it ⭐