For coding agents

Reproduce once. Debug repeatedly.

Coding agents can already reproduce many browser bugs from competent textual instructions. StatePort gives them a reviewed State Card to inspect and reopen, plus focused source context when the implementation is unknown. Your chosen agent changes code; StatePort supplies runtime actions and evidence to check the same case again.

See the MCP workflow

The differentiator

Reuse the successful reproduction.Basic browser automation is not the scarce part. Reconstructing the same useful route, account, form, and API state after every code change is.

Setup

Connect before the first State Card.

Download and open Desktop, then use Set up coding agentin an empty Library or open Settings → Coding agents → Connect an agent → Copy setup. Review the copied setup before giving it to your agent.

No Card, trial, or agent Capture permission is required. StatePort does not invent an executable path or silently edit a third-party host configuration.

  1. Follow the provider guide or generic local-MCP path selected by the public setup entrypoint.
  2. Restart the host or MCP connection when its instructions require it.
  3. Confirm that the actual host discovers the public StatePort tools. Zero Cards is a valid result.

A successful local probe does not prove that the selected coding-agent host discovered the tools. Package installation, saved configuration, host discovery, and a verified debugging case are separate states.

Open the public setup entrypoint · Read the plugin guide

Need a first case? Try a small localhost app with a deliberate bug and synthetic data. It includes setup steps, a regression test, and tasks to capture the case and compare a fix with StatePort.Try Reproduction Lab. Requires Node.js 22 or newer and Git; the exercise runs without StatePort.

Not every fix needs a recording.

Start with the work the task needs. State Cards remain the reusable browser case; source assistance does not require one.

Source context. query_source_context finds bounded relevant source in the host launch project when the implementation is unknown, without Capture. It provides tool context; it does not intercept or filter all model requests. Known files can be read directly; missing context uses focused reads.

Source and executable live helpers currently depend on Linux runtime capability. A published installer alone does not establish that a selected host supports these paths. Check maintained host evidence.

Live. For a needed browser check without saving a Card, use the connected runtime's advertised live workflow. Availability and access are independent of Capture. A live check of backend effects is separate from replay evidence.

Saved case. Reuse a suitable exact Card and revision, or save the first useful new reproduction under the effective automatic Capture policy. After edits, check the same case on the actual current build.

Simple changes without browser-state needs use sufficient project checks. Declining Capture does not guarantee a full live workflow, repository coverage, or token savings.

Choose the result you need.

On a Card, use Use with agent to copy a task. Settings also offers a new Fix & Verify request and Check Changes without a selected Card. Copying never starts a run or grants access.

These workflows require compatible skills and the installed runtime's advertised capabilities. Check Changes and Harden Case run only when requested; neither authorizes code changes.

Fix & Verify

Observe the reported failure, let your agent fix code, and recheck the same Card on current code in a fresh run. Retain behavior results and any build or replay gaps.

Try: “Use StatePort to reproduce this bug, fix it, and verify the same case against my current local app.”

A saved Card, an open window, or a successful tool call alone proves neither reproduction nor a fix. Required project checks still apply.

Check Changes

Check relevant saved cases after edits. Receive observed findings, skipped cases, and explicit coverage gaps.

Try: “Check relevant saved cases after my permissions-form changes. Report findings; do not change code.”

A confirmed regression needs a comparable passing base and failing candidate for the same criterion with known build evidence. Without that base, a failure is a current finding. This is bounded coverage, not a whole-app guarantee.

Harden Case

Try a small set of justified adjacent data cases: an empty list, zero, or an omitted optional field. Keep the original Card unchanged.

Try: “Check a few valid quota edge cases around this Card. Report failures and conditions; do not change code.”

Use one supported replayable JSON response per variant. Confirm response delivery and application consumption. This is not arbitrary fault injection or all combinations; unsupported Cards remain an explicit gap.

Synthetic exercise walkthrough

Zero is not missing.

Reproduction Lab is a deliberate bug with synthetic data. This sequence explains the exercise; it is not a claim that a new agent run passed.

Follow the StatePort exercise
  1. 01SymptomA quota of zero appears as 100 available credits.
  2. 02Initial reproductionReviewer → Exhausted quota · 0 → request 10 credits. Observe the wrong value and enabled allocation button; retain the useful case.
  3. 03Agent code changeCorrect the handling of zero in the decision code using the exercise's test and walkthrough.
  4. 04Same-case recheckReopen the saved case against rebuilt current code, preserving Reviewer / Exhausted / 10.
  5. 05Expected result to verifyAvailable credits stay at zero, “Not enough credits” appears, and allocation is disabled. Record observations and project test results; saving alone is not proof.

Repeated reconstruction versus State Card reuse

A developer, QA, or permitted agent can prepare the reproduction; mandatory Review confirms it before Save and reuse in the debugging loop.

Without StatePortbug report → reproduce → change code → reproduce again → state may drift

With StatePortreviewed State Card → inspect through MCP
change code → reopen Card → inspect differences

Next iterationchange code → reopen Card → compare

Work from a reviewed State Card.

On that Card, open Use with agent, review the optional Notes / Observed / Expected context, then choose Copy task. The task identifies the exact Card and revision; it does not require another trip through Settings.

