What's new
July 24, 2026 — submit feedback about Meticulous
meticulous agent submit-feedback(new) lets an agent send free-form feedback to the Meticulous team — whether Meticulous helped catch or debug a problem, what was confusing, and what information would have made the task easier. Optionally tag it with--outcome(helped/neutral/hindered), the related--testRunId, the--skillbeing followed, and--agentName/--agentModel.- The MCP server gained the matching
submit_feedbacktool.
meticulous agent submit-feedback --message="Caught a real regression in the checkout flow" --outcome="helped" --testRunId="<id>" --skill="meticulous-review"
July 21, 2026 — OAuth device flow login and project-level JS coverage
meticulous auth login --device(new) logs in via the OAuth 2.0 Device Authorization Grant: the CLI prints a URL and code you can open and confirm in a browser on any device, then polls until the grant is confirmed. Use this on remote or sandboxed machines (SSH sessions, containers, cloud coding agents) where a browser can't reach the CLI's localhost — unlike--non-interactive, which still requires opening the printed URL on the same machine as the CLI.meticulous agent js-coveragegained--latestForProject, which returns per-file coverage from the project's preferred latest successful test run.
July 20, 2026 — list a project's recently recorded sessions
meticulous agent sessions(new) lists a project's most recently created sessions, newest first — useful, for instance, for finding the id of a session you just recorded.meticulous agent trigger-test-rungained--maxDurationSeconds(ornonefor unlimited) to override the replay engine's duration cap on runs with pinned--sessionIds— useful, for instance, to prevent agent-recorded sessions from being cut at the default 5min cap.
meticulous agent sessions
meticulous agent sessions --createdSince="2026-07-01" --createdUntil="2026-07-10"
meticulous agent sessions --recordedBy="user@example.com" --visitedUrlFilter="*/checkout*"
meticulous agent sessions --recordedSince 2026-07-10 --excludeSyntheticSessions --limit 10
meticulous agent trigger-test-run --sessionIds="<id1>,<id2>" --maxDurationSeconds=none
July 16, 2026 — MCP server for agents
The Meticulous MCP server exposes the agent CLI's read and analysis commands as tools your coding agent can call directly — see the MCP server page for setup and the full list of available tools. Every read-only agent command has a matching tool; the two mutating ones, upload-build and trigger-test-run, aren't exposed yet but are coming soon.
July 13, 2026 — review-state aware test-run-diffs, diff counts, and per-account default project
meticulous agent test-run-diffsnow understands PR review state, and can report totals without the full list:Flag What it does --includeReviewDecisionsAdd a decisioncolumn with each diff's PR review decision (accepted/rejected/ignored/unreviewed;unreviewedwhen undecided or there's no PR)--onlyUnreviewedReturn only the diffs still awaiting review — everything left to look at, across every difference (implies --includeAllDiffs, so theisSelectedcolumn is included)--countsPrint just the aggregate totals — number of replays, number of differences, and the review-decision breakdown (approved / ignored / rejected / unreviewed) — instead of the per-diff list Your default project is now a per-account setting, too:
meticulous auth set-projectnow persists your default project on your Meticulous account instead of a local file — so it's consistent across machines and available to the MCP server.meticulous auth logoutleaves it untouched.meticulous auth get-project(new) prints your default project, which you can also view and change from your user settings in the web app.meticulous agent test-run-for-commit,test-run-diffs,js-coverage, andtrigger-test-rungained--project— a one-off override (id,organization/nameslug, or unique bare name) for that call only, which doesn't change your stored default.
meticulous auth set-project --project="my-org/my-project" meticulous auth get-project meticulous agent js-coverage --project="my-org/my-project"
July 10, 2026 — test-run-diffs is differences-only
meticulous agent test-run-diffs no longer returns matching screenshots — it reports only genuine visual differences, the same set Meticulous counts and displays everywhere else. The --includeMatches flag is removed.
July 7, 2026 — get combined coverage from multiple test runs
meticulous agent js-coverage gained --headPlusTestRunIds and --testRunIds for unioning coverage across several test runs (same project, same commit) — e.g. combining a run's head coverage with a separate run triggered via agent trigger-test-run --sessionIds="<ids>" to assess how these sessions improve coverage.
meticulous agent js-coverage --headPlusTestRunIds="<id1>,<id2>"
meticulous agent js-coverage --testRunIds="<id1>,<id2>,<id3>"
July 6, 2026 — consistent machine-readable output for agent & auth
agentandauthcommands gained--jsonfor JSON-structured output instead of default format.agentandauthcommands also gained--verbose, which prints additional progress logs on stderr.--rawJsonis renamed to--jsonArgs(old name still works, now deprecated).
meticulous agent js-coverage --json
meticulous auth whoami --json
July 1, 2026 — more coverage info, session pinning, and non-interactive login
meticulous agent js-coveragegained new flags for richer per-file coverage data:--includeExecutableRanges,--includeUncoveredRanges,--includeCoveragePercentage, and--prDiffOnly(test-run queries only), plus--includeAllFilesand--globFilter(also for replay and replay-diff queries).meticulous agent trigger-test-runcan now run with no arguments at all — it infers the already-uploaded deployment for your local HEAD commit.meticulous agent trigger-test-runnow accepts--sessionIds, a comma-separated list of session IDs to replay for both the base and the head, instead of the project's auto-selected golden set.meticulous agent trigger-test-runnow also accepts--commitShaas an alternative to--deploymentId, resolving to the most recently uploaded deployment for that commit — useful for re-triggering a run against a commit that has already gone through Meticulous.meticulous auth login --non-interactivelets the login flow run without a TTY: it prints the login URL instead of opening a browser.
meticulous agent js-coverage --includeCoveragePercentage --prDiffOnly
meticulous agent trigger-test-run
meticulous agent trigger-test-run --deploymentId="<id>" --baseSha="<base-sha>" --sessionIds="<id1>,<id2>"
meticulous agent trigger-test-run --commitSha="<sha>" --baseSha="<base-sha>"
meticulous auth login --non-interactive --project="my-org/my-project"
June 29, 2026 — separate build upload from triggering a test run
Two new agent commands, upload-build and trigger-test-run, give agents their own counterparts to the CI upload commands (ci upload-assets / ci upload-container) — and split building and uploading your app from kicking off a test run. You can now upload a build once, capture its deployment ID, and trigger one or more runs against it independently. Git options such as the commit SHA are resolved automatically from your local repository.
# Upload a static build (or a container image) and capture the deploymentId
meticulous agent upload-build --appDirectory="<path-to-build>"
meticulous agent upload-build --localImageTag="<image-tag>"
# Trigger a run against an uploaded build
meticulous agent trigger-test-run --deploymentId="<id>"
June 24, 2026 — smoother authentication and non-interactive project selection
Authentication is easier to drive from scripts and agents, and a stored login is no longer shadowed by a stale token.
- A logged-in OAuth session now takes precedence over a stale
METICULOUS_API_TOKENor~/.meticulous/config.jsontoken, so you won't get silently stuck on an expired credential. meticulous auth login(new) forces a fresh browser login and then selects a project.meticulous auth whoaminow also reports which credential is actually in use.meticulous auth logoutnow also clears the selected project, and warns if an environment-variable or config-file token will keep being used.meticulous auth list-projects(new) lists the projects you can access.- Argument
--project org/project(new) onlogin/set-projectlets you select a project non-interactively.
meticulous auth login --project="my-org/my-project"
meticulous auth list-projects
June 19, 2026 — richer, curated test-run-diffs output
By default, meticulous agent test-run-diffs now returns a curated, priority-ordered set of the most relevant visual differences as a single flat list. New flags let you control what comes back:
| Flag | What it does |
|---|---|
--includeDomDiffIds | Include DOM-diff IDs for each screenshot |
--includeAllDiffs | Return every diff, not just the curated set (adds an isSelected column) |
--includeMatches | Include matching and known-flaky screenshots too, not just differences (implies --includeAllDiffs) |
--orderByReplayDiffs | Order by replay then event index instead of priority |
Polling output is also quieter, and runs that can't produce diffs now fail fast with a clear message.
June 12, 2026 — JavaScript coverage and lookup by commit
New agent commands surface the JavaScript code coverage captured during replays, and let you resolve a test run straight from a commit — so an agent can go from local git context to the right run without tracking run IDs.
meticulous agent js-coverage # coverage for a test run (defaults to the current git HEAD)
meticulous agent js-coverage-diff # base-vs-head coverage diff for a replay diff
meticulous agent test-run-for-commit # the latest test run for the current commit