Understand the application
Read the application’s rules and current knowledge. Identify the journeys, dependencies and observations relevant to this change.
Give Claude, Codex or your MCP agent the journeys and rules behind the change. Run those journeys with Reflow, compare the saved evidence and bring the product changes into your pull request.
A missing Billing link. An invite that never arrives. A role that changes after saving. Your agent checks the flow results against the product’s rules and explains what deserves a closer look.
Install and connect YOUR CODING AGENT
│
┌────────────────┼────────────────┐
▼ ▼ ▼
knowledge flow graph plugin commands
└────────────────┼────────────────┘
▼
plan → apply
│
▼
saved observations
│
before / now → agent review
│
▼
YOUR PR REVIEWRead the application’s rules and current knowledge. Identify the journeys, dependencies and observations relevant to this change.
Use your application’s plugin commands and private connections. Write repeatable flows and inspect the plan before running them.
Run the selected flows. Keep the screenshots, query results and command output they capture, including failed attempts.
Compare the selected previous and current runs. Your agent explains expected differences, flags unusual changes and keeps missing evidence visible for your PR review.
manage_execution controls planning and execution. review_changes prepares exact comparisons and exports the selected review.
Use the same private profile for the CLI and MCP client. Reflow infers the checkout from the working directory and discovers the local service automatically. Hosted connection settings are defaults. For desktop clients that start outside the project, see the setup appendix.
MCP tools and contracts{
"mcpServers": {
"reflow": {
"command": "reflow",
"args": [
"mcp"
]
}
}
}
Launch your agent from the application’s Git checkout.
If your client cannot find reflow, use its
absolute installed path. Install and sign in first.
Keep the selected previous and current records available: the original screen, the captured rows and the command output. Your agent checks the differences against the application’s rules and the PR’s intent.
Assertions and factual differences stay separate from the agent’s advice. Retain failed attempts after a repair and keep missing checkpoints visible. You decide what to merge.
Read the application knowledge for this change.
Build the flow dependencies and show me the plan.
Run the affected work and inspect the originals.
Compare the saved previous and current observations.
Explain the differences this PR intends.
Flag unusual changes and missing evidence.
Keep both originals available in my PR review.Install Reflow, sign in and select your app. Then copy your client's configuration and launch it from your application checkout.
{
"mcpServers": {
"reflow": {
"command": "reflow",
"args": [
"mcp"
]
}
}
}
Reflow connects to the local service automatically over stdio.
If your client cannot find reflow, set the command to its absolute installed path.
The machine-readable guide covers installation, execution and review preparation. Exact tool arguments live in the MCP reference.
# Reflow
> Test the product. Review what changed. Reflow gives your coding agent product knowledge, executable journeys and runtime evidence for human PR review. The agent maintains application knowledge, chooses flows and interprets the selected before-and-after observations; Reflow executes the flows and retains their evidence.
## Start here
Human quickstart: https://reflow.io/docs/getting-started
Agent setup and documentation map: https://reflow.io/docs/agents-start-here
Installable Reflow skill: https://reflow.io/skills/reflow/SKILL.md
Connected MCP: get_product_docs lists/searches/reads packaged product docs; load_skill(name="reflow") starts task-specific guidance. If unavailable in the connected release, use the web references and inspect the installed CLI version.
## Install and connect
The public stable CLI installer is https://reflow.io/install.sh. Release baselines are macOS 15 and Ubuntu 24.04 with glibc 2.39, on arm64 and x64. It includes Node and the Browser, PostgreSQL, LocalBash, DockerUbuntu and Mailbox Go plugins. Installation and ordinary init do not require a private checkout or Go. Init requires a signed-in approved team, an application collection and HTTPS access to the public release origin; the first selection downloads all supported-platform archives to record their checksums. Flows need their declared runtimes, application and test data.
curl -fsSL https://reflow.io/install.sh | sh
export PATH="$HOME/.local/share/reflow-sidecar/bin:$PATH"
reflow login
Use the same private profile in the CLI and MCP host. Hosted API/app, run scope and Zero are defaults. Explicit server and repository overrides are documented in the setup appendix. The customer app is https://app.reflow.io. Sign in to register interest; app access and test execution are limited to approved teams during the closed beta. Run access and an online API/Zero connection are required for shared writes and execution. Planned screenshot pricing: Free includes 1,000 screenshots/month for $0; Paid includes 10,000 screenshots/month for $200 USD. Both include unlimited users. The wider pricing model is still evolving. See https://reflow.io/pricing.
## Choose test storage
During hosted onboarding, select or create the application collection and confirm Where new tests are saved. New teams default to Keep tests in Reflow. Owners and admins can change the default in Team settings; existing tests stay where they are until explicitly moved. Teams predating this option need a Reflow operator to review and activate their collections first. Read https://reflow.io/docs/test-storage.
Before authoring, call get_reflow_context for the current collection, preference and capabilities. Use manage_flows or reflow flows create/read/save. Keep private drafts, bindings, caches and installed skills outside the application checkout. Tests saved in Reflow do not add repository files. Both storage locations use the same target/plan/apply controller; a collection can include both. Moves require an explicit preview and confirmation and leave Git commits and file cleanup to the user. Storage changes do not reset named variables or mailboxes.
## Local execution
Run from the application's Git checkout; Reflow infers its root from the current directory. Configure a private plugin binding file, then select the running application once with reflow target http://localhost:3000 --group my-app --collection <collection-id> --bindings /absolute/path/to/bindings.json. The CLI starts its local execution service as needed. Configure the agent's MCP client to launch reflow with args ["mcp"], the same profile and application working directory. Reflow discovers or starts the profile's local service automatically. If reflow is not on the client's PATH, use the absolute installed bin/reflow path.
Load load_skill(name="plugin-execution") and load_skill(name="flow-authoring"). Use list_plugins for the selected application schemas and runtime requirements. Run reflow init --collection <collection-id> after selecting the application; only --upgrade changes its plugin selection. Create Markdown/RFL tests through manage_flows in the team’s chosen location, with provider aliases and bindings in frontmatter. The generated application lock retains versions and package checksums; Git applications commit .reflow/plugins.lock.json and Reflow-backed applications keep the shared lock in Reflow. Read the current source before saving an existing test; its own location controls the save. Browser drives pages and captures screens; PostgreSQL checks state and explicitly configured setup; LocalBash runs local scripts; DockerUbuntu runs commands in an existing Ubuntu container; Mailbox provides remote named inboxes and captures email codes or links into flow variables. Binding values and credentials stay in private device files.
reflow plan explains run/reuse/wait/blocked work without executing application steps. reflow apply runs the plan; reflow status inspects outcomes and ownership; reflow dashboard opens the local UI. Select tests by slug, ID or registered repository path. With no selector, the current collection supplies runnable tests from both locations. Completed work with matching inputs can reuse evidence. reflow taint smoke or reflow taint 'smoke#step-name' requests fresh work for the next plan/apply, including affected dependents and required browser-session reconstruction. Repeating target resets reuse. reflow apply --parallelism 4 overlaps independent flows while respecting dependencies and device capacity. Group locks coordinate target access.
The MCP manage_execution tool exposes target, plan, apply, status, run, taint, cancel and unlock through the same controller. Inspect the plan fingerprint and storageFingerprint together; pass them as fingerprint and storage_fingerprint to apply. Retain request_id and reconcile that same request after uncertainty. Inspect the controller’s run and artifact history. Portable device-job exports use evidence produced by that separate execution path; do not rerun a controller test just to obtain an export.
## Custom plugins
For an external API or custom system, a Go provider can declare commands, private Bind configuration and stable evidence, then compare/render retained snapshots without a live target. The RFL language, protocol, Go provider framework and TypeScript host are licensed under Apache-2.0. The Resilient-Software/rfl repository remains private while a public release is prepared; a standalone SDK release is not available yet. This core license does not cover the separate Reflow service or bundled provider implementations.
Building a custom provider still requires access to the private RFL source. Bundling it into Reflow also requires the private Reflow checkout, catalog/workspace registration, explicit initialization and matching builds. The public CLI bundles five standard plugins; it does not install arbitrary third-party binaries or discover a public plugin registry. See the writing-plugins guide for a compilable observational HTTP example and the exact integration steps.
## Prepare the review
- Map current screens, behavior and journeys to their flows. Load load_skill(name="knowledge-corpus") and read search_kb/get_kb_page. Knowledge describes the application at the selected revision; replace stale facts rather than appending a work log.
- Inspect failed assertions, screenshots and command output. Repair the application or flow, then plan/apply and retain both attempts. Changed inputs and upstream output identities automatically select affected reruns; explicitly taint for external changes absent from the inputs. Reconcile unknown completion before retrying. This uses the connected author agent, not a second model configured in Reflow.
- Prepare exact base/candidate comparisons with review_changes. Changed visuals and knowledge patches lead; unchanged evidence, omissions and originals remain available.
- The author's existing agent host can assign a fresh independent reviewer to inspect original evidence and add advisory notes. prepare_knowledge_refresh supplies a bounded maintainer task; it does not launch a hosted author.
- review_changes prepare_comment and export_comment prepare Markdown and media. Export writes local files; an authorized delivery step publishes them. Human acceptance belongs to PR merge.
The configured GitHub Actions integration updates one Change Summary comment during preparation and execution. PR code runs with read-only repository permissions; a separate trusted publisher updates the comment and links a private downloadable visual report. Extract it and open index.html. Repository access and artifact retention apply. This path does not embed GIFs inline or automatically create knowledge comparisons. Native reporting actions/publisher are supplied through the source integration; no standalone Marketplace Action release is documented.
## Browser and other connections
Live browser tools include open_session, get_session, act, snapshot, screenshot, get_session_command and close_session. Use explicit RFL, retain command_id and inspect uncertain commands before retrying. Saved flow screenshots and approved baseline checks have separate review semantics; a new capture is not a visual pass. See the MCP and visual testing references.
The separate remote HTTP MCP endpoint is https://mcp.reflow.io/mcp and uses OAuth browser consent. Its API flow/run tools are distinct from local CLI/MCP execution and knowledge preparation. Use the local MCP path when running plugins on the author's device.
## Product
- [Knowledge base](https://reflow.io/product/knowledge-base): application rules, references, exercised flows and proposed knowledge changes.
- [Plugins](https://reflow.io/product/plugins): Browser, Bash, SQL and Mailbox commands for application flows.
- [Browser](https://reflow.io/product/plugins/browser): screen captures and visual evidence for agent review.
- [Bash](https://reflow.io/product/plugins/bash): retained command output, exit codes and files.
- [SQL](https://reflow.io/product/plugins/sql): query snapshots and agent interpretation of changed data.
- [Mailbox](https://reflow.io/product/plugins/mailbox): remote named inboxes, email codes and magic links; addresses persist across replans and reruns until explicit reset.
## Documentation
- [Test storage](https://reflow.io/docs/test-storage): Team defaults, shared/repository authoring, one plan/apply workflow and explicit moves.
- [Getting started](https://reflow.io/docs/getting-started): Connect MCP, install the skill and ask the agent.
- [Agents start here](https://reflow.io/docs/agents-start-here): Detailed installation, sign-in, target selection and first flow.
- [Flow format](https://reflow.io/docs/flow-format): Markdown, plugin requirements, inputs, generated values and a two-flow data example.
- [Plugin setup](https://reflow.io/docs/plugins): Private bindings, shared application locks and the five bundled plugins.
- [Browser plugin](https://reflow.io/docs/plugins/browser): Page actions, assertions and CSS-scoped snapshots.
- [LocalBash plugin](https://reflow.io/docs/plugins/local-bash): Host commands, output and file capture.
- [PostgreSQL plugin](https://reflow.io/docs/plugins/postgresql): Read-only queries and explicit setup writes.
- [DockerUbuntu plugin](https://reflow.io/docs/plugins/docker-ubuntu): Commands in an existing Ubuntu container.
- [Mailbox plugin](https://reflow.io/docs/plugins/mailbox): Connection settings, stable addresses and new email captures.
- [Test accounts](https://reflow.io/docs/test-accounts): Shared generated values, application accounts and explicit reset.
- [Writing plugins](https://reflow.io/docs/writing-plugins): Extend flows for an external API or custom system using the Go framework.
- [RFL reference](https://reflow.io/docs/reflow-language): Plugin bindings, values, browser statements and command syntax.
- [MCP reference](https://reflow.io/docs/mcp): Tool contracts, evidence and PR preparation.
- [Edit application knowledge](https://reflow.io/docs/knowledge-editing): Shared revisions and temporary file editing; follow onboarding storage choice.
- [Target readiness](https://reflow.io/docs/target-readiness): Probe the environment before admission; all results and exit code 75 for not-ready targets.
- [Guiding the agent](https://reflow.io/docs/guiding-the-agent): Authoring and current application knowledge.
- [Snapshots and review](https://reflow.io/docs/visual-testing): Visual Browser, Bash and SQL examples, retained comparisons and explicit image contracts.
- [Repair and rerun](https://reflow.io/docs/autoheal): Agent repair, automatic invalidation and deliberate fresh evidence.
- [GitHub Actions](https://reflow.io/docs/github-action): CI execution, progress comments and private visual reports.
- [API and tokens](https://reflow.io/docs/api): HTTP integrations and access scopes.
- [Pricing](https://reflow.io/pricing): Current commercial status.
- [Capabilities](https://reflow.io/features): What Reflow can prepare for review.
- [For agents](https://reflow.io/agents): Agent setup and workflow overview.
- [Docs index](https://reflow.io/docs): Documentation map.
Start by asking the agent to learn the app using application-onboarding and knowledge-corpus: terminology, business rules and user journeys. Then load flow-authoring and plugin-execution to write, plan and run a useful flow. Put provider aliases in providers frontmatter (db: PostgreSQL); the private connection defaults to the alias, with binding available to select another name. Declare typed inputs in frontmatter and reference ${inputs.name} in commands. reflow run executes the same controller as reflow apply.