Plugins
Plugins connect a flow to the parts of your application it needs to exercise. Each plugin has its own connection settings, commands and retained evidence. Mix them in one flow or pass values between dependent flows.
If this is your first flow, get started to install Reflow and sign in. App access still requires an approved team.
Choose a plugin
Section titled “Choose a plugin”| Plugin | Use and evidence |
|---|---|
| Browser | Interact with pages and retain viewport or CSS-scoped screenshots. |
| LocalBash | Run host commands; retain output, exit code and files. |
| PostgreSQL | Check database rows or retain results of deliberate setup writes. |
| DockerUbuntu | Run commands in an existing Ubuntu container; retain output and files. |
| Mailbox | Keep a named inbox and capture new email codes or links. |
The public CLI includes all five plugins. Install them with reflow init, or select
names such as reflow init Browser PostgreSQL. Ordinary initialization does not
require Go or a private source checkout. Each plugin still needs its declared
runtime, your application and any test data described on its page.
Connect a plugin
Section titled “Connect a plugin”Choose an application collection and test storage location during onboarding. Use that collection when selecting the target below.
A flow declares an alias and the plugin it uses. The alias also selects the private
connection unless you give it a different binding name:
providers: site: {use: Browser, binding: preview} db: PostgreSQLHere site uses the connection named preview; db uses the connection named
db. Save those connections in a private JSON file:
{ "preview": {"provider": "Browser", "configuration": {"browser": "chromium", "targetUrl": "http://localhost:3000"}}, "db": { "provider": "PostgreSQL", "configuration": {"connectionString": "postgresql://test_user:replace-me@127.0.0.1:5432/test_db"} }}chmod 600 /absolute/path/to/bindings.jsonreflow target http://localhost:3000 --group checkout --collection <collection-id> --bindings /absolute/path/to/bindings.jsonKeep credentials and machine-specific paths in the private file. Flow aliases and plugin requirements are saved with the test, in Reflow or in Git. Each plugin page contains a complete pinned example and explains its required configuration.
Pin the command schema
Section titled “Pin the command schema”A flow’s plugins frontmatter records each plugin’s exact sourceCommit and
descriptorDigest. The first identifies the provider source; the second identifies
its command schema. Copy the current values from a plugin page or the application’s
Plugins view. A binding configures a connection; it does not select a plugin version.
When you update the CLI, run reflow init and explicitly refresh existing flow
pins to match the selected release. The five bundled plugins share one source
revision. Initialization installs plugins; it does not rewrite flow files.
Use the installed list_plugins MCP tool to inspect command schemas.
Run and review
Section titled “Run and review”reflow planreflow applyreflow dashboardPlanning reads declarations and retained evidence without executing plugin steps.
Apply runs the required work. Every invocation produces a terminal outcome; the
plugin decides which state and artifacts it retains. Browser snapshot deliberately
captures a screen, while Bash commands and SQL queries retain their output directly.
See snapshots and review.
Only commands with declared scalar return values can be used in capture, such as
Mailbox’s address or code commands. Other plugin snapshots remain reviewable
evidence; they are not automatically flow variables. See values and outputs.
To add application-specific commands, read Writing plugins.