MCP inspects and opens the existing Card against the selected target, subject to access policy. The original request authorizes necessary in-scope Capture, replay, Journey, and supplied-login steps through a bounded agent task. It does not enable global settings or bypass host approvals, permissions, or required local authentication flows.

  1. 01Inspect the exact CardConfirm its project, revision, target, and safe prior-run evidence.
  2. 02Reproduce before changing codeUse the supported running local app and current code; configure local authentication separately when required.
  3. 03Stay within the taskReuse task authorization; respect host approvals, runtime permissions, and required local authentication barriers.
  4. 04Change code and reopenUse the same Card and revision instead of recording a replacement during normal iterations.
  5. 05Inspect and compareCompare reports evidence and differences; it does not declare the bug fixed.

Exact state remains the technical proof.

The State Card gives the agent the captured route, supported browser state, request order, and explicit auth boundary. When an applicable completed run or revision exists, MCP can expose its safe evidence; saving alone does not create reproduction proof or a separate category of access.

Bug report

Enough to find the bug once.

The agent may still choose a different route, role, form state, or request sequence next time.

State Card

The useful result is now reusable.

  • captured route and browser context
  • supported form, storage, and API behavior
  • explicit authentication requirements
  • available immutable revision and supported compare evidence

Keep the context. Change the selected dependency.

Supporting captured behavior can remain replayed while the dependency under investigation points to approved localhost/current code. Unexpected requests remain blocked instead of silently escaping.

/api/me
Replay
/api/account
Replay
/api/catalog
Replay
/api/calculate
Local

Frozen world

Reuse reduces repeated browser work and opportunities for state drift. It does not promise that every application or protocol can be captured.

Supporting behaviorReplay the approved captured responses.

Current codeRoute the selected dependency to approved Local.

EvidenceCompare structured results across repeated runs.

Two ways to reach the reusable loop.

Manual Capture remains a complete path. Agent Capture is a separate, capability and permission path; setup does not grant task authority. Capture is allowed by default when no preference is stored; your explicit Settings choice is preserved.

A reviewed Card already exists

Reuse the exact case.

Use with agent → Copy task. Inspect and reproduce on current code, change it, then reopen the same Card and revision and compare available evidence.

No Card exists yet

Create one only within the Capture boundary.

Use Capture → Capture with an agent, or describe the browser bug to your connected agent. Discover capability and the effective automatic Capture policy. When enabled for a supported browser bug, save the first sufficient reproduction before edits. Permission denial takes precedence. Capture uses a managed Clean Session and bounded semantic actions. Supplied login credentials use protected local storage and credential actions; they are excluded from ordinary Cards, tool responses, and shares. Stop → Review → Save remains required; discard an unhelpful capture.

Settings → Coding agents controls Capture permission and the separate automatic-save preference. Turning automatic save off leaves source assistance, supported live checks, and explicitly requested permitted Capture available. Neither preference makes a host follow a skill automatically.

Evidence status

What has been verified.

Desktop is Public Beta. The shared stateport-debuggingskill and provider adapters remain a development preview. Runtime availability, installed-product acceptance, and host integration evidence are separate. Source context and executable live verification currently depend on Linux helper availability; discover the installed capability.

Verified bounded checkThe maintained inventory records an explicit installed Linux Codex CLI Capture → Review → Discard lifecycle, with exact versions in its report.

Separately verifiedDirect-runtime Capture/Save and Original replay checks under their recorded boundaries.

Founder field checksThe founder reports repeated successful checks on Linux and macOS, including the full agent-driven current-code fix → same-Card reopen/compare loop.

Provider-specific evidenceAutomatic skill selection, every IDE or OS, and integration updates still require host-version-specific evidence. The maintained inventory records those boundaries separately.

Read the maintained compatibility inventory

Public MCP

Current MCP boundaries.

In addition to safe inspect/open operations, the current MCP supports permission-gated Capture / Review / Save, ordinary Card transfer, and a configurable Capture viewport.

Read the MCP reference

Preview a .scard file or Share URL, then confirm its exact digest before import. Export requires user confirmation and excludes protected contents. A complete Share URL grants bearer access; it is not a Team workspace.

Capture viewport can be set within the documented bounds. After a Desktop update, restart the MCP connection and rediscover tools; a new installed app does not replace an already-running server process.

Current-code Open requires the actual frontendOrigin. Original or captured-source evidence does not prove that current local code ran. Omitting frontendOrigin requests eligible Card-bound Captured source Saved State; it does not turn a remote origin into an editable current-code target.

The MCP server is local, but the user's selected AI host may process the task and optional context remotely. Notes / Observed / Expected are included only after the user reviews and chooses that context.

Ground truth does not mean secret access.

Agents receive safe State Card/runtime metadata and actions. Raw passwords, tokens, Auth Bindings, and machine-local protected values are not handed to the agent.

A fresh reproduction can still be required when a Card is stale, the bug needs a different state, the workflow is unsupported, or the user explicitly asks to start again.

Make the successful reproduction reusable.

Connect from Desktop before the first Card, then reuse an exact reviewed Card or explicitly authorize bounded agent Capture for a new case.

Connect an agent