
argos-cli
Operate Argos visual testing from the terminal with the argos CLI — inspect builds and snapshot diffs, submit reviews, request reviewers, post comments, inspect a test's flakiness and its recurring changes, ignore flaky test changes, configure a project and its contributors, manage a team's members, invites and email domains, manage automation rules, fetch analytics, upload screenshots, and manage CI builds. Use whenever running argos commands or working with Argos builds, snapshots, flakiness, projects, teams, or visual-regression reviews from a shell, script, or CI pipeline. Load before running argos — it covers the token model and JSON output contract that prevent silent failures.
- Installs
- 761
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/argos-ci/argos-javascript --skill argos-cli- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads argos-cli automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Argos CLI
Run argos <command> --help for the exact flags of any command. This skill
covers only what --help can't: the token model, the output contract, and the
command map.
Output contract (agents)
- Pass
--jsonwhenever you parse stdout; commands print human-readable text otherwise. - Errors go to stderr as
Error: <message>. Exit0= success,1= failure. - Never print token values.
Authentication
A <buildReference> is a build number (e.g. 72652) or a full build URL. With a
number, add --project owner/project; a URL already contains it. A <changeId>
is not a build ref: it comes from a diff's change.id and does not carry the
account, so every change command needs --project owner/project (or
ARGOS_PROJECT). A <testId> comes from a diff's test.id and carries the
project name but not the account, so test commands need the same
--project/ARGOS_PROJECT — except with a project token, which already
identifies its own project. project and automation commands take the same
--project owner/project; account commands take --account <slug> (or
ARGOS_ACCOUNT).
Two token types — pick by command:
| Commands | Token | Resolution order |
|---|---|---|
build get, build snapshots, test list, test get, test changes, change list, project get, project deployments, project domain get, media get, media list, media versions, media update, media delete | Project token | --token › ARGOS_TOKEN |
review *, comment *, test comment *, media comment *, test subscribe / unsubscribe, build subscribe / unsubscribe, change ignore / unignore, account *, project update, project transfer, project contributor *, project domain set, automation *, analytics, create-project | Personal access token (PAT) | --token › ARGOS_TOKEN › argos login |
upload, finalize, skip, deploy, media upload | CI / project token | --token › ARGOS_TOKEN (or tokenless CI) |
Project tokens read build data but cannot review, comment, ignore changes, or
administer a project or team — those need a PAT. If no suitable token is
available, ask the user. For these actions, if no PAT exists, report the
conclusion and evidence instead of acting. argos login is for interactive
humans, not CI.
Commands
- Inspect —
build get <ref>·build snapshots <ref> [--needs-review] [--metrics-period 24h|3d|7d|30d|90d]·build subscribe|unsubscribe <ref> - Review —
review list <ref>·review create <ref> --event <approve|reject|comment> [--body <md>]·review dismiss <ref> <reviewId>·review reviewer list <ref>·review reviewer add|remove <ref> <userId...> - Comment —
comment list <ref>·comment create <ref> --body <md> [--reply-to <id>] [--diff <id>] [--draft]·comment get|edit|delete|resolve|unresolve|subscribe|unsubscribe <ref> <id>·comment react|unreact <ref> <id> <emoji> - Flakiness —
test list [--build-name <name>] [--search <q>]·test get <testId>·test changes <testId> [--ignored true|false] [--metrics-period …]·test subscribe|unsubscribe <testId>·change list·change ignore|unignore <changeId> --project owner/project - Test comments —
test comment list|create <testId>·test comment get|edit|delete|resolve|unresolve|subscribe|unsubscribe <testId> <id>·test comment react|unreact <testId> <id> <emoji> - Project —
project get·project update [--name …] [--summary-check …] [--default-user-level …] [--ignore-changes true|false] [--deployments true|false] …·project transfer --to <slug>·project contributor list|set|remove·project deployments [--environment preview|production]·project domain get|set <domain> - Automation —
automation list [--active true|false]·automation get <ruleId>·automation create|update [<ruleId>] --definition-file <path>·automation deactivate <ruleId> - Team —
account get·account update --default-user-level <member|contributor>·account member list|set-level|remove·account invite list|create|cancel|reset-link·account domain list|add|remove - Account —
analytics --account <slug>·create-project <name> --account <slug>·whoami - Media —
media upload <files...> [--branch <b> | --pr <n>] [--state before|after] [--description <text>] [--visibility team|public] [--no-compress]·media list [--branch <b>] [--pr <n>] [--stage staged|published] [--search <q>] [--type image|video]·media get|delete|versions <mediaId>·media update <mediaId> [--name <n>] [--description <text>] [--branch <b>] - Media comments —
media comment list <mediaId> [--all](open threads by default) ·media comment create <mediaId>·media comment get|edit|delete|resolve|unresolve|subscribe|unsubscribe <mediaId> <id>·media comment react|unreact <mediaId> <id> <emoji> - CI —
upload <dir>·finalize·skip·deploy <dir> - Auth —
login·logout
List commands (test list, change list, account member list, project contributor list, project deployments, automation list, account invite list) follow pagination up to --limit (default 100).
build snapshots --json enriches each diff with test.metrics (flakiness:
stability, consistency, flakiness, all 0–1) and, on a change, change
(id, ignored, occurrences). High occurrences or flakiness flags a
change worth ignoring; pass its change.id to change ignore.
Common flows
Review a build (inspect with a project token, decide with a PAT):
ARGOS_TOKEN=<project-token> argos build snapshots <ref> --needs-review --json
argos review create <ref> --token <pat> --event approve --json
# regression: argos review create <ref> --token <pat> --event reject --body "..."
Silence a flaky change (inspect with a project token, ignore with a PAT). Ignored changes stop requiring review and are auto-approved on future builds:
ARGOS_TOKEN=<project-token> argos build snapshots <ref> --json # read each diff's change.id + occurrences
argos change ignore <changeId> --token <pat> --project owner/project
# revert: argos change unignore <changeId> --token <pat> --project owner/project
Work through a project's flakiness backlog. test list returns the tests still
running in the project, flakiest first, so the first page is what to stabilise;
change list audits what has already been silenced:
ARGOS_TOKEN=<project-token> argos test list --project owner/project --json --limit 20
ARGOS_TOKEN=<project-token> argos change list --project owner/project --json # already ignored
Diagnose a flaky test before deciding whether to fix it or ignore it. test get
reports how flaky it is; test changes lists the distinct changes most-frequent
first, each with the diff, baseline and head image URLs to look at:
ARGOS_TOKEN=<project-token> argos test get <testId> --json # flakiness, stability, consistency, series
ARGOS_TOKEN=<project-token> argos test changes <testId> --json # occurrences + diff/base/head URLs per change
# a change with occurrences > 1 that nothing in the UI explains is flaky:
argos change ignore <changeId> --token <pat> --project owner/project
Upload screenshots in CI:
argos upload ./screenshots --token $ARGOS_TOKEN
Parallel builds:
argos upload ./screenshots --parallel-nonce $ID --parallel-index $i --parallel-total $n
argos finalize --parallel-nonce $ID
Onboard someone onto a team and a project. Team roles come from account,
per-project access from project contributor — owners and members already reach
every project, so contributors are the only ones that need a grant:
argos account invite create dev@acme.com --account acme --level contributor --json
argos account member list --account acme --search dev --json # read back user.id once they accept
argos project contributor set <userId> --level reviewer --project acme/web --json
Configure a project. project update only changes the settings you pass, and
prints the project back so you can check what it ended up with:
argos project get --project acme/web --json
argos project update --project acme/web --summary-check auto --ignore-changes true --auto-ignore-after 3 --json
Ask for a review on a build, then check who is still on the hook:
argos review reviewer add <ref> <userId> --token <pat> --project acme/web
argos review reviewer list <ref> --token <pat> --project acme/web --json
FAQ
What does the argos-cli skill do?
Operate Argos visual testing from the terminal with the argos CLI — inspect builds and snapshot diffs, submit reviews, request reviewers, post comments, inspect a test's flakiness and its recurring changes, ignore flaky test changes, configure a project and its contributors, manage a team's members, invites and email domains, manage automation rules, fetch analytics, upload screenshots, and manage CI builds. Use whenever running argos commands or working with Argos builds, snapshots, flakiness, projects, teams, or visual-regression reviews from a shell, script, or CI pipeline. Load before running argos — it covers the token model and JSON output contract that prevent silent failures.
How do I install argos-cli?
Run npx skills add https://github.com/argos-ci/argos-javascript --skill argos-cli in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/argos-cli/ (personal) or .claude/skills/argos-cli/ (project).
Which AI agents can use argos-cli?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is argos-cli safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains argos-cli?
It is published by argos-ci in argos-ci/argos-javascript. It has 761 recorded installs.
More from argos-ci/argos-javascript
argos-pr-review
argos-ci/argos-javascript
Review Argos visual regression builds as one input to a pull request review. Use when a PR has an Argos build link, an Argos status check, or a bot comment pointing to an Argos build, and you need to decide whether the visual diffs match the developer's intent before approving.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work