vibe-to-workflow
Converts plain-English workflow descriptions into importable n8n workflow JSON configs. Non-technical operators describe automations in one sentence and get production-ready n8n workflows — no node editor, no tutorials, no trial-and-error.
How it works
- User types a workflow description in plain English (e.g., "When a new row is added to Google Sheets, send a Slack message with the row data")
- The description is sent to an LLM (via OpenRouter) with a system prompt that includes n8n node type knowledge and wiring rules
- The LLM generates valid n8n workflow JSON with proper nodes, connections, and parameters
- The user gets a visual flow preview, can download the
.jsonfile, copy it, or share it with a unique URL - Shared workflows appear in a public gallery
API Endpoints
| Method | Path | Description |
|--------|------|-------------|
| GET | /vibe-to-workflow/health | Health check — returns {"ok": true} |
| POST | /vibe-to-workflow/api/generate | Generate workflow from { description, share? } — returns { slug, workflow, node_count, node_types } |
| GET | /vibe-to-workflow/api/workflows/:slug | Fetch a single workflow by its share slug |
| GET | /vibe-to-workflow/api/gallery?page=1&limit=20 | List shared workflows, paginated |
| GET | /vibe-to-workflow/api/templates?limit=20 | Get scraped n8n community template suggestions |
Data Sources
| Source | URL | Refresh Interval | Purpose |
|--------|-----|-------------------|---------|
| OpenRouter LLM API | https://openrouter.ai/api/v1/chat/completions | Per user request | Generates n8n workflow JSON from English descriptions |
| n8n Community Workflows | https://n8n.io/workflows/ | Every 6 hours (node-cron) | Scrapes template titles for inspiration chips on the generator page |
Stack
- Runtime: Node.js >= 20
- Framework: Express
- Database: better-sqlite3 (WAL mode)
- Scheduler: node-cron (6-hour template scraping)
- LLM: OpenRouter API (Claude Sonnet 4)
- Frontend: Vanilla JS SPA, dark theme, hash routing
Running locally
cp .env.example .env
# Edit .env and set OPENROUTER_API_KEY
npm install
PORT=4723 node server.js
# Visit http://localhost:4723/vibe-to-workflow/
```
Environment Variables
| Variable | Description |
|----------|-------------|
| PORT | Server port (default: 4723) |
| NODE_ENV | production or development |
| OPENROUTER_API_KEY | API key for OpenRouter LLM calls |