Agent skill

Android Readme Screenshot Studio

by permissionlesstech in permissionlesstech/bitchat-android

Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use.

GPL-3.0Auto-check passedMobile

Install Android Readme Screenshot Studio

skills CLI
$ npx skills add permissionlesstech/bitchat-android --skill android-readme-screenshot-studio -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install permissionlesstech/bitchat-android android-readme-screenshot-studio --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/permissionlesstech/bitchat-android.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/android-readme-screenshot-studio .claude/skills/android-readme-screenshot-studio && rm -rf skills-src

Use ~/.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/

Facts

Skill name
android-readme-screenshot-studio
GitHub stars
7.8k
Token cost
~3k tokens
SKILL.md length
1,458 words
Files
4 (incl. scripts, references)
Skills in repo
3
Repo updated
First seen
Licence
GPL-3.0

At a glance

Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use.

  • Works in 5 steps: Which surfaces are needed, such as mesh… → The exact visible state and ordering.… → Whether existing README images should be… → …
  • A user asks for README screenshots
  • SKILL.md covers Resolve the brief, Work in a fresh tree, Establish the capture contract and Use a high-resolution Android…, plus 7 more sections
  • Runs Python scripts from its folder; calls adb, git and gh

What it does

Android Readme Screenshot Studio is an agent skill from permissionlesstech/bitchat-android. Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use. Use this skill whenever a user asks for README screenshots, app-store-like repository images, a populated mesh-chat showcase, voice-note or media conversation captures, a geohash globe image, higher-resolution Android emulator captures, or a PR that adds or replaces documentation screenshots. It owns the complete workflow from latest-main isolation and deterministic synthetic fixtures through…

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including scripts and reference files (for example `evals/evals.json`, `references/showcase-recipes.md` and `scripts/validate_readme_screenshots.py`). Compatibility notes: Requires git, gh, the Android SDK and emulator, adb, Java/Gradle, Python 3, and image inspection support. FFmpeg is useful for capture-only media preparation.

It sits in Mobile, covering Android development, Technical documentation and Transcription. It works with Android. The repository describes itself as: decentralized mesh chat. The licence is GPL-3.0.

When your agent uses it

  • A user asks for README screenshots
  • App-store-like repository images
  • A populated mesh-chat showcase
  • Media conversation captures

Example prompts

  • “/android-readme-screenshot-studio”

Requirements

  • Python 3
  • Compatibility (from SKILL.md): Requires git, gh, the Android SDK and emulator, adb, Java/Gradle, Python 3, and image inspection support. FFmpeg is useful for capture-only media preparation.

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Which surfaces are needed, such as mesh chat and geohash globe.
  2. The exact visible state and ordering. Treat phrases like “photo, messages,
  3. Whether existing README images should be preserved, replaced, or added.
  4. The target base. Default repository work to the latest origin/main.
  5. Whether GitHub publication and merge are authorized. A request to “open a

What it can do on your machine

Read from SKILL.md and the folder at commit 6ade682. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • adb
    • git
    • gh
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires git, gh, the Android SDK and emulator, adb, Java/Gradle, Python 3, and image inspection support. FFmpeg is useful for capture-only media preparation.

    From compatibility in the SKILL.md frontmatter.

Context cost

Android Readme Screenshot Studio loads about 3k tokens when it runs, and up to ~5.7k if it reads all its reference files. Until then it costs about 207 tokens; SKILL.md has 1,458 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~207
When it runs · the whole SKILL.md, loaded when a task matches
~3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.7k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from permissionlesstech/bitchat-android at commit 6ade682, republished under its GPL-3.0 licence (© permissionlesstech). 1,458 words, ~2,980 tokens.

