Build APIs, HTTP servers, automations, and internal tools by wiring nodes on a canvas. Run them in the desktop app, headlessly in the CLI, or compile them to standalone binaries.
Canvas editing when it helps, Rust and CLI when it matters, project files on disk instead of hidden state.
Top project bar, bottom workspace, right inspector. Flows, subflows, console, problems, and custom nodes stay in one focused workspace.
Exec edges drive control flow, typed data pins carry values. Variables, schema-aware pins, and drag-to-create node spawning keep larger graphs manageable.
Extract repeated graph logic into subflows, keep heavy or complex behavior inside Rust custom nodes, and compose both in the same project.
HTTP Request for clients, HTTP Listen and Route for servers, plus auth, CORS, cookies, body parsing, rate limiting, redirects, and static file serving.
If/Else, Match, Retry, Try/Catch, events, and sequential or parallel loops cover the orchestration layer without forcing every detail into the graph.
Custom nodes live with the project: source in nodes-src/, built artifacts in nodes/. Create and build from the app or the CLI with the same Rust implementation.
twistedflow.toml, flows/, nodes/, nodes-src/, and standard .env files. Portable, git-friendly, and easy to reason about.
The desktop app and CLI both call the same shared Rust runtime and builder crates. No desktop-to-CLI shelling, no duplicate execution logic.
Console and Problems tabs surface runtime output, Log nodes route into the app console, and the top Build action compiles a flow into a standalone binary.
Flow control, HTTP clients and servers, CLI tools, string processing, data transforms, variables, system I/O, testing, and your own Rust nodes.
Open source. Desktop app + CLI. Shared Rust core. Project-local custom nodes. Compile flows to standalone binaries when you are ready to ship.