Agent skill

App Screenshot Debug

by termio-sh in termio-sh/termio

Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just…

MITAuto-check passedDevelopment

Install App Screenshot Debug

skills CLI
$ npx skills add termio-sh/termio --skill app-screenshot-debug -a claude-code

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

GitHub CLI
$ gh skill install termio-sh/termio app-screenshot-debug --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/termio-sh/termio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/app-screenshot-debug .claude/skills/app-screenshot-debug && 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
app-screenshot-debug
GitHub stars
537
Token cost
~1.2k tokens
SKILL.md length
493 words
Files
3 (incl. scripts)
Skills in repo
19
Repo updated
First seen
Licence
MIT

At a glance

Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just…

  • Works in 2 steps: capture-window.sh [out.png] — screenshot… → click-in-window.sh — click at a…
  • Says screenshot the app
  • SKILL.md covers Prerequisites, The two helper scripts (in…, Canonical recipe and Driving the UI — patterns that…, plus 1 more section
  • Runs Shell scripts from its folder; calls bash and osascript

What it does

App Screenshot Debug is an agent skill from termio-sh/termio. Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just that window, and read it back for visual analysis — for diagnosing layout / spacing / alignment / 'this looks ugly' issues that can't be judged from code alone. Invoke when the user says 'screenshot the app', 'take a screenshot', 'show me what it looks like', 'what does X look like', 'debug this visually', 'verify the…

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/capture-window.sh` and `scripts/click-in-window.sh`).

It sits in Development, covering Debugging. It works with macOS. The repository describes itself as: A terminal-first agentic development environment for agentic coding. Build for CLI/TUI agent. Runtime for Coding Agent, Tmux alternative. The licence is MIT.

When your agent uses it

  • Says screenshot the app
  • Take a screenshot
  • Show me what it looks like
  • What does X look like

Example prompts

  • “this looks ugly”
  • “t be judged from code alone. Invoke when the user says”
  • “take a screenshot”
  • “/app-screenshot-debug”

Requirements

  • A Bash shell

Workflow steps

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

  1. capture-window.sh [out.png] — screenshot just the frontmost termio
  2. click-in-window.sh — click at a window-relative point: it

What it can do on your machine

Read from SKILL.md and the folder at commit af3b35b. 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 2 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • bash
    • osascript

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

  • Network

    No URLs in SKILL.md.

    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

App Screenshot Debug loads about 1.2k tokens when it runs. Until then it costs about 164 tokens; SKILL.md has 493 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~164
When it runs · the whole SKILL.md, loaded when a task matches
~1.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); the scripts in this folder are not scanned.

SKILL.md

The full file from termio-sh/termio at commit af3b35b, republished under its MIT licence (© termio-sh). 493 words, ~1,169 tokens.

Download SKILL.mdSave it as .claude/skills/app-screenshot-debug/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
app-screenshot-debug
description
Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just that window, and read it back for visual analysis — for diagnosing layout / spacing / alignment / 'this looks ugly' issues that can't be judged from code alone. Invoke when the user says 'screenshot the app', 'take a screenshot', 'show me what it looks like', 'what does X look like', 'debug this visually', 'verify the UI change', '截图看看', '看看长什么样', '帮我截个图分析'. Pairs with `macos-rebuild-dev` — rebuild first if code changed, then capture.

Screenshot-driven UI debugging (AppleScript + screencapture)

The loop for seeing a termio UI change instead of guessing from code:

(rebuild if code changed)  →  drive app into the target state  →  capture the window  →  Read the PNG  →  judge / iterate

You cannot evaluate spacing, alignment, overlap, ghosting, or "this looks ugly" from source. Get a real screenshot, Read it, then decide.

Prerequisites

  • The app must be running and built. If you just changed code, run the macos-rebuild-dev skill first. The process name for System Events is termio and the main window's title is termio.
  • These calls need macOS Accessibility + Screen Recording permission for the terminal / Claude Code host. If System Events errors with -25211 or the capture is black, that permission is missing — tell the user to grant it in System Settings → Privacy & Security.
  • termio is a single-window app (sidebar + terminal panes); there is no Settings window. Everything you need is in window 1.

The two helper scripts (in scripts/)

Run them with bash; they take the app name from $TERMIO_APP_NAME (default termio).

  1. capture-window.sh [out.png] — screenshot just the frontmost termio window (-o no shadow, -x silent), reading its live bounds first. Prints the window origin + size. Captures the region 1:1 in points, so a point you read off the resulting image is window-relative: image (dx,dy) == screen (originX+dx, originY+dy).

  2. click-in-window.sh <dx> <dy> — click at a window-relative point: it re-reads the live window origin and adds your offset. Use the exact (dx,dy) you measured on a capture-window.sh image — this survives the window moving or reopening on a different display.

Canonical recipe

bash
SK=skills/app-screenshot-debug/scripts

osascript -e 'tell application "System Events" to tell process "termio" to set frontmost to true'
bash $SK/capture-window.sh /tmp/shot.png
# → Read /tmp/shot.png with the Read tool, find the control you want at (dx,dy)
bash $SK/click-in-window.sh 120 180   # e.g. click a sidebar project row
bash $SK/capture-window.sh /tmp/shot2.png   # Read again to see the result

Then Read each PNG to analyze. Capture before and after a change for an honest before/after.

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

Driving the UI — patterns that actually work

  • Focus the window: tell application "System Events" to tell process "termio" to set frontmost to true (or tell application "termio" to activate).
  • Click a control: prefer click-in-window.sh with coords read off the screenshot. click at {x,y} (global points) conveniently returns the AX element path it hit — use that to confirm you hit the right thing.
  • Get window bounds live: get position of window 1 / get size of window 1.
  • Type into the focused terminal: keystroke "ls\n" after the window is frontmost — useful to put the terminal surface into a known state before capturing.

Gotchas (learned the hard way)

  • Never hardcode window coordinates across calls. The window can reopen at a different origin or on another display. Always re-read bounds (the scripts do) — that's the whole reason click-in-window.sh exists.
  • screencapture -R x,y,w,h uses the same global point coords as System Events, mapping points→pixels 1:1 for the width you ask for, so window-relative math is trivial: dx = screenX - originX.
  • Always -o (no shadow) and -x (silent) so the crop is exact and there's no shutter sound.
  • Add a sleep (~0.8–1.2s) after navigation/clicks before capturing so the animation settles — otherwise you screenshot a mid-transition frame.
  • The terminal surface is a libghostty-rendered view, mostly opaque to AX — drive it by focusing + keystrokes, and judge it from the screenshot, not the AX tree.
  • Save shots under /tmp/<task>/…png and Read them; don't leave them in the repo.

© termio-sh, MIT. 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 2 other files (scripts) in skills/app-screenshot-debug of termio-sh/termio.

  • SKILL.md
  • scripts/capture-window.sh
  • scripts/click-in-window.sh

Open the folder on GitHubat commit af3b35b

Compare with similar skills

App Screenshot Debug 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.

App Screenshot Debug compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
App Screenshot Debug this skilltermio-sh/termio537—~1.2kAutomated safety check: PassMIT
OpenLogi macOS Permissions TriageAprilNEA/OpenLogi23k—~2.5kAutomated safety check: NotesApache-2.0
Cmux Debugging Guidemanaflow-ai/cmux28k1 repos~1.1kAutomated safety check: PassCustom licence
OpenLogi Device DiagnosisAprilNEA/OpenLogi23k—~1.6kAutomated safety check: PassApache-2.0
Gearcoleco Debuggingdrhelius/Gearcoleco142—~3.5kAutomated safety check: PassGPL-3.0
Dotnet Debuggingnovotnyllc/dotnet-artisan233—~2.1kAutomated safety check: PassMIT

Similar skills

  • Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.

    23k GitHub stars~2.5k tokensUpdated today
    DevelopmentAuto-check: notes
  • Cmux Debugging Guide

    manaflow-ai/cmux

    Covers debug logging, the Debug menu, profiling rules and runtime pitfalls for working on the cmux macOS terminal app.

    28k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • OpenLogi Device Diagnosis

    AprilNEA/OpenLogi

    Finds the first failing layer when an OpenLogi Logitech device is missing or misbehaving across enumeration, open, probe, IPC and UI.

    23k GitHub stars~1.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Gearcoleco Debugging

    drhelius/Gearcoleco

    Debug and trace ColecoVision and Super Game Module games using the Gearcoleco emulator MCP server.

    142 GitHub stars~3.5k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Dotnet Debugging

    novotnyllc/dotnet-artisan

    Debugs Windows and Linux/macOS applications (native, .NET/CLR, mixed-mode) with WinDbg MCP (crash dumps, !analyze, !syncblk, !dlk, !runaway, !dumpheap, !gcroot, BSOD), dotnet-dump, lldb with SOS…

    233 GitHub stars~2.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Browser Setup

    clacky-ai/openclacky

    Configure the browser tool for Clacky. An agent skill from clacky-ai/openclacky.

    1.2k GitHub stars~3.1k tokensUpdated today
    DevelopmentAuto-check: notes

More from termio-sh/termio

All 19 skills in this repo
  • Termio Bug Report

    termio-sh/termio

    Diagnose a termio hang, beachball, crash, or 'it froze again' from the evidence macOS and termio actually leave behind — live process samples, crash and CPU-burn reports, the unified log, the…

    537 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Dia Source Analysis

    termio-sh/termio

    Analyze / reverse-engineer the locally installed Dia Browser mac app (The Browser Company; bundle id company.thebrowser.dia; shares ArcCore with Arc).

    537 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Asc

    termio-sh/termio

    Drive App Store Connect from the terminal with the asc CLI — TestFlight builds, groups, testers and What to Test notes; App Store versions, metadata, keywords, screenshots and release notes…

    537 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • Issue Creator

    termio-sh/termio

    Turn vague customer or user feedback from pasted text, chat excerpts, or screenshots into a clear, evidence-backed GitHub issue without inventing requirements.

    537 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Og Generation

    termio-sh/termio

    Regenerate the landing site's OG/social card (web/landing/public/og.webp) by rendering a temporary in-app route with the real hero WebGL aurora and screenshotting it with headless Chrome.

    537 GitHub stars~1k tokensUpdated yesterday
    Auto-check passed
  • Bump Version

    termio-sh/termio

    Cut a new termio macOS release by tagging main with the next version.

    537 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about App Screenshot Debug

What does App Screenshot Debug do?

Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just…. App Screenshot Debug is an agent skill from termio-sh/termio. Drive the running termio app via AppleScript / System Events to reach a UI state (focus the window, click a sidebar project, a terminal pane, a control), capture a pixel-accurate screenshot of just that window, and read it back for visual analysis — for diagnosing layout / spacing / alignment / 'this looks ugly' issues that can't be judged from code alone.

When should I use App Screenshot Debug?

App Screenshot Debug fits situations like: says screenshot the app; take a screenshot; show me what it looks like; what does X look like.

How do I install App Screenshot Debug in Claude Code?

Run `npx skills add termio-sh/termio --skill app-screenshot-debug -a claude-code`. Or copy the skill folder (skills/app-screenshot-debug in termio-sh/termio) into .claude/skills/app-screenshot-debug in your project. Claude Code loads it when a task matches its description.

How do I install App Screenshot Debug in Codex?

Run `npx skills add termio-sh/termio --skill app-screenshot-debug -a codex`. Or copy the skill folder (skills/app-screenshot-debug in termio-sh/termio) into .agents/skills/app-screenshot-debug in your project. Codex loads it when a task matches its description.

Can I use App Screenshot Debug 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 termio-sh/termio --skill app-screenshot-debug -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/app-screenshot-debug, .gemini/skills/app-screenshot-debug, .github/skills/app-screenshot-debug and .opencode/skills/app-screenshot-debug in your project.

What does App Screenshot Debug need to run?

Going by SKILL.md and its folder, App Screenshot Debug needs a shell for the scripts in its folder and the command-line tools its instructions call (bash and osascript). Our summary lists: A Bash shell.

Does App Screenshot Debug access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is App Screenshot Debug 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 App Screenshot Debug use?

App Screenshot Debug 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 App Screenshot Debug use?

About 1.2k tokens (SKILL.md is roughly 4.7k 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 App Screenshot Debug?

Skills that share tags, products or a category with App Screenshot Debug: OpenLogi macOS Permissions Triage (AprilNEA/OpenLogi, 23k stars), Cmux Debugging Guide (manaflow-ai/cmux, 28k stars), OpenLogi Device Diagnosis (AprilNEA/OpenLogi, 23k stars) and Gearcoleco Debugging (drhelius/Gearcoleco, 142 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains App Screenshot Debug?

termio-sh (a GitHub organization) maintains it in termio-sh/termio, which has 537 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 8, 2026.

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