Skip to main content
Mo is in private beta and may change. Sign up to get onboarded.
The mo CLI starts and follows Mo sessions from a terminal. Most use goes through it indirectly: the mo-qa skill teaches Claude Code, Cursor, Codex, Devin, and other agents the whole loop: write the brief, start the session, wait for idle, export the report, fix the bugs, and recheck. This page covers what runs underneath: install, auth, the session lifecycle, file transfer, and tunnels. The mo CLI reference documents every option and output shape.

Install the CLI

Install mo with the published installer:
The installer writes mo to $HOME/.local/bin, and it supports Linux and macOS on x86_64 and arm64. Run it again to update. Set MO_VERSION to pin a version, or MO_INSTALL_DIR for another directory.

Authenticate

Sign in with a Momentic account:
mo login saves an API key. You can use MOMENTIC_API_KEY or --api-key instead.

Drive the CLI through a skill

Run mo skills once inside your repository:
It installs the mo-qa skill into every coding agent it detects and adds an always-on pointer to the agent’s instructions file. Without the mo CLI, npx skills add https://github.com/momentic-ai/skills --skill mo-qa does the same install. After that, the skill is the interface. Ask in plain language (“bug bash the checkout flow on staging”) and the agent composes the brief, runs mo start, polls mo status, exports mo report, fixes what it found, and sends the recheck. The commands below are what it runs and what you use when you want the session by hand.

Start a session

Give mo start a brief in plain language. Quoting matters: the brief is one argument, so a heredoc file or a quoted string both work:
The command prints session JSON. Preserve two fields: sessionId, which every later command needs, and webUrl, which opens the live session in the Momentic app. The start options change where and how the session runs: Pick --granularity by the pass you want, not by taste:
  • low covers the happy path of the main flows plus important failure states. It suits a smoke pass.
  • medium covers every meaningful interaction, splitting distinct journeys.
  • high covers every flow in depth, including alternate paths, validation and error states, and empty and loading states, and names whatever remains untested.

Read and control a session

Use mo read to read new output since your last read:
Use mo status to return a session snapshot with the state, the dashboard URL, and a count per findings category. Add --full for the latest message and the findings themselves:
If Mo is working, mo send stops the active turn first. It interrupts in-flight tool work, and Mo resumes from saved history with your message. Wait for idle when you do not want to interrupt:
Stop the active turn with mo stop:
Pass --subagents to stop the root turn and every active sub-agent turn:
Archive a session when you no longer need it:

Export the report

mo report writes the report to a directory your coding agent can read:
--require-idle exits without writing unless Mo is idle and every sub-agent is done; omit it for an in-progress snapshot. The directory holds report.json, a manifest into bugs.json, testCases.json, verdicts.json, and triage.json, plus one recording per bug. See session reports for the fields.

Move files

Use mo upload and mo download to move files between your local machine and Mo’s hosted sandbox. Both commands need a session, because the sandbox belongs to that session:
mo upload prints the sandbox path. Give Mo that path, because a local path has no meaning inside the sandbox. mo download writes to --output, to MOMENTIC_ARTIFACTS_DIR, or to .momentic-artifacts.

Test a local build through a tunnel

A tunnel lets Mo reach an application on your machine or network that is not publicly reachable. Start one for the exact local URL that you will put in the brief:
Expose only the addresses the tested flow needs. mo tunnel start localhost:3000 api.internal:8080 opens one tunnel for both addresses, --foreground runs it until you interrupt it, and mo tunnel list lists the tunnels started on this machine. Stop a tunnel after its last session with mo tunnel stop <tunnel-id>, which revokes Mo’s access.

Command reference

Every command has a detailed page with all options, output shapes, and examples in the mo CLI reference.