Shell environment variables
These variables are read from your current shell session at runtime.The editor command to invoke when you run If
progflow edit <name>. Progflow passes the config file path as an argument, so any editor that accepts a file path works here.$EDITOR is not set, Progflow falls back to $VISUAL. If neither is set, progflow edit exits with an error.Fallback editor used by
progflow edit when $EDITOR is not set. Behaves identically to $EDITOR.Used internally to detect whether Progflow is running inside Termux on Android. If
$PREFIX starts with /data/data/com.termux, Progflow treats the environment as Termux and uses termux-open-url (with an am start fallback) instead of xdg-open for URLs.You do not need to set this variable manually — Termux sets it automatically. Progflow also falls back to checking for the termux-open-url binary in $PATH if $PREFIX is absent.This variable affects URL opening only. All other Progflow behavior is identical on Termux and Linux.
Variable summary
| Variable | Used by | Purpose |
|---|---|---|
$EDITOR | progflow edit | Opens the flow config file for editing |
$VISUAL | progflow edit | Fallback editor when $EDITOR is unset |
$PREFIX | URL opener | Detects Termux environment |
Per-flow environment variables
In addition to the shell-level variables above, each flow config can define its ownenv object. These variables are injected into the editor process when you run progflow on.
How per-flow env vars work
- Variables are passed to the editor subprocess via
cmd.env(key, value). - They supplement the existing environment — they do not replace it. The editor process inherits all variables from your shell session plus the ones defined in
env. - If a key in
envalready exists in your shell session, the value fromenvtakes precedence for that subprocess. - These variables are scoped to the editor process only. They have no effect on URL opening —
xdg-openandtermux-open-urlrun as separate processes with the unmodified environment.
Practical examples
Set a default editor globally
Override an env var just for one flow
SetNODE_ENV=production for a staging flow without changing your shell:
progflow on staging, VS Code launches with NODE_ENV set to production — your shell session is unaffected.
Debug which editor will be used
progflow edit: