Skip to main content



  • In crawl wait, for accessibility crawls, wait for audit jobs to be added to the crawl before waiting for those jobs to complete.
    • Fixes an issue where, immediately after completing, a crawl's list of accessibility audits would be empty until the audits were started by the pod.


  • Use journey scripts in crawl start, fixing issue with shallow crawls
  • Add --help documentation to mesmer crawl subcommands
  • Wait for a11y crawls to be stored before completing mesmer crawl wait


  • Change the TLS backend back to system TLS, fixing a panic on launch


  • Fix a bug parsing a11y audit results with missing screens[].results fields
  • Fix a bug where a11y audits had missing ceExecutionId fields
  • Enable error reporting for the Execution 2.0 APIs


  • Website: Only accept work emails in the download form


Breaking changes

These changes will break any remaining Crawl 1.0 workflows.

This release removes support for Crawl 1.0, and adds support for Crawl 2.0 in its place.

  • Implement mesmer crawl {describe, history, start, templates, wait}
  • Implement mesmer a11y audit
  • Re-implement accessibility audit waiting


  • Update a11y API client to accomodate breaking changes in compliance engine


  • Sidecar: Add support for Android devices with API level 26 or greater
  • Docs: Add several missing reference pages back to the sidebar


  • Docs: don't autofocus email field


  • Docs: Make all landing-page links absolute
  • Docs: Fix right-alignment of download widget on Sidecar landing page


  • Docs: Fix Sidecar landing page link, which was broken on certain platforms.
  • Sidecar: Add email to error messages and landing page
  • Sidecar: Docs: Document known isues and macOS caveats


  • Sidecar: improve ADB installation errors, add helpful error text
  • Sidecar: kill old instances if their target apps are still running
  • Sidecar: Page-align resigned APKs, so native libraries can work properly.
  • Sidecar: Timeout if the app crashes on launch, printing a helpful error message
  • Sidecar: docs: Add beta warnings to website


  • Add Sidecar landing page to docs
  • Add Sidecar evaluator for WCAG 2.5.5: Target Size


  • Match URL structure of old docs in new documentation site, with client-side redirects where possible


  • Fix parse error when crawl history contains an unset revision field
  • Move docs website to Docusaurus


  • Update docs on Sidecar environment requirements
  • Sidecar: handle unauthorized ADB devices
  • Sidecar: handle cases where the uses hasn't accepted the Android SDK EULA


  • Include subcommand, OS version in telemetry pings, and make this clear in the docs.


  • Add telemetry, collect emails for CLI downloads
  • Add support for the Mesmer Sidecar
  • Add the Mesmer Sidecar WCAG evaluation engine


  • Fix parse error related to more missing fields in 'a11y policies'


  • Fix parse error in a11y policies involving optional _revision field
  • Fix 'Not Found' errors in a11y describe related to bad crawl data


  • Fix parse error involving device resolutions presenting as empty strings.


  • Fix parse error involving device resolution


  • Remove 'mesmer a11y activate'
  • Fix parse error caused by removed properties on a11y audits
  • Poll for a11y report creation in 'a11y wait'


  • Add --device flag to mesmer test start. This behaves differently from the old --devices flag, which was deprecated.


  • Fix parse error where certain longPress test events did not have a touchDuration.


  • Fix pagination bug where 'project list' only returned a maximum of 10 projects


  • Fix race condition in 'a11y wait' which could cause an early return
  • Update dependencies, compiler versions


  • Fix parse issue on optional build configuration field


  • Fix parse issue while authenticating SSO users


  • Fix documentation of 'mesmer data' to reflect removed data-updating features
  • Clarify output of 'mesmer util env'


  • Fix several parse errors within step-level test results


  • Fix a parse error in crawl history where the test device is sometimes null


  • Fix a parse error in build description


  • Update CI integration documentaion for clarity
  • Fix a parse error for detailed test results involving failed long-taps


  • Deprecate --no-a11y. A11y audits are disabled by default, and enabled with the --a11y flag.
  • Deprecate --devices; the option is now ignored.


  • Remove old test data support, add mesmer data describe to list all test data
  • Add support for selecting a11y audit for individual crawls with --a11y-audit <id>
  • Add support for selecting test data for individual crawls with --test-data <id>


  • Implement --no-wait flag on crawl start
  • Fix a parse error for device resolution in crawl history


  • Implement mesmer crawl history
  • Update the logic used to determine when a build is done uploading and ready to install


  • Switch to rustls instead of system TLS backend (libssl, stunnel, et al). Note that rustls is still configured to read the system certificate store.
  • Support new API schema for wrapped builds


  • Implement mesmer test tag
  • Add support for HTTPS_PROXY, certificate trust override.
  • Allow build deletion for projects without test cases
  • Show all test runs in mesmer test detail
  • Validate auth tokens locally before use
  • Fix issue where a11y results weren't polled to completion
  • Fix issue where certain paginated responses would be truncated
  • Fix issue where mesmer test wait would poll indefinitely with subset test runs
  • Fix parse error for long-press end coordinates
  • Fix parse error with test screen images
  • Fix parse issue for testcase detectElementAtReplay field


  • Fix parse error with 'killApp' test steps
  • Include request URL in malformed-response errors


  • Clarify documentation placeholder for argument ID types


  • Reduce default crawl duration to 45 min


  • Pass through individual network errors in ('auth list')
  • Implement 'mesmer a11y wait' to wait for an a11y crawl result


  • Add signedURI attribute for screenshot images in mesmer a11y describe


  • Implement long-lived token authentication
    • If the backend supports it, issue (or reissue) a long-lived account token when you run mesmer auth login
    • Keep support for temporary (1-day) logins with a session token, if we can't get our hands on an account token.
  • Change mesmer auth login --tenant <tenant> to mesmer auth login <tenant> for consistency with the rest of the CLI
  • Add mesmer auth remove to delete a saved credential


  • Fix parse issue with errored a11y results
  • Restrict build uploads to supported formats (.apk, .ipa, .zip)


  • Pass through detailed violation attributes on 'a11y describe', such as activity and fragment class.


  • Fix parse failure deleting builds
  • Improve 'not found' errors in several places


  • Accept multiple arguments to 'test stop', 'crawl stop'
  • Fix parse issue when stopping an already-stopped crawl


  • Fix regression in a11y describe due to API change


  • Support device RELEASING status
  • Ensure builds install correctly after upload
  • Documentation layout fixes


  • Fix regression in build uploads (due to API change) where newly-uploaded builds did not show up in build list.



  • Add a11y support: ability to start audits, gather audit results, and inspect policies
  • Add support for gathering step-level test results


  • Update due to changes in API


  • Implement 'mesmer device jobs' to view job queue
  • Implement 'mesmer data fetch' to get test data
  • Clarify logic for selecting compatible test devices: by default, tests will run on any compatible device, and manual selections will now include devices-in-use (spilling into the queue if necessary).


  • Implement 'mesmer data schema' to get test-data schema
  • Implement 'mesmer data apply' to update test data in a project
  • Implement 'mesmer data create-example' to template out example test data.
  • Fixed bug where --json required you to pass it a value
  • Improve the CI guide documentation with more clear configuration advice, and with instructions on using the test data subcommands.


  • Fixed parse failure when describing unexecuted test case.
  • Fixed parse failure for projects with associated device containing no udid field.


  • Implement 'mesmer project update' to rename a project.
  • Implement 'mesmer crawl wait' to wait for crawl results.
  • Include each screen's type in description of crawl


  • Fix the (23) Failed writing body error in the macOS install snippet, running on bash 3.2.


  • Create install.ps1 install script for Windows.


  • Statically link Windows binaries, avoiding VCRUNTIME140.dll not found errors when the user doesn't have the VC++ runtime installed.


  • Implement install scripts (via curl | bash) for Linux and MacOS. This also solves problems with Gatekeeper and notarization on macOS.
  • Improve error handling for permission failures when installing updates. You'll now get prompted to run under sudo.


  • Implement '-y' flag and interactive confirmation for mesmer version update
  • Refactor to reduce unhandled errors
  • Enable usage without .mesmer.yml for commands that don't require a project, like mesmer device list


  • Implement test skipping, --test-devices, --tags for mesmer submit.
  • Improve documentation of mesmer init
  • Clarify usage of --tenant in the docs.
  • Send User-Agent and X-Mesmer-Cli-* family of identifying headers with every request.
  • fix: error parsing when logging in to a user without an avatar
  • Create this changelog!


  • Render TUI prompts for selecting tenants and projects.
  • fix: error parsing stats field of TestResponse.
  • fix: respect global --batch option.


  • Move long names to the last column in mesmer test list and mesmer test results.
  • fix: erratum describing mesmer init in


  • Create this documentation!
  • mesmer submit: include buildId and crawlId in the output.


  • Check for updates in the background for every long invocation.
  • Implement --devices argument for mesmer test.
  • Implement mesmer test wait.
  • Implement mesmer test browse and mesmer crawl browse.
  • fix: add rebooting device status.