Release Changelog
sk2andy/candy-browser
Create or update Candy Browser's English, image-rich, versioned release notes for the in-app What's New presentation and the matching GitHub release.
Analyze an Android pull request, branch, commit, or patch for user-visible changes and produce reproducible before/after screenshots from isolated builds.
$ npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install permissionlesstech/bitchat-android android-ui-visual-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/android-ui-visual-review .claude/skills/android-ui-visual-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "android-ui-visual-review" agent skill from https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-review into .claude/skills/android-ui-visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-ui-visual-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install permissionlesstech/bitchat-android android-ui-visual-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/android-ui-visual-review .agents/skills/android-ui-visual-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "android-ui-visual-review" agent skill from https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-review into .agents/skills/android-ui-visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-ui-visual-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install permissionlesstech/bitchat-android android-ui-visual-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/android-ui-visual-review .cursor/skills/android-ui-visual-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "android-ui-visual-review" agent skill from https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-review into .cursor/skills/android-ui-visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-ui-visual-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/permissionlesstech/bitchat-android.git --path .agents/skills/android-ui-visual-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install permissionlesstech/bitchat-android android-ui-visual-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/android-ui-visual-review .gemini/skills/android-ui-visual-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "android-ui-visual-review" agent skill from https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-review into .gemini/skills/android-ui-visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-ui-visual-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install permissionlesstech/bitchat-android android-ui-visual-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/android-ui-visual-review .github/skills/android-ui-visual-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "android-ui-visual-review" agent skill from https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-review into .github/skills/android-ui-visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-ui-visual-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install permissionlesstech/bitchat-android android-ui-visual-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/android-ui-visual-review .opencode/skills/android-ui-visual-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "android-ui-visual-review" agent skill from https://github.com/permissionlesstech/bitchat-android/tree/main/.agents/skills/android-ui-visual-review into .opencode/skills/android-ui-visual-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "android-ui-visual-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
android-ui-visual-reviewAnalyze an Android pull request, branch, commit, or patch for user-visible changes and produce reproducible before/after screenshots from isolated builds.
Android UI Visual Review is an agent skill from permissionlesstech/bitchat-android. Analyze an Android pull request, branch, commit, or patch for user-visible changes and produce reproducible before/after screenshots from isolated builds. Use this skill whenever a user asks for PR screenshots, branch UI comparisons, visual regression evidence, Compose before/after captures, populated message-state screenshots, responsive/theme/locale comparisons, or GitHub comments containing Android UI evidence—even if they only say “show me what changed.” Also use it to determine and document that a suspected…
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts, reference files and assets (for example `assets/capture-manifest.example.json`, `assets/pr-comment-template.md` and `evals/evals.json`). Compatibility notes: Requires git, the Android SDK and emulator, adb, Java/Gradle, Python 3, and gh for pull-request resolution or publishing.
It sits in Development, covering Android development and Visual regression testing. It works with Android and GitHub. The repository describes itself as: decentralized mesh chat. The licence is GPL-3.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6803d6d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (Python and Shell), which the agent can run.
Shell commands in SKILL.md call:
adbpython3gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires git, the Android SDK and emulator, adb, Java/Gradle, Python 3, and gh for pull-request resolution or publishing.
From compatibility in the SKILL.md frontmatter.
Android UI Visual Review loads about 2.6k tokens when it runs, and up to ~6.7k if it reads all its reference files. Until then it costs about 171 tokens; SKILL.md has 1,260 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from permissionlesstech/bitchat-android at commit 6803d6d, republished under its GPL-3.0 licence (© permissionlesstech). 1,260 words, ~2,650 tokens.
.claude/skills/android-ui-visual-review/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.Turn a PR or branch into trustworthy visual evidence. The comparison is useful only when the before and after builds use the correct commits, Android runtime, viewport, app state, and navigation path.
Before starting, resolve:
main.Do not block on publishing preference while doing read-only analysis if the user has not answered yet. Keep the local workflow useful on its own.
Never switch the user's active checkout between before and after revisions. Run from the repository root:
.agents/skills/android-ui-visual-review/scripts/create_review_worktree.sh \
--target "<PR URL, PR number, branch, or commit>"For a branch with a non-default base:
.agents/skills/android-ui-visual-review/scripts/create_review_worktree.sh \
--target "<branch>" \
--base "<base ref>"The script fetches a PR head when needed, computes the actual merge-base, creates a detached temporary worktree at the before SHA, and prints:
Keep artifacts outside the worktree so checkouts cannot remove them. The script
may symlink the ignored local.properties into the temporary worktree; never
publish it or quote its contents.
If a review session already exists and its SHAs are verified, reuse it. Do not create a second worktree for the same run.
Use the actual diff, not the PR title, to determine what should be visible.
git diff --stat, --name-status, and the focused diff between the
before and after SHAs.When the diff contains no UI/resource/state-to-UI change, say so. If the user asked for a screenshot for every target, capture the nearest affected surface before and after and label the expected result no visual delta. Do not invent a UI claim for a behavioral fix.
Prefer an emulator for repeatable UI evidence. At run time:
-sysdir override with an isolated data
directory is acceptable.adb -s "$ANDROID_REVIEW_SERIAL" shell getprop ro.build.version.release
adb -s "$ANDROID_REVIEW_SERIAL" shell getprop ro.build.version.sdk
adb -s "$ANDROID_REVIEW_SERIAL" shell getprop ro.build.version.security_patch
adb -s "$ANDROID_REVIEW_SERIAL" shell wm size
adb -s "$ANDROID_REVIEW_SERIAL" shell wm densityUse an explicit emulator serial for every ADB command when any physical device is also connected. Never put serials, device names, local paths, IP addresses, or other machine identifiers into reports or GitHub comments.
Use a physical device only when the affected UI depends on hardware that the
emulator cannot reproduce. Ask before changing or clearing a physical device.
This skill does not replace Mesh Lab: if the diff changes mesh, transport,
crypto, service, or physical peer behavior, use the mesh-lab skill separately
before claiming the behavior works.
The worktree starts at the before SHA.
./gradlew assembleDebug.adb install -r.before-<surface>-<state>-<width>-<theme>.pngUse adb exec-out screencap -p so the PNG is written directly to the artifact
directory. Inspect every screenshot immediately; a successful command is not
proof that the intended screen was visible.
Before switching commits:
Checkout the recorded after SHA in the detached worktree, reapply the same
debug-only fixture if needed, build, and install with -r when state
preservation is part of the comparison.
Replay the same navigation and capture matrix. Name files with the matching
after- prefix. If reinstalling cannot preserve the state, replay the fixture
from its recorded inputs rather than comparing different states.
For responsive captures, record logical width in dp. On a fixed-pixel emulator, changing density is acceptable when the calculation is documented:
density = physical_width_px × 160 / desired_width_dpRestore the original density/theme/locale after the matrix is complete.
Prefer existing debug hooks. When they cannot express the visual state, add the
smallest temporary command to
app/src/debug/java/com/bitchat/android/testhook/TestHookDriver.kt.
The fixture must:
src/debugAfter the final capture, remove the temporary fixture with a focused patch and verify that the review worktree has no tracked modifications. Never commit or publish the fixture unless the user separately asks to productize it.
Create capture-manifest.json in the artifact directory using
assets/capture-manifest.example.json as
the shape. Use paths relative to the manifest and omit device selectors and
local absolute paths.
Validate it:
python3 \
.agents/skills/android-ui-visual-review/scripts/validate_capture_manifest.py \
"<artifact-directory>/capture-manifest.json"Write a Markdown report next to the manifest with:
End the local run only after:
Leave the review session and artifacts available for later inspection unless the user asks for cleanup.
Only after explicit user approval, follow references/github-publishing.md.
The PR comment should contain:
Use gh for all GitHub reads and writes. Verify the posted comment by reading it
back and counting the expected image embeds. Do not expose local paths or
machine identifiers, do not override Git author/committer identity, and do not
push screenshot files to a source branch unless the user separately authorizes
that repository change.
Give the user:
© permissionlesstech, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (scripts, references, assets) in .agents/skills/android-ui-visual-review of permissionlesstech/bitchat-android.
Open the folder on GitHubat commit 6803d6d
Android UI Visual Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Android UI Visual Review this skillpermissionlesstech/bitchat-android | 7.8k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Release Changelogsk2andy/candy-browser | 508 | — | ~593 | Automated safety check: Pass | MPL-2.0 | |
| Git GitHub Opsc5inco/compose-pokedexer | 143 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Flake Triageyschimke/compose-ai-tools | 117 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Launch On Devicezly2006/zhihu-plus-plus | 4.2k | — | ~3.1k | Automated safety check: Pass | CC-BY-NC-4.0 | |
| Guided PR Fixupalexvanyo/composelife | 267 | — | ~1k | Automated safety check: Pass | Apache-2.0 |
sk2andy/candy-browser
Create or update Candy Browser's English, image-rich, versioned release notes for the in-app What's New presentation and the matching GitHub release.
c5inco/compose-pokedexer
Handles Pokedexer Git and GitHub workflows: inspect changes, prepare commit messages, manage branches and pushes, and create or update issues and pull requests with safe file-based inputs.
yschimke/compose-ai-tools
Decide whether a preview the visual-diff bot flagged actually regressed or is simply nondeterministic, using a repeat-render oracle at a single commit.
zly2006/zhihu-plus-plus
Build, install, and launch the Zhihu++ Android app on a connected device using ADB.
alexvanyo/composelife
Performs a guided fixup of a given GitHub PR. An agent skill from alexvanyo/composelife.
suntay44/web-to-mobile-magic-plugin
Orchestrate website or web app conversion into a mobile app.
permissionlesstech/bitchat-android
Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use.
permissionlesstech/bitchat-android
Run, diagnose, and extend bitchat Android Mesh Lab physical-device tests.
Categories
Analyze an Android pull request, branch, commit, or patch for user-visible changes and produce reproducible before/after screenshots from isolated builds. Android UI Visual Review is an agent skill from permissionlesstech/bitchat-android. Analyze an Android pull request, branch, commit, or patch for user-visible changes and produce reproducible before/after screenshots from isolated builds.
Android UI Visual Review fits situations like: A user asks for PR screenshots; branch UI comparisons; visual regression evidence; compose before/after captures.
Run `npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a claude-code`. Or copy the skill folder (.agents/skills/android-ui-visual-review in permissionlesstech/bitchat-android) into .claude/skills/android-ui-visual-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a codex`. Or copy the skill folder (.agents/skills/android-ui-visual-review in permissionlesstech/bitchat-android) into .agents/skills/android-ui-visual-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add permissionlesstech/bitchat-android --skill android-ui-visual-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/android-ui-visual-review, .gemini/skills/android-ui-visual-review, .github/skills/android-ui-visual-review and .opencode/skills/android-ui-visual-review in your project.
Going by SKILL.md and its folder, Android UI Visual Review needs Python and a shell for the scripts in its folder and the command-line tools its instructions call (adb, python3 and git). Our summary lists: Python 3; A Bash shell. Compatibility (from SKILL.md): Requires git, the Android SDK and emulator, adb, Java/Gradle, Python 3, and gh for pull-request resolution or publishing..
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Android UI Visual Review is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Android UI Visual Review: Release Changelog (sk2andy/candy-browser, 508 stars), Git GitHub Ops (c5inco/compose-pokedexer, 143 stars), Flake Triage (yschimke/compose-ai-tools, 117 stars) and Launch On Device (zly2006/zhihu-plus-plus, 4.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
permissionlesstech (a GitHub organization) maintains it in permissionlesstech/bitchat-android, which has 7,763 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 6, 2026.
Source: permissionlesstech/bitchat-android on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.