Use a coding agent
Let a coding agent create tests, run them, and inspect failures.
A coding agent can use the Operio CLI to create test cases and verify changes against your app. Commands return JSON and use exit codes to report failures.
Set up the session
Install the CLI, sign in, and select the team and project before handing work to the agent:
operio auth login
operio teams use <team-id>
operio projects use <project-id>Install the Operio skill
The CLI ships an agent skill that teaches coding agents how to work with Operio: checking the session, reusing existing tests, writing clear steps, keeping credentials in test accounts, running against the right target, and diagnosing failures. Install it into your repository:
operio skill install # ./.claude/skills/operio
operio skill install --global # ~/.claude/skills/operio, for every project
operio skill install --dir .agents/skills # another agent's skills directoryCommit the installed folder so everyone working in the repository gets it. The skill matches the CLI version that installed it; after operio update, rerun operio skill install --force to refresh it. operio skill show prints the skill for agents that take instructions another way.
Or add project instructions
If your agent does not support skills, add instructions like these to its project instructions file:
## Testing with Operio
The Operio CLI is authenticated for this project.
- Check the selected project with `operio whoami`.
- List existing cases with `operio tests list` before creating one.
- Create a draft with `operio tests create --input -` using JSON on stdin.
- Review its steps before publishing with `operio tests activate <id>`.
- Run with `operio tests run <id> --environment-id "$OPERIO_ENV_ID" --wait`.
- Inspect failures with `operio runs get <run-id> --full`.
- If authentication fails (exit 3), ask me to refresh the session.
Read the failed step and evidence before changing the app or test.Set OPERIO_ENV_ID to your test environment. For mobile, use --build-id with an uploaded build instead.
Create, run, and inspect
Use a quoted heredoc to send JSON without shell expansion:
cat <<'JSON' | operio tests create --input -
{
"name": "Profile name is saved",
"description": "A QA user can update their display name",
"severity": "medium",
"steps": [
{ "order": 1, "type": "login", "testAccountId": "<test-account-id>" },
{ "order": 2, "type": "action", "instruction": "Open Profile settings, enter QA Reviewer as the display name, and click Save" },
{ "order": 3, "type": "verify", "assertion": "The profile shows QA Reviewer as the display name" }
]
}
JSONReplace the test account ID with one from the project. The command creates a draft and returns its ID. Review and publish it, then run:
operio tests activate <test-case-id>
operio tests run <test-case-id> --environment-id <env-id> --wait
operio runs get <run-id> --fullUse the result to decide whether to fix the app, clarify the test, or correct its setup. Rerun after the change. See the command reference for payload fields and flags.
For clients that support remote HTTP and OAuth, the MCP server provides access without a local CLI session.