Skip to main content

Synopsis

progflow on <name>

Arguments

ArgumentRequiredDescription
nameYesThe name of the flow to activate

What it does

1

Load and validate the flow config

Reads ~/.config/flow/<name>.json. If the flow does not exist, the command exits with code 1.If a directory is set in the config, Progflow verifies that the path exists on disk before continuing.
2

Spawn the editor

If editorCmd is configured, Progflow spawns it as a background process using:
sh -c <editorCmd>
The process starts in the flow’s directory with any configured environment variables applied. The PID is tracked for later cleanup.
3

Open URLs

Each URL in urlList is opened using the platform’s default URL opener:
  • Linux: xdg-open (falls back to gio open, firefox, chromium, or brave)
  • Termux: termux-open-url (falls back to Android am start)
4

Write lockfile

A lockfile is saved to ~/.config/flow/<name>.lock containing the PIDs of any spawned background processes. progflow off uses this file to send SIGTERM when you stop the flow.

Example

progflow on myproject
✓ flow 'myproject' started — editor, 2 urls
The summary line reflects what was actually started. Other possible outputs:
✓ flow 'myproject' started — editor
✓ flow 'myproject' started — 1 url
✓ flow 'myproject' started — started (no processes)

Partial activation

progflow on is non-fatal when individual components are missing:
  • No editorCmd set — only URLs are opened; no editor is spawned
  • No urlList set — only the editor is spawned; no URLs are opened
  • Both absent — the lockfile is still written; the summary reads started (no processes)
If the editor fails to spawn (for example, the binary is not on $PATH), Progflow prints a warning and continues opening URLs rather than aborting.

Environment variables

Any key/value pairs in the flow’s env map are injected into the editor process’s environment. They are not exported to your current shell session.
{
  "env": {
    "NODE_ENV": "development",
    "PORT": "3000"
  }
}

Error cases

ConditionExit codeMessage
Flow <name> does not exist2IO error: ~/.config/flow/<name>.json: No such file or directory
Configured directory does not exist1Directory does not exist: <path>
Config file cannot be parsed2JSON error in ~/.config/flow/<name>.json: ...

Exit codes

CodeMeaning
0Flow started successfully
1User error — wrong name, missing directory
2IO or JSON parse error

See also

Build docs developers (and LLMs) love