Download SKILL.mdSave it as .claude/skills/android-readme-screenshot-studio/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
android-readme-screenshot-studio
description
Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use. Use this skill whenever a user asks for README screenshots, app-store-like repository images, a populated mesh-chat showcase, voice-note or media conversation captures, a geohash globe image, higher-resolution Android emulator captures, or a PR that adds or replaces documentation screenshots. It owns the complete workflow from latest-main isolation and deterministic synthetic fixtures through real app rendering, visual inspection, system-chrome cropping, README asset updates, clean builds, and an optional PR. Do not use it for before/after UI regression evidence, which belongs to android-ui-visual-review, or for physical mesh behavior, which belongs to mesh-lab.
compatibility
Requires git, gh, the Android SDK and emulator, adb, Java/Gradle, Python 3, and image inspection support. FFmpeg is useful for capture-only media preparation.

Android README Screenshot Studio

Create repository screenshots from the real Bitchat Android UI, not from a drawn mockup. The result should look intentional enough for the top of the README while remaining reproducible, synthetic, and honest about what a static emulator capture proves.

Resolve the brief

Extract as much as possible from the conversation before asking questions. Confirm or infer:

  1. Which surfaces are needed, such as mesh chat and geohash globe.
  2. The exact visible state and ordering. Treat phrases like “photo, messages, three voices, thumbs-up” as a chronological contract rather than a loose suggestion.
  3. Whether existing README images should be preserved, replaced, or added.
  4. The target base. Default repository work to the latest origin/main.
  5. Whether GitHub publication and merge are authorized. A request to “open a PR and merge it” authorizes both; otherwise do not merge.

Do not invent the subject of a requested photo. Nicknames, channel names, or previous fixture copy are not sufficient justification for choosing an outdoor, urban, political, or personal scene. Reuse an existing rights-safe asset when the subject should remain stable, or ask for the intended subject. If the user explicitly approves synthetic imagery, disclose it and keep its source capture-only unless they request a committed asset.

Read references/showcase-recipes.md for every run. It contains the concrete mesh-chat and globe recipes, framing guidance, the verified current-pair fast path, and the final acceptance checklist. When the request matches the existing README pair and the production UI has not materially changed, try that fast path first and then validate every visible result. Fall back to tracing the current implementation when an entry point, state model, or composition has changed.

When a populated screen requires a debug fixture, also read ../android-ui-visual-review/references/fixture-recipes.md.

Work in a fresh tree

Protect the user's active checkout:

  1. Inspect git status without modifying it.
  2. Fetch origin/main.
  3. Create a new codex/ branch in a temporary worktree rooted at the current origin/main.
  4. Keep screenshots and raw captures in a separate temporary artifact directory so cleanup or checkout operations cannot remove them.

Do not switch the user's original checkout, reuse a dirty branch, or mix an unrelated PR into the screenshot change. If the request continues an existing screenshot PR, reuse its already-isolated worktree only after verifying its head and base.

Establish the capture contract

Before building, write a compact local matrix containing:

  • surface and navigation path;
  • chronological fixture contents;
  • expected visible top and bottom rows;
  • emulator profile class, portrait orientation, theme, and locale;
  • crop policy and final asset dimensions;
  • existing asset path and README reference;
  • behaviors the static screenshot does not prove.

Use the current production UI and latest main interaction model. Trace the screen entry point and state source before adding a fixture. A beautiful capture of a stale or fake UI is not acceptable.

Use a high-resolution Android canvas

Prefer the newest stable Android runtime installed locally and a large, high-density portrait emulator profile. Reuse a previously validated capture profile when it remains available, but verify the guest properties and keep the resulting profile facts in the local capture contract rather than the repository or GitHub text.

After boot, record the guest values with an explicit emulator selector:

sh
adb -s "$ANDROID_README_SERIAL" shell getprop ro.build.version.release
adb -s "$ANDROID_README_SERIAL" shell getprop ro.build.version.sdk
adb -s "$ANDROID_README_SERIAL" shell getprop ro.build.version.security_patch
adb -s "$ANDROID_README_SERIAL" shell wm size
adb -s "$ANDROID_README_SERIAL" shell wm density

Never publish emulator selectors, AVD names, local paths, usernames, IP addresses, or other machine identifiers.

