Skip to main content
Start a session by giving Mo a brief in plain language. The command returns as soon as the session exists; Mo keeps working in the cloud. Use qa read to follow its output.
You can omit start when the message is a bare URL:

Arguments

string
The brief. Include the target URL, credentials or how to get them, and any boundaries Mo must respect. Required unless you select a PR with --pr.

Options

string
Test a named GitHub PR. Accepts a PR URL or owner/repo#123. Without a brief, Mo tests the changed app behavior and its regressions. Changes with no testable app behavior finish without launching testing agents.
string
Choose the deployment for a PR session, including previews created by a coding agent or a custom deployment system. An environment needs no preview URL. Otherwise, without this option, Mo looks for one preview tied to the PR commit in Vercel, Cloudflare Pages, or Netlify posts. Discovery failures do not block startup; Mo can inspect the PR or ask you for the target. Ignored without --pr; include the target in the brief for a general session.
string
Send a reviewed Git patch when you cannot push local changes to the PR. Requires --pr. Run from the PR checkout: Mo uses local HEAD as the patch base and rejects it before starting if it differs from the published PR head. The deployment URL must serve those changes; sending a patch does not deploy them. Accepts text-only patches up to 256 KiB. Exclude secrets, logs, temporary files, generated outputs, blobs, and data files. Ignored without --pr.
string
Route Mo’s traffic through a tunnel started with qa tunnel start. Required when the target runs on your machine or a private network.
integer
Maximum number of sub-agents Mo runs at the same time. Must be a positive integer. The organization limit caps the value.
string
Browser interaction speed: default (the default) or human. human adds 250 ms between steps in a batch and sets the default typing delay to 60 ms per keystroke. The first step and single-step calls have no added step delay. Explicit typing-step delays override the default.
boolean
default:"false"
Enable experimental WebGL support for apps that render 3D graphics. Rendering uses the CPU, so graphics-heavy apps may run slowly. Applies to the session’s root browser and delegated browsers. Cannot be combined with --platform.
string
Start in a named workspace environment. Mo sees variable names, descriptions, and the literal BASE_URL starting URL. Values are available during execution.
string
Load variables from a dotenv-format file into the session environment. Repeatable; a later file overrides earlier values for the same name. Requires Mo CLI 0.16.0.
string
Copy one variable from your current shell environment into the session environment. Repeatable. The command fails if the variable is not set.

Output

The command prints one JSON object:
Keep sessionId for the other session commands. webUrl opens the session in the dashboard.

Examples

Test a PR using its preview deployment:
Paste the full GitHub PR link, including a comment permalink if that is what you have. Query parameters and fragments are ignored; Mo keeps the repository and PR number. owner/repo#number also works. PR sessions use the workspace’s GitHub App access and show a PR badge in Mo. The session tests the commit captured at startup. Supply --url when you know the target deployment, even when its host is not Vercel, Cloudflare, or Netlify. Mo focuses on the changed and affected flows. Its default plan targets about 10 minutes of combined agent interactions within about 20 minutes elapsed. Set a different scope or duration in the brief when needed. These are planning targets, not hard limits. Mo prepares a shallow checkout of the captured commit in the background. It reuses the workspace snapshot when available and fetches the requested revision. Mo can inspect the preview while source downloads. GitHub tools remain available for older commits and other branches. Mo posts a review comment with the session link, then updates it with the results. Each PR session gets a separate review. A new session collapses earlier Mo reviews as Outdated, with their session and report links preserved. On the same commit, the Mo check tracks the latest request; earlier attempts stay in its history. Installations with Issues: write alone receive PR comments with the same updates and supersession behavior. Clean runs that include a local patch finish with a neutral GitHub check, because they do not verify the remote commit alone. Session starts are submitted once. If Mo cannot confirm startup after a connection failure, check your sessions in Mo before retrying. Commit and push local changes before starting when you have permission. If pushing is prohibited, send a reviewed patch from a checkout at the published PR head:
Include only the files and hunks needed for testing. Include relevant untracked source files explicitly; git diff alone omits them. The CLI reads local HEAD as the base revision; a stale or different PR revision is rejected before Mo starts. Send the patch at startup so Mo has the source context before it begins. Mo investigates the PR revision plus that patch and reports the local changes separately from the published SHA. Start a session and wait up to 290 seconds for output:
The read can time out while Mo is still working. Use qa wait to wait for the session and its sub-agents to finish or ask for input. Give Mo credentials from a local .env file without putting them in the brief:
Test a local build through a tunnel: