Turn Scripts into Universal Automation

Wrap logic once, invoke anywhere. Securely run workflows via CLI, TUI & REST with unified logs and typed inputs.

Open Source · AGPL-3.0 license

flwd — universal runtime
1 zsh — myapp/deploy 2 logs 3 http



# 1. Interactive TUI with validation
$ flwd :tui
> Choose: myapp/deploy
> target [prod]:
> Confirm? [y/N]


# 2. Or standard CLI flags
$ flwd myapp deploy --target prod --confirm


# 3. Or via REST API (same logic!)
$ curl -s -X POST http://localhost:8080/runs \
-H 'Content-Type: application/json' \
-d '{"job_id":"myapp/deploy","args":{"target":"prod","confirm":true}}'
flwd • localhost
Catppuccin Frappé • 12:34

What is FLOWD?

FLOWD stands for Framework for Language-agnostic Orchestration of Workflows Distributed.


Instead of inventing another buzzword, the name describes what the engine actually does: take plain scripts in your language of choice, orchestrate them as reusable workflows, and run them consistently across CLI, TUI and HTTP.


flwd (pronounced "flowed") is the reference engine that implements FLOWD — one binary, one contract, any language that can speak stdin/stdout and environment variables.

Why Not “Just Bash or PowerShell”?

Most teams already have “automation”:


Raw Bash/Pwsh scripts (and sometimes Python or other glue) wired together with SSH, cron and CI jobs, etc.

So why bother with flwd?


Because shells are great languages, but very weak platforms. Every new script has to reinvent the same things:


  • argument parsing and --help
  • validation and enums
  • logging, error handling and exit codes
  • shell completion
  • a bit of security hardening
  • some way to test it in CI

Each author does it differently, and the fragile bits (quoting, spaces, encoding, env, strict mode) are easy to get wrong and hard to see until production.

Keeps Bash/Pwsh for the actual work. Moves the boring, dangerous parts to the engine:


  • Inputs are declared once (ArgSpec) → flwd generates flags, --help, completion and validation.
  • Jobs run in a controlled profile (secure/permissive/disabled), not "whatever the shell got".
  • Runs have IDs, structured events and metrics → you get auditability and observability by default.
  • Jobs are treated as software with tests, with standard scaffolding and a QA path.

You still write small shell scripts.


flwd makes them typed, observable and policy-driven so you can focus on what the workflow does, not on re-building the plumbing every time.

Project Status

The project is currently in pre-1.0 development and is not yet ready for production use.

The features on this page describe the 1.0 design and direction. For the most accurate picture of what you can use today, please check the documentation
and release notes.

From Scripts to Systems: Use cases

Stop shipping fragile code. Build robust, self-documenting tools for your team.

Engineered for Consistency

Stop maintaining separate logic for your API, CLI, and Admin scripts. flowd enforces one strict contract for discovery, security, and execution—regardless of how the job is triggered.

Unified Runtime

Zero-Dependency Deployment

Run on Linux, Windows, or macOS with a single static binary or OCI image. No external databases or message buses required—perfect for laptops, servers, and air-gapped networks.

Multi-Interface

Omnichannel Invocation

Write logic once, access it everywhere. Invoke tools via CLI flags, interactive TUI forms, or REST API calls. All paths share the exact same validation and execution engine.

Type-Safe Contracts

Input Integrity by Design

Define inputs with ArgSpec and let the system handle the rest. flowd automatically generates CLI flags and API schemas, ensuring bad data is rejected before your script ever runs.

Security Profiles

Governance & Isolation

Secure by default. Features strict shell isolation, automatic secret redaction, and short-lived tokens. Apply granular policies to control exactly who can run what (and how).

Instant Observability

Visibility without the Setup

Get full visibility immediately. Enjoy live log streaming (SSE), downloadable artifacts, and structured audit trails. Prometheus metrics are exposed out-of-the-box.

Dynamic Discovery

Flexible Tool Sourcing

Load tools from anywhere. flowd auto-discovers scripts from local filesystems, trusted Git repositories, or OCI add-ons, instantly populating your catalog across all interfaces.

Lean Core. Modular Power

Stop paying for bloat. flowd ships as a lightweight, stable kernel. Advanced capabilities—like TUI, Metrics, and SQL integration—are opt-in extensions. You only load the code you actually need.

Interactive TUI

Zero‑config Interface. Browse tools, fill inputs with validation, and stream logs in a rich terminal UI. No extra coding required.

OCI Distribution

Portable Packaging. Bundle your tools and dependencies into standard OCI images for reproducible execution anywhere.

DB Shim

Structured Data Access. A managed SQLite interface for scripts that need structured storage—ephemeral cache or persistent state.

Developer SDK

Built‑in Scaffolding. Commands like :init, :test, and :gen to rapidly scaffold new tools and generate integration tests.

Data Export

Structured Event Stream. Real‑time NDJSON for runs, events, sources, and artifacts—pipe into any logging stack.

Auto‑Maintenance

Database Health. Automated VACUUM, checkpointing, and optimization keep the embedded store fast and safe.

Telemetry & Metrics

Universal Monitoring. Counters and histograms for job execution—compatible with Prometheus and OpenMetrics.

Event‑Driven Triggers

Automation on Autopilot. Fire jobs by RFC 5545 schedules (cron‑like) or secure HMAC webhooks.

Background Services

Long‑Running Processes. Manage rootless, long‑lived services with native log streaming and state supervision.

AI Agent Interface (MCP)

Ready for LLMs. Instantly expose jobs as executable tools over WebSocket/stdio via the Model Context Protocol.

Lifecycle Control

Headless Management. Programmatic :service start/stop/restart to manage deployments in headless environments.

Community Contributions

Expand the Ecosystem. Missing a capability? Contribute an extension on GitHub and help build what’s next.

Open, Stable and Community‑Driven

AGPL‑3.0 Licensed

Open by Design

We believe in software freedom. flowd is licensed under AGPL‑3.0 to ensure that improvements to the core framework remain open and accessible to everyone.

Join the Conversation

Builders Helping Builders

Connect with fellow builders. Whether you are debugging a workflow or architecting a platform, our community is ready to help. See “Community” in the top navigation.

Contribute to the Core

PRs Welcome

Pull requests are welcome. We value clear documentation and stable contracts. Check out our contribution guide to get started.

Governance & Stability

Contracts that Last

We prioritize stability over churn. The core contracts are locked to ensure backward compatibility, while new capabilities are added via opt‑in extensions.

Ready to replace your scripts?

Get the single binary and start automating in seconds.