Run Python, Node.js, PowerShell, and 7 More Languages in One Workflow
Automation pipelines that stay in one language are rare. The real world looks more like this: a PowerShell script checks system health, a Python script processes the data, and a Node.js script pushes results to an API. Making those three scripts talk to each other usually means writing wrapper code, managing temp files, parsing stdout, and debugging inter-process communication across language boundaries.
NORA eliminates that glue code entirely. Each node runs in its own shell. Outputs pass between nodes through NORA’s routing layer. The scripts never need to know about each other.
10 Supported Languages on One Canvas
Every node on the NORA canvas can run a different language:
| Language | Typical Use |
|---|---|
| Python | Data processing, ML pipelines, API calls |
| Node.js | Webhooks, JSON transformation, async operations |
| PowerShell | Windows system administration, Active Directory, registry |
| Batch | Legacy Windows scripts, simple file operations |
| Bash/Shell | Unix-style scripting via WSL or Git Bash |
| Ruby | Configuration management, text processing |
| PHP | Web-related automation, database operations |
| Perl | Log parsing, regex-heavy text manipulation |
| VBScript | COM automation, legacy Windows integrations |
| AutoHotkey | GUI automation, keyboard/mouse scripting |
All ten run natively on the same canvas. No plugins, no containers, no language-specific adapters.
How Cross-Language Routing Works
Each node runs independently in its own shell process. When a node finishes:
- NORA captures the exit code and stdout
- Condition nodes evaluate routing rules (exit status, output content, regex matches, numeric thresholds)
- The next node in the chain starts in its own shell with its own language
There’s no shared runtime, no memory space conflicts, no version collisions. A Python 3.11 node and a Python 3.9 node can run in the same workflow because each one uses whatever interpreter is on the system PATH (or a per-node shell override).
Shell Auto-Detection and Per-Node Override
NORA auto-detects the correct shell from command patterns. A command starting with python runs in the Python interpreter. A .ps1 file runs in PowerShell. A .sh script runs in Bash.
When auto-detection isn’t enough — or when you need a specific interpreter version — per-node shell override lets you set the exact shell path for any individual node. Run one node with python3.11 and another with python3.9 in the same workflow.
Practical Example: Disk Monitoring Pipeline
Here’s a real workflow that crosses three language boundaries:
Node 1 — PowerShell: Check disk space
Get-Volume | Where-Object {$_.SizeRemaining / $_.Size -lt 0.1} |
Select-Object DriveLetter, @{N='FreeGB';E={[math]::Round($_.SizeRemaining/1GB,2)}} |
ConvertTo-Json
Condition Node — Evaluate output
Checks whether output contains drive letter data (substring match). If empty, no drives are low — workflow ends. If data exists, route to processing.
Node 2 — Python: Process and format
import json, sys
data = json.loads(sys.stdin.read())
for vol in data:
print(f"WARNING: Drive {vol['DriveLetter']}: has {vol['FreeGB']}GB remaining")
Node 3 — Node.js: Send webhook
const https = require('https');
const data = JSON.stringify({ text: process.stdin.read() });
// POST to Slack, Teams, or any webhook endpoint
Three languages, zero glue code. Each script is self-contained. NORA handles the data flow and error routing between them.
Exit Code Routing Across Languages
Every language has its own conventions for exit codes, but they all produce an integer. NORA’s condition nodes evaluate exit codes uniformly:
- Exit code 0 → success route
- Exit code non-zero → error/failure route
- Specific exit codes → specific routes (e.g., exit 2 → “needs review”)
This works identically whether the node ran Python, PowerShell, Batch, or any other supported language. The condition node doesn’t care what language produced the exit code.
No Inter-Process Communication Code
The traditional approach to mixing languages requires explicit IPC: temp files, named pipes, sockets, environment variables, or subprocess calls with stdout parsing. Every connection point is custom code that needs error handling and testing.
NORA replaces all of that with visual edges on the canvas. Connect a Python node to a PowerShell node by dragging a line. The routing, data passing, and error handling are built into the platform. The scripts stay clean and focused on their actual job.
Built-In Monaco Editor
Every script node includes a Monaco code editor — the same editing engine used by VS Code. Syntax highlighting, bracket matching, and auto-indentation work for all ten supported languages. Edit scripts directly in the workflow without switching to an external editor.
Getting Started
Download NORA at software.reibuys.com/nora. Install on Windows 10 or later. A paid license key is required. Drag script nodes onto the canvas, pick your languages, connect them, and run.
One-time purchase — no subscription, no per-execution fees. 30-day money-back guarantee.