Build a deterministic showcase fixture

Launch the Activity before injecting process-local state. Prefer existing debug hooks. If they cannot express the composition, add the smallest temporary command under:

text
app/src/debug/java/com/bitchat/android/testhook/

The fixture should:

  • use synthetic names, peer IDs, message IDs, and copy;
  • use the real local mesh peer ID for self-authored messages;
  • use a fixed epoch so timestamps and ordering are stable;
  • insert records in the exact requested chronology;
  • report structured counts through the test-hook result file;
  • copy capture-only media into the app's cache or files directory;
  • populate only the peers and state needed for the header;
  • avoid persistence unless persistence itself is the subject.

For voice notes, route real audio files through the app's waveform extractor. Use short, distinct, locally synthesized speech clips or other rights-safe speech audio. Never draw a decorative waveform and call it speech. Wait for asynchronous decoding before capture, then inspect that pauses and syllable envelopes look plausibly different between notes.

For image attachments, use a rights-safe existing asset or an explicitly approved synthetic source. Keep fixture media outside production source sets and remove every capture-only hook before committing. Compose image rows may remember a decoded bitmap by file path. After replacing the bytes at an unchanged path, relaunch the app or use a new destination path before judging the revised crop.

Capture from the real app

Build and install the ABI-matching debug APK, satisfy onboarding and permissions, inject the fixture, and navigate to the intended surface.

Capture directly:

sh
adb -s "$ANDROID_README_SERIAL" exec-out screencap -p > "$ARTIFACT_PATH"

Inspect the full screenshot immediately. Check message count and order, nickname ownership, peer count, waveform variety, image visibility, globe center, grid precision, clipping, and composer placement.

Inject a complete timeline in one operation and allow at least two seconds of quiet UI time after the fixture reports success. This avoids capturing entry animations, incomplete placement, or media that has not finished decoding.

Crop only Android system chrome. Preserve Bitchat's app header, translucent overlap, content, and composer. Derive the crop from the observed status and navigation insets; do not blindly reuse pixel offsets from a different profile. Because the app renders edge-to-edge, app controls may extend into the reported navigation inset. Place the bottom crop after the final control outline and shadow but before the system gesture affordance; removing the entire inset can clip the app itself. Keep every final README screenshot in a matched portrait size.

Use image inspection after the crop. File dimensions and a successful ADB command do not prove that the desired composition is visible.

Show full SKILL.md (502 more words)Show less

Update repository assets

Discover the current README references before writing. Prefer stable paths under docs/screenshots/ and replace only the assets the user requested.

When adding a showcase section:

  • keep the layout readable on GitHub;
  • give every image meaningful alt text;
  • use relative repository paths;
  • avoid machine-generated cache files or capture sources;
  • keep paired screenshots at identical dimensions.

Run the bundled validator for every final asset:

sh
python3 \
  .agents/skills/android-readme-screenshot-studio/scripts/validate_readme_screenshots.py \
  --repo-root . \
  --readme README.md \
  --require-same-size \
  --asset docs/screenshots/readme-mesh-chat.png \
  --asset docs/screenshots/readme-geohash-globe.png

When replacing only one image in an existing pair, pass both the changed and unchanged assets with --require-same-size, and verify the unchanged asset's checksum. Pass only one asset and omit --require-same-size only when the README has no paired screenshot to preserve.

Remove the fixture and verify cleanly

Before committing:

  1. Remove temporary imports, commands, helpers, resources, and fixture media with a focused patch.
  2. Verify git diff -- app/src/debug is empty.
  3. Verify git status --short lists only the intended README and screenshot files.
  4. Run git diff --check.
  5. Run ./gradlew assembleDebug after fixture removal.
  6. Re-run the screenshot validator.
  7. Confirm the user's original checkout is still untouched.

The final commit must not contain synthetic peer data, generated photo sources, audio clips, ADB outputs, emulator configuration, or local capture reports unless the user separately requested those artifacts in the repository.

