Skip to main content
These examples cover common workflows you can model with Progflow. Each shows the full setup — the prompts, the resulting config, and how to activate the flow — along with tips specific to that use case.
A backend project flow that opens your editor, launches local service URLs, and injects environment variables — all with one command.
1

Create the flow

progflow new backend
At the prompts:
Working directory: /home/you/projects/api
Editor command:    code .
URLs to open:      http://localhost:3000, http://localhost:5432/ui
Shell:             /bin/bash
Env vars:          NODE_ENV=development, DATABASE_URL=postgres://localhost/mydb
2

Resulting config

~/.config/flow/backend.json:
{
  "name": "backend",
  "directory": "/home/you/projects/api",
  "editorCmd": "code .",
  "urlList": [
    "http://localhost:3000",
    "http://localhost:5432/ui"
  ],
  "shell": "/bin/bash",
  "env": {
    "NODE_ENV": "development",
    "DATABASE_URL": "postgres://localhost/mydb"
  },
  "note": ""
}
3

Activate the flow

progflow on backend
VS Code opens in /home/you/projects/api, your browser opens both URLs, and the editor process inherits NODE_ENV and DATABASE_URL.
The env vars are only passed to the editor process — they don’t affect your current shell session. If you need them in your terminal too, set them in your shell profile or use direnv.
Open a set of dashboards without launching any editor — useful for ops or on-call workflows where you just need visibility into running services.
1

Create the flow

progflow new monitoring
At the prompts:
Working directory: /home/you
Editor command:    (leave empty — press Enter)
URLs to open:      http://grafana.local, http://prometheus.local, http://alertmanager.local
Shell:             /bin/bash
Env vars:          (leave empty)
2

Resulting config

~/.config/flow/monitoring.json:
{
  "name": "monitoring",
  "directory": "/home/you",
  "editorCmd": null,
  "urlList": [
    "http://grafana.local",
    "http://prometheus.local",
    "http://alertmanager.local"
  ],
  "shell": "/bin/bash",
  "env": {},
  "note": ""
}
3

Activate the flow

progflow on monitoring
All three dashboards open in your browser. Because there’s no editor command, Progflow starts with no tracked processes — progflow off monitoring will still clean up the lockfile.
Save a context note when you go off-call. Next time you pick up the flow, progflow note monitoring shows what you were investigating when you stopped.
Combine a writing editor with browser tabs pointing at the reference docs you need — so everything is open and in context the moment you start.
1

Create the flow

progflow new docs
At the prompts:
Working directory: ~/writing/docs
Editor command:    nvim .
URLs to open:      https://doc.rust-lang.org/book, https://docs.rs, https://github.com/Rehanasharmin/Progflow
Shell:             /bin/bash
Env vars:          (leave empty)
2

Resulting config

~/.config/flow/docs.json:
{
  "name": "docs",
  "directory": "/home/you/writing/docs",
  "editorCmd": "nvim .",
  "urlList": [
    "https://doc.rust-lang.org/book",
    "https://docs.rs",
    "https://github.com/Rehanasharmin/Progflow"
  ],
  "shell": "/bin/bash",
  "env": {},
  "note": ""
}
3

Activate the flow

progflow on docs
Neovim opens in your docs directory and all three reference tabs load in the browser.
Use the note feature to track where you stopped writing. When you run progflow off docs, save a note like “Finished API reference, next: troubleshooting guide” so you can jump back in without re-reading everything.
The note feature lets you save a snapshot of your mental state when you stop a flow, so picking up where you left off takes seconds instead of minutes.
1

Stop the flow and save context

When you finish a session, stop your flow:
progflow off backend
Progflow prompts you to save a note:
Save a context note? [y/N]: y
Enter note: Debugging JWT expiry bug in auth middleware — look at src/auth/jwt.rs line 142
✓ flow 'backend' stopped
The note is stored inside ~/.config/flow/backend.json as the "note" field.
2

Read the note next time

Before or after starting the flow again:
progflow note backend
Output:
Debugging JWT expiry bug in auth middleware — look at src/auth/jwt.rs line 142
3

Overwrite the note on the next stop

Each time you run progflow off and save a note, it replaces the previous one. Only the most recent note is kept.
Write notes as next actions rather than summaries. “Fixed login bug” is less useful than “Login bug fixed — write regression test in tests/auth_test.rs”. A note should tell future-you exactly what to do first.
Keep a separate flow per project and switch between them instantly. Because each flow has its own directory, editor command, URLs, and env vars, switching contexts is a single command.
1

Create a flow per project

progflow new api
progflow new frontend
progflow new infra
Configure each with its own directory, editor, and URLs at the prompts.
2

List your flows

progflow list
Output:
api
frontend
infra
3

Switch from one project to another

Stop the current flow (saving context), then start the next one:
progflow off api
# Save a context note? [y/N]: y
# Enter note: Reviewing PR #88 — needs a second pass on error handling
progflow on frontend
You can run progflow off without a name if only one lockfile exists. If you have multiple active flows, specify the name explicitly: progflow off api.

Build docs developers (and LLMs) love