Roborazzi
Roborazzi is a free, open-source library for screenshot testing in JVM Android integration tests.
What Roborazzi is
Roborazzi is a free, open-source library for screenshot testing in JVM Android integration tests. It records screenshots, compares them with saved images, and can fail verification when they differ. Through its Robolectric integration, screenshot tests can run as JVM tests without a device or emulator. Capture options include Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas. The project can generate screenshot tests for Jetpack Compose previews and supports Compose Multiplatform common previews. It also supports Compose Desktop and JVM preview screenshot tests, with images rendered using the host's Skia. Compose Multiplatform iOS support is experimental and includes recording, comparison, verification, and reports. Gradle tasks handle screenshot recording, comparison, and verification, and the documentation describes GitHub Actions workflows for checking screenshots in CI. An IntelliJ IDEA and Android Studio plugin displays test screenshots in the IDE. Roborazzi is available on Maven Central under Apache License 2.0. The project notes that rendering can vary between operating systems, and it has no direct support for running with Bazel.
Good
- Runs Robolectric screenshot tests without a device
- Captures Compose, Espresso, and Android Views
- Provides Gradle tasks for screenshot verification
- Documents GitHub Actions integration
Watch out
- No direct Bazel support
- Desktop and iOS support are experimental
- Rendering may vary across operating systems
Who it suits
Roborazzi suits Android and Compose developers who want screenshot checks in JVM tests or CI workflows. Teams considering desktop or iOS coverage should note that those platform paths are experimental.
Verdict
Roborazzi offers screenshot recording and verification across several Android and Compose workflows. Its platform maturity and rendering variation are worth considering when setting expectations for results.
Plans and prices
From Roborazzi's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Roborazzi | Free | Available on Maven Central · Apache-2.0 licensed |
The facts
Each one read from Roborazzi's own pages, with the date it was checked.
What it does
- Accessibility
- The project provides a Roborazzi Accessibility Checks library that integrates accessibility checks with Roborazzi.checked 8 Oct 2026
- AI assertions
- An experimental AI-powered image assertion feature has modules for Gemini and OpenAI, and the project also describes manual assertions that can use local or other LLMs.checked 8 Oct 2026
- Animated captures
- Roborazzi can capture GIFs and record UI animations as GIF or APNG; video recording is marked experimental and compare/verify mode does not record or verify it.checked 8 Oct 2026
- Bazel support
- The FAQ states there is no direct support for running Roborazzi with Bazel.checked 8 Oct 2026
- Capture APIs
- Screenshots can be captured from Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas.checked 8 Oct 2026
- CI
- The documentation describes integrating Roborazzi with GitHub Actions to store, verify, and compare screenshots.checked 8 Oct 2026
- CI integration
- The project documents GitHub Actions workflows for storing screenshots and verifying them in CI.checked 8 Oct 2026
- Compose and Views
- Screenshot capture supports Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas.checked 8 Oct 2026
- Compose previews
- It can generate screenshot tests for Jetpack Compose previews and supports Compose Multiplatform common previews.checked 8 Oct 2026
- Desktop support
- Roborazzi supports Compose Desktop and JVM preview screenshot tests, with screenshots rendered using the host's Skia.checked 8 Oct 2026
- IDE integration
- Its IntelliJ IDEA and Android Studio plugin displays screenshots from Roborazzi screenshot tests in the IDE.checked 8 Oct 2026
- Integrations
- Roborazzi is available on Maven Central and provides Gradle tasks for recording, comparing, and verifying screenshots.checked 8 Oct 2026
- License
- The repository identifies Roborazzi as licensed under Apache License 2.0.checked 8 Oct 2026
- Limitations
- The project states that Roborazzi has no direct support for running with Bazel.checked 8 Oct 2026
- Purpose
- Roborazzi is an open-source library for making JVM Android integration tests visible through screenshot testing.checked 8 Oct 2026
- Robolectric
- Roborazzi integrates with Robolectric and supports using Hilt in tests.checked 8 Oct 2026
- Screenshot testing
- It records screenshots, compares them with saved images, and can fail verification when images differ.checked 8 Oct 2026
- Security
- The AI assertion documentation advises passing API keys through environment variables rather than hard-coding them in code.checked 8 Oct 2026
- UI tree output
- An optional UI tree dump writes a machine-readable JSON sidecar alongside screenshots and is documented for Android/Robolectric, Compose Desktop, and Compose iOS.checked 8 Oct 2026
Where it runs
- Android testing
- Roborazzi integrates with Robolectric to run screenshot tests as JVM tests without requiring a device or emulator.checked 8 Oct 2026
- iOS limitation
- On iOS, capture calls require an explicit file path and image output is PNG only, without WebP encoding.checked 8 Oct 2026
- iOS support
- Experimental Compose Multiplatform iOS support includes screenshot recording, comparison, verification, and reports.checked 8 Oct 2026
- Known platform variation
- The project says graphics libraries can render differently across operating systems and does not guarantee identical screenshot rendering across environments.checked 8 Oct 2026
- Platform coverage
- The project documents Android, experimental Compose Desktop, and experimental Compose Multiplatform iOS support.checked 8 Oct 2026
The full review of Roborazzi
Roborazzi is a free, open-source screenshot testing library for Android and Compose projects. It is best suited to teams that want visual checks in JVM and Gradle test workflows, especially alongside Robolectric. Its broad capture options are useful, but experimental platform support and rendering differences call for care.
Overview
Roborazzi records screenshots, compares them with saved images, and fails verification when an image differs from its baseline. That turns visual changes into test results that can be checked locally or in CI, rather than leaving reviewers to spot them by eye. Because it integrates with Robolectric, Android screenshot tests can run as JVM tests without a device or emulator; the project also supports Hilt in tests.
Gradle tasks handle recording, comparison, and verification, and the project documents GitHub Actions workflows for storing and checking screenshots. Roborazzi is available on Maven Central under the Apache License 2.0. One practical concern is consistency: graphics libraries may render differently across operating systems, and identical output across environments is not guaranteed. Teams should keep baseline creation and verification environments consistent where possible.
Key features
Capture works with Jetpack Compose nodes, Espresso views, Android Views, and Compose lambdas. That range makes Roborazzi a plausible fit for Android teams with mixed UI stacks, rather than only projects built entirely around Compose.
It can generate screenshot tests from Jetpack Compose previews and supports Compose Multiplatform common previews. Compose Desktop and JVM preview screenshot testing extend its reach beyond Android, though desktop support is experimental and screenshots use the host's Skia renderer. Compose Multiplatform iOS support is also experimental and covers recording, comparison, verification, and reports. On iOS, capture requires an explicit file path and output is PNG only.
An IntelliJ IDEA and Android Studio plugin displays test screenshots in the IDE, while an optional UI tree dump creates a machine-readable JSON sidecar. The sidecar is documented for Android/Robolectric, Compose Desktop, and Compose iOS. A separate accessibility-checks library integrates accessibility checks with Roborazzi, giving teams a way to include those checks alongside visual work.
Animated UI can be captured as GIF or APNG, and Roborazzi can capture GIFs. Video recording is experimental; compare and verify mode does not record or verify video, so animation support should not be mistaken for a complete video regression workflow.
Experimental AI-powered image assertions have modules for Gemini and OpenAI. Manual assertions can also use local or other LLMs. These are optional extensions, not a reason to adopt the core screenshot workflow; when using API-based assertions, pass keys through environment variables rather than hard-coding them.
Pricing
Roborazzi is free: the Roborazzi plan costs nothing. It is available on Maven Central and licensed under Apache-2.0, so there is no paid tier or seat-based pricing to weigh. The tradeoff is operational rather than financial: teams need to account for platform maturity and rendering variation themselves.
Platforms
The project documents Android support, experimental Compose Desktop support, and experimental Compose Multiplatform iOS support. The broader platform tags include Linux, macOS, and Windows, but screenshot output can vary with the host operating system's graphics libraries. Roborazzi does not guarantee identical rendering across environments. It has no direct support for running with Bazel, which makes it a poor fit for teams that require a Bazel-native workflow.
Who it's for
Roborazzi is a strong candidate for Android teams already using Robolectric and Gradle that want screenshot capture across Compose and view-based UI, with verification in CI. Compose Multiplatform teams may also find value in its preview and experimental desktop or iOS workflows, provided they can work within those maturity limits. It is less suitable when identical cross-OS renders are essential, when iOS capture needs formats beyond PNG, or when Bazel is a requirement.
Pros and cons
- Broad Android capture: Compose nodes, Espresso, Android Views, and Compose lambdas cover several common UI approaches.
- Device-free Android tests: Robolectric integration lets screenshot tests run as JVM tests without an emulator or device.
- Useful workflow support: Gradle tasks, documented GitHub Actions workflows, and IDE screenshot display connect capture to development and CI.
- Platform caveats: Desktop and iOS support are experimental, while host rendering differences can complicate baseline consistency.
- Workflow exclusions: There is no direct Bazel support, and video cannot be compared or verified.
Alternatives
Compare visual regression testing software if you want to consider tools beyond Roborazzi's Android and Compose-oriented workflow.
- Loki is another free, MIT-licensed open-source option; consider it when its Android, iOS, Linux, macOS, self-hosted, web, and Windows platform coverage better matches your needs.
- Diffy may suit teams that prefer a hosted-style freemium plan: its free tier allows 500 screenshots per month, two environments, team management, and one month of data retention.
- Happo is worth considering for a stated free allowance of 5,000 snapshots per month with Chrome, visual and accessibility testing, and no credit card or time limit.
- Percy offers a free plan with 5,000 screenshots per month, unlimited users, and unlimited projects, which may fit teams seeking those stated quotas.
- SmartUI has a free allowance of 2,000 screenshots valid for a lifetime, one month of build history, and limited user seats; choose it if that allowance suits your expected volume.
- Frontend Regression Validator is another Apache-2.0 open-source option, with local or Docker runs and no paid plans stated.
- Galen Framework is a free Apache License 2.0 option for teams using Java 1.8 or greater.
- Lastest offers a self-hosted free plan with unlimited tests, replays, browsers, seats, and projects, plus bring-your-own AI and community support.
Verdict
Choose Roborazzi if you want a free way to bring screenshot recording and baseline verification into Android's Robolectric and Gradle workflows, with capture options spanning Compose and traditional views. Its strongest case is the device-free JVM test path; look elsewhere if your workflow depends on Bazel or requires predictable identical renders across operating systems.
Getting started
- Open the Roborazzi project on GitHub.
- Add Roborazzi through Maven Central.
- Use its Gradle tasks to record, compare, or verify screenshots.
- Integrate screenshot storage and verification into GitHub Actions if needed.
- Use the IntelliJ IDEA or Android Studio plugin to view test screenshots.
Questions
How much does Roborazzi cost?
The listed Roborazzi plan is free at no cost.
Is Roborazzi open source?
Yes. The project is licensed under Apache License 2.0.
Which platforms does it support?
The project documents Android, experimental Compose Desktop, and experimental Compose Multiplatform iOS support. The listed platforms also include Linux, macOS, and Windows.
Can screenshot tests run without an emulator?
Yes. Roborazzi integrates with Robolectric so Android screenshot tests can run as JVM tests without a device or emulator.
Does Roborazzi integrate with CI or IDEs?
It documents GitHub Actions workflows for screenshot storage and verification. Its IntelliJ IDEA and Android Studio plugin displays screenshots from tests in the IDE.
Does it support Bazel?
The project states that it has no direct support for running Roborazzi with Bazel.
Alternatives to Roborazzi
- 1

Happo
Free planAndroidiOSWebAPI8.1From $149 a month - 2
Screenster
Free planWebAPISelf-hostedWindows7.6From $25 a month - 3

Percy
Free planAndroidiOSWeb7.5From $199 a month - 4

Loki
Free planAndroidiOSWebLinux7.3Free plan - 5

SmartUI
Free planAndroidiOSWebAPI7.2From $199 a month - 6

Diffy
Free planWebAPILinuxmacOS7.0From $67 a month
