Agent skill

Gui Screenshots

by GuyTeichman in GuyTeichman/RNAlysis

Capture and attach RNAlysis GUI screenshots to a PR whenever a change makes a VISIBLE difference to a GUI dialog.

MITAuto-check passedResearch & Science

Install Gui Screenshots

skills CLI
$ npx skills add GuyTeichman/RNAlysis --skill gui-screenshots -a claude-code

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

GitHub CLI
$ gh skill install GuyTeichman/RNAlysis gui-screenshots --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/GuyTeichman/RNAlysis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/gui-screenshots .claude/skills/gui-screenshots && 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
gui-screenshots
GitHub stars
140
Token cost
~2k tokens
SKILL.md length
865 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Capture and attach RNAlysis GUI screenshots to a PR whenever a change makes a VISIBLE difference to a GUI dialog.

  • Works in 4 steps: Is this change GUI-visible? (skip the… → Capture → Publish to the assets branch… → …
  • Adding/renaming/removing a parameter of a public Filter/FeatureSet/fastq/enrichment function
  • SKILL.md covers Step 1 — Is this change…, Step 2 — Capture, Step 3 — Publish to the assets… and Step 4 — Attach to the PR, plus 2 more sections
  • Calls git, gh and python; reaches raw.githubusercontent.com

What it does

Gui Screenshots is an agent skill from GuyTeichman/RNAlysis. Capture and attach RNAlysis GUI screenshots to a PR whenever a change makes a VISIBLE difference to a GUI dialog. Use when adding/renaming/removing a parameter of a public Filter/FeatureSet/fastq/enrichment function, changing a parameter's type annotation, adding or editing @readablename, or editing :param: help text — before opening or updating the PR. Skip for behind-the-scenes changes with no visible effect on any dialog. Also use when asked to "screenshot a dialog", "grab the GUI for <function", or "show what…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Research & Science, covering Bioinformatics. The repository describes itself as: Analyze your RNA sequencing data without writing a single line of code. The licence is MIT.

When your agent uses it

  • Adding/renaming/removing a parameter of a public Filter/FeatureSet/fastq/enrichment function
  • Changing a parameters type annotation
  • Editing @readablename
  • Editing :param: help text — before opening

Example prompts

  • “screenshot a dialog”
  • “grab the GUI for <function”
  • “show what the dialog looks like”
  • “/gui-screenshots”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Is this change GUI-visible? (skip the skill if not)
  2. Capture
  3. Publish to the assets branch (collision-safe)
  4. Attach to the PR

What it can do on your machine

Read from SKILL.md and the folder at commit 0c70cc2. 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

    Shell commands in SKILL.md call:

    • git
    • gh
    • python

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • raw.githubusercontent.com

    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.

Context cost

Gui Screenshots loads about 2k tokens when it runs. Until then it costs about 140 tokens; SKILL.md has 865 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~140
When it runs · the whole SKILL.md, loaded when a task matches
~2k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from GuyTeichman/RNAlysis at commit 0c70cc2, republished under its MIT licence (© GuyTeichman). 865 words, ~1,963 tokens.

Download SKILL.mdSave it as .claude/skills/gui-screenshots/SKILL.md (or your agent's skills folder).
name
gui-screenshots
description
Capture and attach RNAlysis GUI screenshots to a PR whenever a change makes a VISIBLE difference to a GUI dialog. Use when adding/renaming/removing a parameter of a public Filter/FeatureSet/fastq/enrichment function, changing a parameter's type annotation, adding or editing @readable_name, or editing :param: help text — before opening or updating the PR. Skip for behind-the-scenes changes with no visible effect on any dialog. Also use when asked to "screenshot a dialog", "grab the GUI for <function>", or "show what the dialog looks like".

GUI screenshots for PRs

RNAlysis' GUI is generated from the API by reflection (see CLAUDE.md). That cuts both ways: a signature or annotation edit on a public function silently reshapes a GUI dialog, and — the useful direction — that same dialog can be rebuilt and grabbed to a PNG straight from the API, headlessly, without clicking through the running app. This skill captures those PNGs and attaches them to the PR so a reviewer can see the visible change.

The engine is a plain, provider-neutral script: packaging/capture_gui_dialog.py. This skill adds the when, the collision-safe conventions, and the assets-branch/PR-attach workflow.


Step 1 — Is this change GUI-visible? (skip the skill if not)

Attach screenshots only when a user would see a difference in a dialog. It is GUI-visible if the change is to a public (non-_) function on Filter/CountFilter/DESeqFilter/ FoldChangeFilter/FeatureSet/RankedSet or in fastq/enrichment, and it does any of:

  • adds, renames, removes, or reorders a parameter;
  • changes a parameter's type annotation (a different param_typing type → a different widget);
  • adds/changes @readable_name('…') (the dialog/button title);
  • edits a :param x: docstring line (per-parameter help/tooltip text);
  • changes a default that the widget shows (e.g. a combo's preselected value).

Skip (no screenshot needed) for: internal helpers (leading _, or in a widget's EXCLUDED_FUNCS/EXCLUDED_PARAMS), pure implementation/refactor with an unchanged signature, performance work, docstring prose outside :param: lines, tests, CI, and non-GUI modules (utils/, io.py, R templates, etc.). When unsure, capture it — a redundant screenshot is cheaper than a silent GUI regression slipping through.

For a renamed/retyped parameter, capture before and after so the diff is legible: grab once from development (or the merge-base) and once from your branch.


Step 2 — Capture

Run in the project's dev environment (the one with PyQt6 installed — locally that's the rnalysis conda env). Pass one or more dotted targets (<module>.<Class>.<method> or <module>.<function>), resolved from the rnalysis package:

bash
python packaging/capture_gui_dialog.py \
    filtering.CountFilter.filter_low_reads \
    enrichment.FeatureSet.go_enrichment \
    --out .gui_shots

One PNG per target lands in --out, named <dotted.target>.png. The script:

  • uses the native window platform so text renders with real fonts (Qt's bare offscreen platform renders text as missing-glyph boxes — only pass --offscreen for a quick layout check);
  • hides the same infra parameters the real app hides (self, backend, gui_mode, …), so the shot matches what a user sees. Use --show-all to include them, or --exclude a,b to hide more;
  • grabs the whole form (every parameter, no scrollbar), which is what makes it documentation-grade.

Headless CI note: on a runner with no display, wrap the command in xvfb-run on Linux so a real framebuffer resolves fonts. macOS/Windows CI runners have a window session and work directly.

Sanity-check the PNGs before publishing (open them / view them). A dialog full of tofu boxes means you're on the offscreen platform without a framebuffer — fix that, don't publish it.


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

Step 3 — Publish to the assets branch (collision-safe)

Screenshots live on a dedicated assets branch, not in the PR's code diff — keeps binaries out of mainline history, and any branch's blobs are linkable. Namespace every PR's images under pr-<N>/ so parallel agents never clobber each other's files or race on the same paths.

Do the publish in a throwaway git worktree so it never disturbs your feature-branch worktree (or Guy's working tree — see the repo's worktree convention). From the repo root:

bash
N=<pr-number-or-branch-slug>
git fetch origin
# check out the assets branch in a scratch worktree (create it on first use)
git worktree add ../rnalysis-assets assets 2>/dev/null \
  || git worktree add -b assets ../rnalysis-assets origin/assets 2>/dev/null \
  || git worktree add -b assets ../rnalysis-assets    # first time ever: fresh branch

mkdir -p "../rnalysis-assets/pr-$N"
cp .gui_shots/*.png "../rnalysis-assets/pr-$N/"

git -C ../rnalysis-assets add "pr-$N"
git -C ../rnalysis-assets commit -m "GUI screenshots for PR #$N"
git -C ../rnalysis-assets pull --rebase origin assets 2>/dev/null || true   # absorb concurrent pushes
git -C ../rnalysis-assets push origin assets

git worktree remove ../rnalysis-assets

If the push is rejected (a parallel agent pushed first), re-run the pull --rebase + push. Because each PR writes only under its own pr-$N/, rebases apply cleanly — the collision is a push race, not a content conflict.

First-time-ever bootstrap: if no assets branch exists yet, an orphan branch keeps it out of code history — git worktree add --detach ../rnalysis-assets && git -C ../rnalysis-assets switch --orphan assets && … — but the plain fresh-branch fallback above is fine too. Ask Guy which he prefers before creating it.


Step 4 — Attach to the PR

Embed the raw URLs in the PR body or a comment. Get owner/repo from gh rather than hardcoding:

bash
REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner)
# per image: https://raw.githubusercontent.com/$REPO/assets/pr-$N/<file>.png

Write the markdown to a file and post with --body-file (never inline a body containing —/→ on Windows — a Python/text round-trip corrupts UTF-8; use a file):

markdown
### GUI changes

**`filter_low_reads` dialog**

![filter_low_reads dialog](https://raw.githubusercontent.com/OWNER/RNAlysis/assets/pr-123/filtering.CountFilter.filter_low_reads.png)
bash
gh pr comment "$N" --body-file gui_shots_comment.md

For a before/after, put the two images side by side (an HTML <table> with one <img> per cell renders in GitHub markdown) and label which is development and which is the branch.


Fidelity & limits (be honest in the PR)

  • The capture is faithful for the parameter form — widgets, labels, defaults, help buttons — because that form is the reflection output. It does not capture the OS window title bar (Qt .grab() never does), nor live end-to-end states (loaded data, result plots, hover tooltips, open menus, multi-window flows). Those "display-level" tutorial shots are a human task; don't fake them with this tool.
  • Rendering varies by OS theme (light/dark), DPI, and font availability, so an agent's PNG may not pixel-match a given user's screen. That's fine for "here's the visible change" — do not repurpose these PNGs as a visual-regression baseline.
  • The ToggleSwitch may clip a long label ("False"→"alse"); that's the fixed-size custom widget itself, same as in the live app — not a capture artifact.

Definition of done

A PR that makes a GUI-visible change is not finished until the relevant dialog screenshot(s) are on the assets branch under pr-<N>/ and linked from the PR. Note in the PR body anything you could not render (e.g. a display-level flow) and why.

© GuyTeichman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/gui-screenshots of GuyTeichman/RNAlysis.

Open the folder on GitHubat commit 0c70cc2

Compare with similar skills

Gui Screenshots 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.

Gui Screenshots compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Gui Screenshots this skillGuyTeichman/RNAlysis140—~2kAutomated safety check: PassMIT
Dbsnp Databasegoogle-deepmind/science-skills3.2k3 repos~3.4kAutomated safety check: NotesApache-2.0
Metabolic Study Planneraiming-lab/AutoResearchClaw15k—~1.9kAutomated safety check: PassMIT
13C Metabolic Flux AnalysisK-Dense-AI/scientific-agent-skills48k1 repos~3.2kAutomated safety check: PassMIT
Alphagenome Single Variant Analysisgoogle-deepmind/science-skills3.2k2 repos~3kAutomated safety check: NotesApache-2.0
MFA Pipeline Orchestratoraiming-lab/AutoResearchClaw15k—~923Automated safety check: PassMIT

Similar skills

  • Dbsnp Database

    google-deepmind/science-skills

    A skill your agent uses when you want to look up, map, and search for short genetic variants (SNPs, indels) in NCBI's dbSNP database.

    3.2k GitHub starsUsed in 3 repos~3.4k tokens
    Research & ScienceAuto-check: notes
  • Metabolic Study Planner

    aiming-lab/AutoResearchClaw

    Turns a broad metabolic modelling topic into a concrete, paper-shaped plan with organism, model, perturbations, metrics and figures before any FBA code is written.

    15k GitHub stars~1.9k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed
  • 13C Metabolic Flux Analysis

    K-Dense-AI/scientific-agent-skills

    Estimates reaction fluxes inside cells from steady-state carbon-13 labeling data with a bundled mfapy-based solver, and reports which fluxes the data pin down.

    48k GitHub starsUsed in 1 repo~3.2k tokens
    Research & ScienceAuto-check passed
  • Alphagenome Single Variant Analysis

    google-deepmind/science-skills

    Analyzes genetic variant effects on gene expression (RNA-seq), chromatin accessibility (DNASE), histone marks (ChIP), and transcription factors using the AlphaGenome API.

    3.2k GitHub starsUsed in 2 repos~3k tokens
    Research & ScienceAuto-check: notes
  • MFA Pipeline Orchestrator

    aiming-lab/AutoResearchClaw

    Runs a metabolic flux analysis from model loading to phenotype prediction and figures by handing work to four sub-agents in sequence.

    15k GitHub stars~923 tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed
  • Singlecell Qc

    xuzhougeng/wisp-science

    A skill your agent uses when designing, reviewing, or implementing single-cell RNA-seq QC in Python or R with a human-in-the-loop, data-driven approach.

    1k GitHub stars~1.6k tokensUpdated today
    Research & ScienceAuto-check passed

More from GuyTeichman/RNAlysis

  • External API Change

    GuyTeichman/RNAlysis

    Workflow for fixing or changing RNAlysis code that talks to an EXTERNAL WEB SERVICE — UniProt, Ensembl, PANTHER, PhylomeDB, OrthoInspector, KEGG, or GO.

    140 GitHub stars~1.8k tokensUpdated 10 days ago
    Auto-check passed
  • Safe Optimization

    GuyTeichman/RNAlysis

    Make RNAlysis code faster while proving the output does not change.

    140 GitHub stars~2.8k tokensUpdated 10 days ago
    Auto-check passed

Questions about Gui Screenshots

What does Gui Screenshots do?

Capture and attach RNAlysis GUI screenshots to a PR whenever a change makes a VISIBLE difference to a GUI dialog. Gui Screenshots is an agent skill from GuyTeichman/RNAlysis. Capture and attach RNAlysis GUI screenshots to a PR whenever a change makes a VISIBLE difference to a GUI dialog.

When should I use Gui Screenshots?

Gui Screenshots fits situations like: adding/renaming/removing a parameter of a public Filter/FeatureSet/fastq/enrichment function; changing a parameters type annotation; editing @readablename; editing :param: help text — before opening.

How do I install Gui Screenshots in Claude Code?

Run `npx skills add GuyTeichman/RNAlysis --skill gui-screenshots -a claude-code`. Or copy the skill folder (.claude/skills/gui-screenshots in GuyTeichman/RNAlysis) into .claude/skills/gui-screenshots in your project. Claude Code loads it when a task matches its description.

How do I install Gui Screenshots in Codex?

Run `npx skills add GuyTeichman/RNAlysis --skill gui-screenshots -a codex`. Or copy the skill folder (.claude/skills/gui-screenshots in GuyTeichman/RNAlysis) into .agents/skills/gui-screenshots in your project. Codex loads it when a task matches its description.

Can I use Gui Screenshots 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 GuyTeichman/RNAlysis --skill gui-screenshots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gui-screenshots, .gemini/skills/gui-screenshots, .github/skills/gui-screenshots and .opencode/skills/gui-screenshots in your project.

What does Gui Screenshots need to run?

Going by SKILL.md and its folder, Gui Screenshots needs the command-line tools its instructions call (git, gh and python). Our summary lists: Python 3.

Does Gui Screenshots access the network?

SKILL.md names 1 domain. In commands or code: raw.githubusercontent.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Gui Screenshots 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. Review the folder before installing.

What licence does Gui Screenshots use?

Gui Screenshots is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Gui Screenshots use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Gui Screenshots?

Skills that share tags, products or a category with Gui Screenshots: Dbsnp Database (google-deepmind/science-skills, 3.2k stars), Metabolic Study Planner (aiming-lab/AutoResearchClaw, 15k stars), 13C Metabolic Flux Analysis (K-Dense-AI/scientific-agent-skills, 48k stars) and Alphagenome Single Variant Analysis (google-deepmind/science-skills, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Gui Screenshots?

GuyTeichman (a GitHub user) maintains it in GuyTeichman/RNAlysis, which has 140 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 28, 2026.

Source: GuyTeichman/RNAlysis on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.