Flow Builder
Per-project shell command pipelines — sequential by default, daemon-aware for long-running servers.
A Flow is a small list of shell commands attached to a project. Run a flow and Vibehaus executes its steps in order, marking each one complete as it finishes.
Why it matters
Most projects need three or four exact commands to come up — pnpm install && pnpm dev, docker compose up -d && rails s, cargo run after a make migrate. Flow Builder turns those into a single named button so you don’t re-derive them every time.
How a flow runs
When you press Run, Vibehaus walks the project’s flow steps in order, running each one as a child shell process. Each step sees the same shell environment your terminal sees, plus the standard Homebrew + system bin paths (/opt/homebrew/bin, /usr/local/bin, /usr/bin, /bin) added to PATH for the cases where your custom shell didn’t export them.
If you’ve turned on Inject secrets, the project’s Vault entries are also added to the environment before the first step runs. See Vault for the details.
Daemon mode
Some commands don’t exit — next dev, rails s, cargo run --release, anything that holds a port. Vibehaus detects these and runs them in daemon mode: the step is marked complete as soon as the process has survived for 2 seconds, and the run moves on to the next step while the daemon keeps streaming output into the log.
Pressing Stop sends a kill signal that walks the daemon’s child processes (so the actual node / next-server / whatever isn’t reparented to launchd as an orphan). All daemons started by the run are torn down together.
Injecting Vault secrets
A flow can opt in to receiving the project’s Vault entries as environment variables. Toggle Inject secrets on the project’s Vault tab and every secret in that project’s Vault becomes available to every step:
# Step 1
echo "Token starts with ${NPM_TOKEN:0:4}…"
pnpm publish --access public
The env-var name is the secret’s label, verbatim — Vibehaus does not add a prefix. Name your Vault entries to match the variables your tools already look for (NPM_TOKEN, GITHUB_TOKEN, AWS_ACCESS_KEY_ID, …).
When a flow runs with secrets injected, the run log opens with a single audit line listing the label names that were injected (never the values). If a secret you expected isn’t there, you’ll see a warning line and the flow continues.
Stopping a flow
Reset cancels the running pipeline, terminates every daemon process tree the run started, clears each step’s progress, and wipes the launch-tracking metadata so the next port scan doesn’t try to adopt the killed processes.
Related
- Vault — what gets injected and how it’s stored.
- Project Discovery — flows are per-project; pick the right one first.
- Troubleshooting — “my dev server doesn’t die when I press Stop”.