Visual Workflow Builder → Production Python Code
Zero vendor lock-in. True parallelism. Sub-second streaming.
Catalyst is a visual workflow builder that generates production-ready Python code. Think n8n or Windmill, but instead of running workflows in a proprietary runtime, Catalyst generates clean Python/FastAPI code that you own completely.
Visual Workflow Design → Clean Python Code → Deploy Anywhere
Built for AI-first applications - native support for Claude, GPT, Groq with streaming, prompt caching, and agentic tool calling.
| Tool | Issue |
|---|---|
| n8n | Proprietary runtime, no streaming, limited parallelism |
| Windmill | Complex, still vendor-dependent |
| Temporal | Overkill for most use cases, steep learning curve |
| LangChain/LangGraph | Code-only, no visual editor |
| Feature | Benefit |
|---|---|
| Code Generation | You own the output - edit, deploy, scale as needed |
| True Parallelism | Native async/await, not simulated |
| Streaming-First | SSE/WebSocket support built-in |
| LLM-Native | Prompt caching, tool calling, streaming responses |
| Visual + Code | Design visually, inspect/edit the generated Python |
| Metric | n8n | Catalyst | Improvement |
|---|---|---|---|
| First result latency | 6-8s | <1s | 6-8x faster |
| Full response | 8-10s | 3-4s | 2-3x faster |
| Concurrent users | ~50 | 1000+ | 20x scale |
| LLM cost per query | $0.03 | $0.01 | 3x cheaper |
Measured on Visual Hive conference search workflow
┌─────────────────────────────────────────────────────────────────┐
│ CATALYST EDITOR │
│ (Electron Desktop App) │
├─────────────────────────────────────────────────────────────────┤
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Workflow │ │ Node Canvas │ │ Properties │ │
│ │ Navigator │ │ (React Flow) │ │ Panel │ │
│ └─────────────────┘ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Test Runner Panel │ │
│ └───────────────────────────────────────────────────────────┘ │
└────────────────────────────┬────────────────────────────────────┘
│ Manifest JSON
▼
┌─────────────────────────────────────────────────────────────────┐
│ PYTHON CODE GENERATOR │
│ │
│ Workflow Manifest → WorkflowCodeGenerator → Python Project │
└────────────────────────────┬────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ Generated Python Project │
│ ├── main.py (FastAPI application) │
│ ├── workflows/ (Generated workflow code) │
│ ├── requirements.txt (Dependencies) │
│ └── Dockerfile (Container deployment) │
└─────────────────────────────────────────────────────────────────┘
httpEndpoint · webhookReceiver · scheduledTask · subworkflowTrigger · websocketEndpoint · queueConsumer
anthropicCompletion · openaiCompletion · groqCompletion · azureOpenaiCompletion · embeddingGenerate · promptTemplate · agenticToolCall · llmRouter
qdrantSearch · qdrantUpsert · qdrantScroll · postgresQuery · directusSDK · graphqlQuery · redisOperation
parallel · aggregate · loop · condition · switch · retry · delay · earlyReturn
editFields · javascriptFunction · pythonFunction · jsonTransform · mapArray · filterArray · reduceArray
streamStart · streamChunk · streamEnd · streamMerge · streamBuffer
cryptoGenerate · executionData · globalVariable · log · errorHandler · validate · rateLimit
Visual Workflow:
httpEndpoint (POST /search)
↓
parallel (4 strategies)
├── qdrantSearch (semantic)
├── qdrantSearch (keyword)
├── qdrantSearch (collaborative)
└── qdrantSearch (exploration)
↓
aggregate (merge + dedupe)
↓
anthropicCompletion (streaming)
↓
streamResponse (SSE)
Generated Python:
"""
@catalyst:workflow
Workflow: conference_search
Generated: 2025-12-17T10:00:00Z
"""
from fastapi import APIRouter, Request
from fastapi.responses import StreamingResponse
import asyncio
router = APIRouter()
@router.post("/api/v1/search")
async def conference_search(request: Request):
body = await request.json()
async def generate():
# Parallel search execution
results = await asyncio.gather(
semantic_search(body["query"]),
keyword_search(body["query"]),
collaborative_filter(body["userContext"]),
exploration_search(body["query"]),
)
# Merge and deduplicate
merged = deduplicate_results(results)
# Stream Claude response
async for chunk in claude_stream(merged):
yield f"data: {chunk}\n\n"
yield "data: [DONE]\n\n"
return StreamingResponse(generate(), media_type="text/event-stream")| Phase | Status | Tasks | Duration |
|---|---|---|---|
| Phase 0: Foundation | 🔵 Not Started | 5 tasks | Week 1 |
| Phase 1: Core Runtime | 🔵 Not Started | 8 tasks | Weeks 2-3 |
| Phase 2: LLM Integration | 🔵 Not Started | 7 tasks | Weeks 4-5 |
| Phase 3: Data Integration | 🔵 Not Started | 9 tasks | Weeks 6-7 |
| Phase 4: Control Flow | 🔵 Not Started | 11 tasks | Weeks 8-9 |
| Phase 5: Advanced Features | 🔵 Not Started | 9 tasks | Weeks 10-11 |
| Phase 6: Production | 🔵 Not Started | 8 tasks | Weeks 12-14 |
Total: 57 tasks over 14 weeks
Phase 0: ░░░░░░░░░░ 0/5 (0%)
Phase 1: ░░░░░░░░░░ 0/8 (0%)
Phase 2: ░░░░░░░░░░ 0/7 (0%)
Phase 3: ░░░░░░░░░░ 0/9 (0%)
Phase 4: ░░░░░░░░░░ 0/11 (0%)
Phase 5: ░░░░░░░░░░ 0/9 (0%)
Phase 6: ░░░░░░░░░░ 0/8 (0%)
─────────────────────────────
Total: ░░░░░░░░░░ 0/57 (0%)
- Fork Rise → Catalyst
- Design manifest schema
- Create node type system
- Implement workflow store
- Adapt canvas for workflows
- Python code generator core
- FastAPI project generator
- Python runtime manager
- Hot reload system
- Test runner UI
- Claude with streaming + caching
- OpenAI, Groq, Azure OpenAI
- Embedding generation
- Prompt templates
- Qdrant vector operations
- PostgreSQL queries
- Directus SDK
- GraphQL with pagination
- Redis caching
- Parallel execution
- Loops and batching
- Conditional branching
- Custom code nodes
- Stream merging
- Agentic tool calling
- Gmail OAuth integration
- Full Directus SDK
- Execution context
- Visual Hive migration
- Load testing (1000 users)
- Docker deployment
- Documentation
| Document | Description |
|---|---|
| CATALYST_SPECIFICATION.md | Full technical specification |
| CATALYST_CLINE_IMPLEMENTATION.md | Detailed task specs for Cline |
| CATALYST_VISUAL_HIVE_MIGRATION.md | n8n → Catalyst migration guide |
- Electron - Cross-platform desktop
- React + TypeScript - UI framework
- React Flow - Node canvas
- Zustand - State management
- Tailwind CSS - Styling
- Python 3.11+ - Runtime language
- FastAPI - Web framework
- LangGraph - Agent workflows
- Qdrant - Vector database
- Redis - Caching
- Anthropic Claude - Primary LLM (streaming + caching)
- OpenAI GPT - Alternative LLM
- Groq - Fast inference
- Azure OpenAI - Enterprise deployments
- Azure AI Foundry - Embeddings
- Node.js 18+
- Python 3.11+
- pnpm (recommended)
# Clone the repository
git clone https://github.com/your-org/catalyst.git
cd catalyst
# Install dependencies
pnpm install
# Start development
pnpm dev- Create Project: File → New Project
- Add Workflow: Click "+ New Workflow"
- Add Trigger: Drag
httpEndpointto canvas - Add Nodes: Connect your workflow nodes
- Generate Code: Click "Generate" to create Python
- Test: Use the Test Runner panel
Catalyst is developed using AI-assisted methodology with Cline/Claude. See CATALYST_CLINE_IMPLEMENTATION.md for development guidelines.
- 70% AI implementation via Cline/Claude Sonnet
- 30% human review at checkpoints
- Task-based development with confidence ratings
- Comprehensive documentation for every decision
MIT License - See LICENSE for details.
- Rise - The visual React builder this project is forked from
- React Flow - Excellent node-based editor library
- FastAPI - Modern Python web framework
- Anthropic - Claude API for AI-assisted development
Built with 💜 using AI-assisted development
Catalyst: Because your workflows should generate real code, not depend on someone else's runtime.