Roborazzi
Communitytakahirom
Use when working with Roborazzi screenshot tests on Android/JVM — setting up the Roborazzi Gradle plugin, running record/compare/verify tasks, writing tests with captureRoboImage or RoborazziRule, Compose Preview screenshot testing (ComposablePreviewScanner), Compose Multiplatform (iOS/desktop) screenshots, AI-powered image assertions, roborazzi.* Gradle properties, or troubleshooting Roborazzi/Robolectric screenshot test failures.
Overview
- Repository
- takahirom/roborazzi
- Publisher
- takahirom
- Stars
- 1.1K
- Forks
- 67
- Bundled files
- 13
- License
- Apache-2.0
- Updated
- Nov 13, 2026
Installation
tmp=$(mktemp -d)
git clone --depth 1 https://github.com/takahirom/roborazzi.git "$tmp"
mkdir -p ~/.claude/skills
cp -R "$tmp/skills/roborazzi" ~/.claude/skills/roborazzi
rm -rf "$tmp"tmp=$(mktemp -d)
git clone --depth 1 https://github.com/takahirom/roborazzi.git "$tmp"
mkdir -p ~/.codex/skills
cp -R "$tmp/skills/roborazzi" ~/.codex/skills/roborazzi
rm -rf "$tmp"Install the Roborazzi agent skill from https://github.com/takahirom/roborazzi/tree/main/skills/roborazzi into this project's skills folder.Instructions
Roborazzi
Roborazzi is a screenshot testing library for Android that runs on the JVM using Robolectric Native Graphics, so screenshot tests run as JVM unit tests without a device or emulator. It works with plain Android views, Jetpack Compose (including Compose Previews), and Compose Multiplatform.
The typical workflow: record baseline images with ./gradlew recordRoborazziDebug, then compare or
verify against them with compareRoborazziDebug / verifyRoborazziDebug (task names vary by
variant; see the build setup reference).
Reference index
Read the reference that matches the task at hand:
| File | Read when |
|---|---|
| references/top.md | You need an overview of what Roborazzi is and why to use it over device tests or Paparazzi. |
| references/try_it_out.md | You want a minimal quick start or a sample project to try Roborazzi. |
| references/build_setup.md | Setting up the Gradle plugin and dependencies, or running/understanding the record/compare/verify Gradle tasks and their outputs. |
| references/how_to_use.md | Writing tests: captureRoboImage for views/Compose/Espresso, RoborazziRule and its options, output paths and file naming, RoborazziOptions (thresholds, image comparators, dump mode), accessibility legend. |
| references/gif_and_video.md | Capturing GIFs and videos of test interactions: captureRoboGif, recordRoboVideo / recordScreenRoboVideo, RoboVideoOptions, GIF vs APNG output. |
| references/ui_tree_dump.md | UI tree dump: the machine-readable .uitree.json semantics sidecar and annotated Set-of-Mark image for tools & AI agents (roborazzi.dumpUiTree, uiTreeDumpOptions), including the verify-a-UI-fix-by-bounds workflow. |
| references/github_actions.md | Setting up GitHub Actions CI for Roborazzi: workflows that store baseline screenshots, verify them, and compare snapshot results on pull requests. |
| references/preview_support.md | Generating screenshot tests from @Preview composables with ComposablePreviewScanner, including setup and customization of preview tests. |
| references/compose_multiplatform.md | Screenshot testing Compose Multiplatform targets (iOS, desktop/JVM), including feature support per platform. |
| references/ai_powered_image_assertion.md | Asserting screenshot content with AI models (OpenAI, Gemini) via roborazzi-ai modules. |
| references/gradle_properties_options.md | Configuring roborazzi.* Gradle properties: task behavior, output directory, file-name strategy, comparison report settings. |
| references/idea_plugin.md | Using the Roborazzi IntelliJ IDEA / Android Studio plugin to view screenshots in the IDE. |
| references/faq.md | Troubleshooting: common errors, CI setup questions, Robolectric configuration issues, and other frequently asked questions. |
The files under references/ mirror the official Roborazzi documentation at the time this skill
was published. The latest version is always available at
the documentation site.
Bundled files
references/ai_powered_image_assertion.md5 KBreferences/build_setup.md8 KBreferences/compose_multiplatform.md7 KBreferences/faq.md7 KBreferences/gif_and_video.md8 KBreferences/github_actions.md4 KBreferences/gradle_properties_options.md4 KBreferences/how_to_use.md11 KBreferences/idea_plugin.md778 Breferences/preview_support.md20 KBreferences/top.md3 KBreferences/try_it_out.md758 Breferences/ui_tree_dump.md6 KB
FAQ
What does Roborazzi do?
Use when working with Roborazzi screenshot tests on Android/JVM — setting up the Roborazzi Gradle plugin, running record/compare/verify tasks, writing tests with captureRoboImage or RoborazziRule, Compose Preview screenshot testing (ComposablePreviewScanner), Compose Multiplatform (iOS/desktop) screenshots, AI-powered image assertions, roborazzi.* Gradle properties, or troubleshooting Roborazzi/Robolectric screenshot test failures.
Who made Roborazzi?
takahirom (a community member) publishes it in the takahirom/roborazzi repository on GitHub.
Is Roborazzi free?
Yes. Roborazzi is open source, published by takahirom under the Apache-2.0 license.
What comes with Roborazzi?
Its instructions and 13 files the agent reads only when a task needs them, such as references, examples or scripts.
Which agents can use Roborazzi?
Any coding agent that reads SKILL.md files, including Claude Code, Codex, Cursor, GitHub Copilot and Gemini CLI. The agent loads the skill when a task matches its description.
What are agent skills?
An agent skill is a folder with a SKILL.md file: instructions that teach a coding agent how to do one kind of task, and optionally files it can read while it works. The agent keeps only the skill's name and description in mind and reads the rest when a task calls for it.
How are agent skills different from MCP servers?
An MCP server gives an agent new tools to call, code that runs somewhere and returns results. A skill gives it knowledge: how to approach a task with the tools it already has. Many agents use both.
How can my agent test my Android app?
Robomori lets coding agents create, start and control Android emulators and devices from one command, so they can install your app, take screenshots and check dark mode, font sizes and languages.