Cloud vs local execution
Marriska runs Playwright two ways. By default, tests execute in the
cloud — Marriska spins up the browser, runs the steps, streams events
back. Optionally, you can run the same test on your own machine via
marriska-agent, with the cloud only coordinating dispatch and storage.
Both produce identical test reports. What differs is where the browser actually clicks.
Cloud (default)
Section titled “Cloud (default)”The Runner page’s default mode. You click Run in the web UI; Marriska’s worker fires up a Playwright instance on its own infrastructure and streams step events back to your browser in real time.
Pick cloud when:
- The target site is publicly reachable.
- You don’t need to watch a real browser window.
- You want zero local setup — works the same on every machine.
- You’re running on a schedule (cron-triggered runs always go cloud).
Limits:
- Can’t reach
localhost, a VPN-only subnet, or any private network. This is enforced, not just unlikely to work: a cloud run refuses a step whose target resolves to a loopback, private, link-local or reserved address, and tells you to use a local agent instead. Publichttp://andhttps://targets are unaffected. - You can’t see the browser; you see step screenshots after the fact.
- Counts against your monthly cloud-runs quota (see plan tiers).
Local agent
Section titled “Local agent”A persistent marriska-agent process you run on your own machine.
The agent holds a WebSocket connection to Marriska, accepts test
dispatches, runs them with Playwright locally, and reports results
back. From the user’s perspective the test still ran “from Marriska” —
the report appears in the same Reports page, with the same step
screenshots, the same shareable URL.
Pick local when:
- The target site lives behind a VPN, on
localhost, or in a private network. - You want to watch the browser execute (
--headedflag). - You want faster feedback while iterating on a flaky test.
- You’re hitting cloud-run quota and have spare machine time.
Trade-offs:
- One agent per machine, typically. The plan tier caps how many agents you can have registered at once (Starter 1, Pro 3, Team 5, Enterprise unlimited).
- The agent must be running when you click Run. If it disconnects
mid-test and does not reconnect within 90 seconds, the run ends with
status
disconnectedand verdict Failed, and the tests it had not reported fail by name. A local run that no agent picks up within 24 hours of being queued ends Failed too, rather than waiting forever. See Reconnecting. - You’re paying for the machine’s compute (CPU, memory, Chromium install).
- No visual checks: a
screenshotstep compares with a stored baseline, and only the cloud has one, so on the agent the step fails with Visual checks run in the cloud only rather than passing without comparing anything. Step screenshots are still taken.
Choosing per run
Section titled “Choosing per run”When you start a run, the run-config popover has an Execute on toggle — Cloud (the default every time) or Local. You choose it per run; there’s no sticky “use what I picked last” for the target.
When a local agent isn’t connected, the Local option is greyed out with a tooltip pointing at the agent-setup guide.
See also
Section titled “See also”- Run tests and rerun the failures — starting runs, the queue, and reruns
- How to set up the local agent — install, authenticate, dispatch a first test
- CLI reference —
marriska-runner(one-shot CI) andmarriska-agent(persistent daemon) flag details - Plan tier limits — agent count per tier