Convert natural language descriptions into ready-to-use n8n workflows.
# Terminal 1: Start LLM server
python simple_test_server.py
# Terminal 2: Start frontend
python app.py
# Browser: http://localhost:5000Input:
"When a WordPress post is published, shorten URL, post to Twitter/LinkedIn, log to Google Sheets"
Output:
Valid n8n workflow JSON with multiple nodes, ready to import and use.
- โ Local LLM-only (no API keys, no costs)
- โ Generates 4-8 nodes per prompt
- โ Supports 20+ n8n integrations
- โ Web UI + API interface
- โ Download JSON immediately
- Install Python 3.8+
pip install -r requirements.txt- Run the quick start commands above
โโโ app.py # Frontend API (port 5000)
โโโ simple_test_server.py # LLM server (port 8000)
โโโ test_complex_prompts.py # Validation tests
โโโ scripts/serve/ # Real LLM model server
โโโ trained_model/ # Fine-tuned adapter
โโโ index.html # Web UI
โโโ QUICKSTART.md # Detailed setup guide
โโโ requirements.txt # Dependencies
Frontend:
POST /api/generate- Generate workflow from promptGET /api/examples- Example prompts
LLM Server:
POST /generate- Generate n8n JSONGET /health- Health check
Slack, Gmail, Discord, Google Sheets, Airtable, Notion, Trello, Asana, Zendesk, Stripe, MongoDB, HTTP, Twitter, LinkedIn, Teams, WordPress, and more.
To use the real Mistral-7B model instead of lightweight server:
$env:BASE_MODEL="mistralai/Mistral-7B-Instruct-v0.2"
$env:ADAPTER_PATH="trained_model"
python scripts\serve\local_inference.pyRequirements: GPU (6GB+) or CPU (16GB+ RAM)
| Issue | Solution |
|---|---|
| Port 5000 already in use | taskkill /f /im python.exe |
| Connection refused | Ensure both servers running in separate terminals |
| Few nodes generated | Use more specific prompts with multiple app names |
| Module not found | pip install -r requirements.txt |
MIT 5. Click "Send" 6. Download the generated workflow JSON file
- Go to your n8n instance
- Click "+" to create a new workflow
- Click the three dots menu (โฎ) โ "Import from File"
- Select the downloaded JSON file
- Configure your credentials (Gmail, Sheets, etc.)
- Activate the workflow!
The app uses ONLY a Local LLM endpoint for generation. Set the endpoint in .env as LOCAL_INFER_URL (defaults to http://127.0.0.1:8000/generate).
- Build dataset from your
workflows/:
python .\scripts\train\dataset_builder.py- Train a small LoRA adapter (GPU recommended):
$env:BASE_MODEL="mistralai/Mistral-7B-Instruct-v0.3"
python .\scripts\train\qlora_train.py- Serve the adapter locally:
$env:BASE_MODEL="mistralai/Mistral-7B-Instruct-v0.3"
$env:ADAPTER_PATH="models/n8n-lora"
python .\scripts\serve\local_inference.pyThe app will call http://127.0.0.1:8000/generate. Override with LOCAL_INFER_URL in .env if needed.
-
"Send an email when a new row is added to Google Sheets"
- Creates: Google Sheets Trigger โ Gmail
-
"Create a Trello card when I receive an email"
- Creates: Gmail Trigger โ Trello
-
"Post to Slack every day at 9am"
- Creates: Schedule Trigger โ Slack
-
"Save webhook data to Airtable"
- Creates: Webhook Trigger โ Airtable
-
"Send a Discord message when a new GitHub issue is created"
- Creates: GitHub Trigger โ Discord
- You type what you want to automate in plain English
- The AI analyzes your request to understand:
- What should trigger the automation (email received, new row, schedule, etc.)
- What action should happen (send email, create card, post message, etc.)
- The system generates a valid n8n workflow structure with:
- Trigger node (starting point)
- Action node(s) (what happens)
- Connections between them
- You download the JSON file
- You import it into n8n and configure your accounts
User Input (Natural Language)
โ
Flask Backend (app.py)
โ
Local LLM Inference (HTTP endpoint)
โ
n8n JSON Generation
โ
Web UI (index.html)
โ
Download Workflow JSON
- Backend: Python + Flask
- Frontend: HTML + JavaScript (Vanilla - no frameworks)
- AI: Local LLM endpoint you run (can be your fine-tuned adapter)
N8N/
โโโ app.py # Flask backend API
โโโ index.html # Chat UI
โโโ training_examples.json # Example workflows for AI
โโโ requirements.txt # Python dependencies
โโโ start.bat # Easy startup script (Windows)
โโโ .env.example # Configuration template
โโโ workflows/ # 2000+ example workflows
โโโ n8n_nodes/ # Node type references
GET /- Serves the web interfacePOST /api/generate- Generates workflow from promptGET /api/examples- Returns example prompts
An n8n workflow JSON consists of:
Each node represents a step in your automation:
{
"name": "Gmail",
"type": "n8n-nodes-base.gmail",
"position": [450, 300],
"parameters": {
"operation": "send"
}
}Define how data flows between nodes:
{
"Gmail Trigger": {
"main": [[{"node": "Slack", "type": "main", "index": 0}]]
}
}- Install Python from python.org
- Make sure to check "Add to PATH"
- Restart your computer after installation
- Another application is using port 5000
- Close other applications or edit
app.pyto change the port
- Make sure to configure credentials in n8n
- Each service (Gmail, Slack, etc.) needs authentication
- Test each node individually in n8n
- Ensure both servers are running: LLM (port 8000) and Frontend (port 5000)
- Run
python run_full_test.pyto diagnose issues - If the real model (Mistral 7B) fails, use
python simple_test_server.pyinstead
Edit NODE_TYPES in app.py:
"actions": {
"notion": "n8n-nodes-base.notion",
"your_service": "n8n-nodes-base.yourService"
}Edit training_examples.json with more workflow patterns.
Edit index.html - all styling is in the <style> section.
| Component | Cost | Notes |
|---|---|---|
| Local LLM | FREE | Mistral-7B or Qwen on your hardware |
| Python | FREE | Open source |
| Flask | FREE | Open source |
| Hosting (Local) | FREE | Runs on your computer |
| TOTAL | $0.00 | Completely free! No API costs |
If you need help:
- Check the troubleshooting section above
- Make sure you followed all steps in order
- Try the example prompts first to ensure it's working
- Check that Python is installed correctly
This project is free to use for personal and commercial purposes.
- Test the basic examples - Make sure everything works
- Try your own automations - Describe what you want to build
- Import to n8n - See your workflows come to life
- Experiment - The more specific your prompt, the better the result!
You: "Send an email when a new row is added to Google Sheets"
AI: โ Workflow generated successfully!
- Nodes: 2
- Google Sheets Trigger
- Gmail
You: Downloads JSON and imports to n8n
Result: Working automation! ๐
Happy Automating! ๐
If you create something cool with this, feel free to share your workflows!