Skip to main content
The yoqa CLI talks to the local runner. If nothing is listening on http://127.0.0.1:7420, the CLI starts @yoqa/runner for you (requires Bun). The desktop app is optional.
Install via npm (npm i -g @yoqa/cli / npx @yoqa/cli) for terminals and CI, or from the desktop app: Settings → CLI & Agents → Install CLI. Restart the terminal after a desktop install. For coding agents, also install the skill — see CLI for agents.

Setup

1

Install Bun (for the runner)

The runner is Bun-only. CI and headless terminals need Bun on PATH:
2

Install the CLI

npm / CI (recommended for pipelines):
Desktop: Settings → CLI & AgentsInstall CLI. Links yoqa into ~/.local/bin.
3

Start the runner (optional)

yoqa health and other commands auto-start the runner. To run it in the foreground (typical for a dedicated CI service step):
From a monorepo checkout you can still use bun run runner. The desktop app also starts a sidecar on the same port. Disable auto-start with YOQA_NO_AUTOSTART=1.
4

Verify

CI / CD

Install Bun and @yoqa/cli. The first yoqa command starts the runner; later steps reuse it. Host Node/npm must be on PATH so managed Appium can install under ~/.yoqa/runtime.
This repo also ships a full device smoke against an Expo fixture (builds CLI from source, iOS Simulator on macos-26 + Android Emulator on Ubuntu + KVM, no AI provider): see the Demo Expo E2E workflow and examples/expo-demo. Copy that YAML if you want yoqa assert / yoqa action --label in your own app repo. Each action writes a screenshot under artifacts/screenshots. For catalog runs plus the same HTML report as desktop Export HTML, see GitHub Actions (yoqa report, setup-yoqa / yoqa-report composite actions).
Override the runner URL with YOQA_RUNNER_HOST / YOQA_RUNNER_PORT / YOQA_RUNNER_URL. Pin a binary with YOQA_RUNNER_BIN. Device runs need a simulator or emulator and Appium drivers (yoqa doctor --fix / yoqa runtime ensure). Description grounding and agent runs also need provider secrets. GitHub-hosted iOS needs macos-* + Xcode. This is not a cloud device farm — cache ~/.yoqa/runtime between jobs to skip reinstalling Appium.

Doctor & servers

yoqa runtime status / ensure remain the thin install-readiness commands. Prefer yoqa doctor when something is broken or foreign Appium processes are stuck. In the desktop app: Servers button next to Play, and Settings → Diagnostics.

Devices

Inspect the screen

Prefer yoqa screen in agent loops — fewer tokens than a screenshot or --full. Details: CLI for agents.

Actions

Prefer description grounding (-d / --description) when an AI provider is configured. Fall back to relative coordinates (0–1000) from yoqa screen.

Test management

Catalog commands take the app prefix as APP (yoqa apps list).

Builds & runs

Agent runs require a configured provider. Cloud credits are not required for local Phase 1.

CLI for agents

Skill + inspect → act → verify

How the agent works

Perception loop for autonomous runs