Multi-agent LangGraph framework for autonomous software development
Project description
flowforge
Multi-agent LangGraph framework for autonomous software development.
FlowForge takes a one-line prompt and runs it through a 10-node graph (clarification → spec → plan → fan-out tasks → parallel quality gates → issue triage → ship), commits artifacts to a brand-new GitHub repo, files issues for every finding, and pushes a tagged release when the quality gates pass.
Quick start
# 1. install
pip install swe-forge
# 2. configure provider/model (one-time)
swe-forge setup
# 3. run a prompt — auto-creates a private GitHub repo and pushes there
swe-forge run "build cute kawaii calculator web app"
# common flags
swe-forge run "<prompt>" --repo my-name # use/create a specific repo
swe-forge run "<prompt>" --skip-github # local-only, no remote
swe-forge run "<prompt>" --no-studio # skip LangGraph Studio
Generated projects land in ~/flowforge-workspace/<slug>/ and are
pushed to https://github.com/<you>/<slug>. The flowforge source
repo itself is never written to.
Demo: build cute kawaii calculator web app
Run with gpt-4o-mini via GitHub Copilot (~58s end-to-end).
Command
swe-forge run "build cute kawaii calculator web app" \
--repo cute-kawaii-calculator-web --no-studio
Terminal output
✓ Created GitHub repo cute-kawaii-calculator-web → https://github.com/<you>/cute-kawaii-calculator-web
======================================================================
FlowForge — AI-Powered Code Generation Pipeline
======================================================================
Prompt: build cute kawaii calculator web app
Provider: copilot
Model: gpt-4o-mini
Workdir: ~/flowforge-workspace/cute-kawaii-calculator-web
Target repo: cute-kawaii-calculator-web
Repo URL: https://github.com/<you>/cute-kawaii-calculator-web.git
🚀 Starting LangGraph server on port 8123...
(server logs → ~/.flowforge/langgraph-dev.log)
✓ LangGraph server ready
📊 LangGraph Studio: https://smith.langchain.com/studio/?baseUrl=http://localhost:8123
━━━ Running Pipeline via LangGraph API ━━━
Invoking graph... (watch Studio for live visualization)
━━━ Node: clarification_node ━━━
· status=running
+ docs/spec/kawaii-calculator.md
✓ clarification_node done in 5.4s
━━━ Node: spec_node ━━━
· summary: The project involves creating a small web application that serves as a kawaii-themed calculator…
· 5 acceptance criteria | stack: HTML5, CSS3, JavaScript >= ES6, React 17+
· wrote: docs/spec/kawaii-calculator.md
+ docs/plans/kawaii-calculator.md
✓ spec_node done in 9.1s
━━━ Node: plan_node ━━━
· 3 phases: Phase 1: Foundation, Phase 2: Core Features, Phase 3: Polish | 6 tasks | 6 deps
✓ plan_node done in 0.0s
━━━ Node: task_fanout_router ━━━
✓ task_fanout_router done in 0.0s
━━━ Node: task_node ━━━
✓ task_node done in 0.0s
━━━ Node: quality_gate_join ━━━
✓ quality_gate_join done in 0.0s
━━━ Node: test_engineer_node ━━━
· test: 0 findings
+ docs/reviews/code-review-checkpoint-1.md
+ docs/security-audits/security-audit-1.md
✓ test_engineer_node done in 11.4s
━━━ Node: security_audit_node ━━━
· security: 3 findings (high=1, low=1, medium=1)
✓ security_audit_node done in 1.7s
━━━ Node: code_review_node ━━━
· review: 4 findings (critical=1, high=1, medium=2)
✓ code_review_node done in 0.0s
━━━ Node: quality_gate_merge ━━━
+ docs/triage/triage-report-1.md
✓ quality_gate_merge done in 31.0s
━━━ Node: issue_orchestrator_node ━━━
· 7 triaged: can_follow_up=5, must_fix_before_ship=2
· shipping_ready=False (0 blockers)
✓ issue_orchestrator_node done in 0.0s
━━━ Node: ship_node ━━━
· shipped=False
✓ ship_node done in 0.0s
======================================================================
PIPELINE COMPLETE
======================================================================
⚠️ Pipeline ended with status: blocked
Local workdir: ~/flowforge-workspace/cute-kawaii-calculator-web
What was produced
Five commits, all pushed to the new GitHub repo:
$ cd ~/flowforge-workspace/cute-kawaii-calculator-web && git log --oneline
fac8566 docs: add triage report #1
dfa732d docs: add code review checkpoint 1
9e6f90f docs: add security audit report #1
643938f docs: add implementation plan (kawaii-calculator.md)
05645af docs: add specification (kawaii-calculator.md)
$ find . -type f -not -path "./.git/*" | sort
./docs/plans/kawaii-calculator.md
./docs/reviews/code-review-checkpoint-1.md
./docs/security-audits/security-audit-1.md
./docs/spec/kawaii-calculator.md
./docs/triage/triage-report-1.md
11 GitHub issues filed automatically — every finding from the review / security / test gates becomes a labelled issue, then the orchestrator dedupes and prioritizes them:
$ gh issue list --repo <you>/cute-kawaii-calculator-web
11 OPEN [LOW] Missing Security Headers security, priority-low
10 OPEN [MEDIUM] Sensitive Data Exposure in API Responses security, priority-medium
9 OPEN [CRITICAL] Incorrect arithmetic operation handling bug, priority-critical
8 OPEN [HIGH] Potential SQL Injection Vulnerability security, priority-high
7 OPEN [MEDIUM] Potential N+1 query pattern in theme loading
6 OPEN [MEDIUM] Inconsistent naming conventions
5 OPEN [LOW] Missing Security Headers security
4 OPEN [HIGH] Lack of input validation for arithmetic operations
3 OPEN [MEDIUM] Sensitive Data Exposure in API Responses security
2 OPEN [HIGH] Potential SQL Injection Vulnerability security
1 OPEN …
Reading the output
| Marker | Meaning |
|---|---|
━━━ Node: X ━━━ |
Node started |
· … |
Structured payload summary (spec title, finding counts, etc.) |
+ path/file |
File created in the workdir |
~ path/file |
File modified in the workdir |
⏳ X running… Ns |
Heartbeat printed every 5s for slow nodes |
✓ X done in N.Ns |
Node finished with elapsed time |
Pipeline outcomes
| Status | When | Behavior |
|---|---|---|
succeeded |
All gates clean | ship_node writes CHANGELOG.md / README.md, bumps version, tags, and runs git push origin HEAD --follow-tags |
blocked |
One or more must_fix_before_ship issues |
Artifacts committed and issues filed, but no release tag / push from ship_node |
The kawaii calculator run hit blocked because the code review
flagged a critical arithmetic bug and a high-severity
input-validation gap — exactly what the gates exist for.
Architecture
START
└─▶ clarification_node ─▶ spec_node ─▶ plan_node ─▶ task_fanout_router
│
▼
task_node
│
▼
quality_gate_join
┌──────────────────┼──────────────────┐
▼ ▼ ▼
code_review_node security_audit_node test_engineer_node
└──────────────────┼──────────────────┘
▼
quality_gate_merge
│
▼
issue_orchestrator_node
│
▼
ship_node ─▶ END
All file writes, git commits, gh issue/label creation, and the
final push happen with cwd=workdir, so the flowforge meta-repo is
never touched.
Development
pytest tests/ -q # full test suite
ruff check src tests # lint
mypy src # type-check
Server logs go to ~/.flowforge/langgraph-dev.log. Config lives at
~/.flowforge/config.json. Workspaces at ~/flowforge-workspace/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file swe_forge-0.1.21.tar.gz.
File metadata
- Download URL: swe_forge-0.1.21.tar.gz
- Upload date:
- Size: 83.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37cd9fa7bd8aa64d493addc59d5c9ba0539f42da50ada8f017aace98a9c86cb8
|
|
| MD5 |
7dcf17f7d4e32e036365c3dba11c8f26
|
|
| BLAKE2b-256 |
46e25dde4310b3e655c95e93e3df9c75c95f729c33d87caecf7fd27c1a09ad39
|
File details
Details for the file swe_forge-0.1.21-py3-none-any.whl.
File metadata
- Download URL: swe_forge-0.1.21-py3-none-any.whl
- Upload date:
- Size: 98.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1dc8c1f1e3f962143ed032835f15965e03e2bcdbf0b340fd2e815d8361f74f80
|
|
| MD5 |
703645f49532498333cefacb00812269
|
|
| BLAKE2b-256 |
9485905015d18b72f1f1d9ae9d8123f9aee8d15eca2e4744c138a6417eb6eeae
|