~/.config/flow/<name>.json. When you run progflow on <name>, Progflow reads this file to determine which directory to use, which editor to launch, which URLs to open, and which environment variables to set.
Config directory
All flow configs and lockfiles live under~/.config/flow/. Progflow creates this directory automatically the first time you save a config.
The
name field inside the JSON is used as the identifier for the flow. When saving a config, Progflow derives the filename from config.name, so keep this field consistent with the filename you want. Loading a config reads the file by name and then deserializes the name field from JSON.Creating and editing flows
- Interactive (recommended)
- Manual
- Edit existing
Use Progflow walks you through each field and writes the JSON file for you.
progflow new to scaffold a config file via prompts:Complete example
Fields
The name of the flow. Must match the JSON filename exactly (e.g., a file named
backend.json must have "name": "backend"). Used to look up configs, lockfiles, and notes by name.Absolute path to the working directory for this flow. Progflow changes to this directory before spawning the editor.If omitted, defaults to
. (the directory where progflow on is invoked).Shell command to launch your editor. Executed as If omitted, no editor is launched — useful for flows that only open URLs.
sh -c "<editorCmd>" inside the configured directory.List of URLs to open when the flow activates. On Linux, Progflow tries If omitted or empty, no URLs are opened.
xdg-open first, then falls back to gio open, firefox, chromium, and brave. On Termux, it uses termux-open-url, with an am start fallback.Path to the shell binary. Currently stored in the config and reserved for future use — Progflow does not use this field to launch the editor command today.
Key-value pairs of environment variables to set when spawning the editor command. These variables are layered on top of the existing process environment — they do not replace it.These variables apply only to the editor process. They have no effect on URL opening.If omitted, the editor inherits the environment unchanged.
A free-text context note saved automatically by You can also edit the
progflow off. When you stop a flow and choose to save a note, Progflow writes your input into this field.Read the saved note at any time with:note field directly in the JSON file.Field summary
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name | string | Yes | — | Flow name; must match filename |
directory | string | No | . | Working directory path |
editorCmd | string | No | — | Editor shell command |
urlList | string[] | No | — | URLs to open on activation |
shell | string | No | /bin/sh | Shell path (reserved) |
env | object | No | {} | Editor environment variables |
note | string | No | "" | Saved context note |
Lockfile
While a flow is active, Progflow writes a lockfile at~/.config/flow/<name>.lock. This file is a JSON object containing the PIDs of processes spawned during progflow on:
progflow off, Progflow reads this lockfile, sends SIGTERM to each listed PID, then deletes the .lock file. If no lockfile exists, Progflow reports that no active flow was found.