Record honest evidence

Use the capture manifest and report format from ../android-ui-visual-review/ when before/after evidence is useful. For a README-only change with no production UI delta, identical before/after images are acceptable when explicitly labeled “no production UI delta.”

State limitations plainly:

  • a populated mesh timeline proves rendering, not physical message delivery;
  • a voice row proves waveform rendering, not audio playback;
  • an attachment proves image rendering, not media transfer;
  • a globe proves picker state, not live location or relay behavior.

Commit, publish, and optionally merge

GitHub writes require user authorization. When authorized:

  1. Stage only intended files.
  2. Commit without overriding author or committer identity.
  3. Push the codex/ branch.
  4. Use gh pr create or update the existing PR.
  5. Describe the exact capture sequence, synthetic fixture disclosure, repository-safe validation commands, and limitations. Keep emulator, runtime, hardware, and local-environment facts out of GitHub text whenever repository privacy rules classify them as machine identifiers.
  6. Verify the PR head and checks with gh pr view and gh pr checks.
  7. Merge only when the user explicitly requested it and required checks allow it. Prefer the repository's normal merge strategy and use gh.
  8. Verify the merged state and resulting main commit.

When GitHub publication is not authorized, leave the finished commit or local change in the isolated worktree and hand back its branch and artifact paths. Do not silently push it.

Do not place local paths, device selectors, generated-image paths, or personal machine details in commits, PR text, comments, or merge messages.

Final handoff

Lead with the outcome and include:

  • PR and merge URL or status;
  • final screenshot paths and dimensions;
  • one-line composition summary per surface;
  • build and validator results;
  • synthetic media disclosure;
  • current CI state or merged commit;
  • confirmation that the original checkout was not modified.

© 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

Files

SKILL.md and 3 other files (scripts, references) in .agents/skills/android-readme-screenshot-studio of permissionlesstech/bitchat-android.

  • SKILL.md
  • evals/evals.json
  • references/showcase-recipes.md
  • scripts/validate_readme_screenshots.py

Open the folder on GitHubat commit 6ade682

Compare with similar skills

Android Readme Screenshot Studio 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.

Android Readme Screenshot Studio compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Android Readme Screenshot Studio this skillpermissionlesstech/bitchat-android7.8k—~3kAutomated safety check: PassGPL-3.0
Suede AsoJasonColapietro/suede-creator-skills127—~4.3kAutomated safety check: PassMIT
Composewebview Documentationparkwoocheol/compose-webview103—~1.5kAutomated safety check: PassMIT
Generating Baseline ProfilesrosuH/EasyWatermark1.9k1 repos~5kAutomated safety check: PassApache-2.0
Ipaship Auditatharvnaik1/ipaship-audit108—~1.5kAutomated safety check: NotesMIT
uni-app Native App Packagingfeige996/unibest2.3k—~651Automated safety check: PassMIT

Similar skills

  • Suede Aso

    JasonColapietro/suede-creator-skills

    Suede-owned app-store optimization discipline for keyword fields, titles, subtitles, descriptions, screenshots, ratings context, and competitor listing audits.

    127 GitHub stars~4.3k tokensUpdated yesterday
    MobileAuto-check passed
  • Composewebview Documentation

    parkwoocheol/compose-webview

    Manages MkDocs documentation site and API references for ComposeWebView.

    103 GitHub stars~1.5k tokensUpdated 1 mo ago
    MobileAuto-check passed
  • Generating Baseline Profiles

    rosuH/EasyWatermark

    A skill your agent uses to generate and measure Jetpack Compose Baseline Profiles end-to-end with the AGP 8.2+ Baseline Profile Generator module and the Macrobenchmark harness.

    1.9k GitHub starsUsed in 1 repo~5k tokens
    MobileAuto-check passed
  • Ipaship Audit

    atharvnaik1/ipaship-audit

    A skill your agent uses when auditing iOS/Android app submissions for compliance with Apple App Store Review Guidelines or Google Play Developer Policies.

    108 GitHub stars~1.5k tokensUpdated 4 mo ago
    MobileAuto-check: notes
  • A comprehensive skill for uni-app native app offline packaging. Use this skill to package uni-app as native Android/iOS apps, configure native app settings…

    2.3k GitHub stars~651 tokensUpdated 26 days ago
    MobileAuto-check passed
  • Release

    HedvigInsurance/android

    Cut a production release of the Android app (git flow release, version bump, push to trigger the Play Store upload).

    154 GitHub stars~546 tokensUpdated yesterday
    MobileAuto-check passed

