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 & Agents → Install 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):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.
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).
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
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 asAPP (yoqa apps list).
Builds & runs
CLI for agents
Skill + inspect → act → verify
How the agent works
Perception loop for autonomous runs