Skip to main content
Use the mo CLI to start and follow Mo sessions from a terminal. Use a tunnel when the target runs on your machine or on a private network.

Let a coding agent drive the CLI

If you work in Claude Code, Cursor, Codex, or Devin, install the mo-qa skill and let the agent run the CLI for you:
Then invoke it with a slash prefix:
The skill installs and authenticates the CLI itself, asks you for the missing parts of the brief, starts the session, and follows it. See install Mo skills. The rest of this page gives the commands the skill runs.

Install the CLI

The package is @momentic/mo. It requires Node ^22.12.0 || >=24.0.0. Install it 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 for 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.

Start a session

Give mo start a brief in plain language:
The command prints JSON. Take the session ID from that output and use it with the session commands below. Use these options when you start a session:

Read and control a session

Use mo read to read new output since your last read:
Use mo status to return a session snapshot:
If Mo is working, mo send stops the active turn first. In-flight tool work is interrupted, and Mo resumes from saved history with your message:
Stop the active turn with mo stop:
Archive a session when you no longer need it:

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 several, --foreground runs one 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