More from permissionlesstech/bitchat-android

  • Android UI Visual Review

    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.

    7.8k GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Mesh Lab

    permissionlesstech/bitchat-android

    Run, diagnose, and extend bitchat Android Mesh Lab physical-device tests.

    7.8k GitHub stars~2.9k tokensUpdated today
    Auto-check passed

Works with

Questions about Android Readme Screenshot Studio

What does Android Readme Screenshot Studio do?

Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use. Android Readme Screenshot Studio is an agent skill from permissionlesstech/bitchat-android. Create or refresh polished, high-resolution screenshots of the Bitchat Android app for README and repository showcase use.

When should I use Android Readme Screenshot Studio?

Android Readme Screenshot Studio fits situations like: A user asks for README screenshots; app-store-like repository images; A populated mesh-chat showcase; media conversation captures.

How do I install Android Readme Screenshot Studio in Claude Code?

Run `npx skills add permissionlesstech/bitchat-android --skill android-readme-screenshot-studio -a claude-code`. Or copy the skill folder (.agents/skills/android-readme-screenshot-studio in permissionlesstech/bitchat-android) into .claude/skills/android-readme-screenshot-studio in your project. Claude Code loads it when a task matches its description.

How do I install Android Readme Screenshot Studio in Codex?

Run `npx skills add permissionlesstech/bitchat-android --skill android-readme-screenshot-studio -a codex`. Or copy the skill folder (.agents/skills/android-readme-screenshot-studio in permissionlesstech/bitchat-android) into .agents/skills/android-readme-screenshot-studio in your project. Codex loads it when a task matches its description.

Can I use Android Readme Screenshot Studio in Cursor, Gemini CLI or GitHub Copilot?

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-readme-screenshot-studio -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-readme-screenshot-studio, .gemini/skills/android-readme-screenshot-studio, .github/skills/android-readme-screenshot-studio and .opencode/skills/android-readme-screenshot-studio in your project.

What does Android Readme Screenshot Studio need to run?

Going by SKILL.md and its folder, Android Readme Screenshot Studio needs Python for the scripts in its folder and the command-line tools its instructions call (adb, git, gh and python3). Our summary lists: Python 3. Compatibility (from SKILL.md): Requires git, gh, the Android SDK and emulator, adb, Java/Gradle, Python 3, and image inspection support. FFmpeg is useful for capture-only media preparation..

Does Android Readme Screenshot Studio access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Android Readme Screenshot Studio safe to install?

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.

What licence does Android Readme Screenshot Studio use?

Android Readme Screenshot Studio 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.

How many tokens does Android Readme Screenshot Studio use?

About 3k tokens (SKILL.md is roughly 12k 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 2.7k tokens, read only when the agent opens those files.

What are the alternatives to Android Readme Screenshot Studio?

Skills that share tags, products or a category with Android Readme Screenshot Studio: Suede Aso (JasonColapietro/suede-creator-skills, 127 stars), Composewebview Documentation (parkwoocheol/compose-webview, 103 stars), Generating Baseline Profiles (rosuH/EasyWatermark, 1.9k stars) and Ipaship Audit (atharvnaik1/ipaship-audit, 108 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Android Readme Screenshot Studio?

permissionlesstech (a GitHub organization) maintains it in permissionlesstech/bitchat-android, which has 7,786 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 11, 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.