Agent skill

Simulator

by kmworks in kmworks/kmreader

A skill your agent uses when observing or driving an iOS simulator for KMReader debugging — screenshots, accessibility tree, tap/swipe/gestures, hardware buttons, orientation, and unified logs via…

MITAuto-check passedMobile

Install Simulator

skills CLI
$ npx skills add kmworks/kmreader --skill simulator -a claude-code

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

GitHub CLI
$ gh skill install kmworks/kmreader simulator --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/kmworks/kmreader.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/simulator .claude/skills/simulator && 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
simulator
GitHub stars
111
Token cost
~797 tokens
SKILL.md length
348 words
Files
1
Skills in repo
8
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when observing or driving an iOS simulator for KMReader debugging — screenshots, accessibility tree, tap/swipe/gestures, hardware buttons, orientation, and unified logs via…

  • Works in 3 steps: baguette describe-ui --udid — AX tree as… → Act: tap / double-tap / swipe / pinch /… → Verify: baguette screenshot --udid -o…
  • Driving an iOS simulator for KMReader debugging — screenshots
  • SKILL.md covers Boundaries, Device Hub gotcha (read first), Interaction loop and Logs, plus 1 more section
  • Calls make and xcrun

What it does

Simulator is an agent skill from kmworks/kmreader. Use when observing or driving an iOS simulator for KMReader debugging — screenshots, accessibility tree, tap/swipe/gestures, hardware buttons, orientation, and unified logs via baguette. Build and install go through the Makefile + xcrun simctl.

Its SKILL.md is about 800 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 Mobile, covering Accessibility. It works with iOS. The repository describes itself as: A full-featured, native Komga client for iOS, macOS, and tvOS. The licence is MIT.

When your agent uses it

  • Driving an iOS simulator for KMReader debugging — screenshots
  • Accessibility tree
  • Tap/swipe/gestures
  • Hardware buttons

Example prompts

  • “/simulator”

Workflow steps

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

  1. baguette describe-ui --udid — AX tree as JSON. Every node has a frame in device points; compute the center and feed it straight into a…
  2. Act: tap / double-tap / swipe / pinch / pan / press --button home / type --text ... / paste --text ... (paste handles unicode; type is…
  3. Verify: baguette screenshot --udid -o /tmp/shot.png and read the image. Re-capture after each action; on unexpected results retry once…

What it can do on your machine

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

    • make
    • xcrun

    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

Simulator loads about 797 tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 348 words of instructions outside code blocks.

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

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 kmworks/kmreader at commit cb2d394, republished under its MIT licence (© kmworks). 348 words, ~797 tokens.

Download SKILL.mdSave it as .claude/skills/simulator/SKILL.md (or your agent's skills folder).
name
simulator
description
Use when observing or driving an iOS simulator for KMReader debugging — screenshots, accessibility tree, tap/swipe/gestures, hardware buttons, orientation, and unified logs via baguette. Build and install go through the Makefile + xcrun simctl.

simulator — iOS simulator interaction

baguette (brew, Apple Silicon + Xcode 26+) is a CLI for headless iOS simulator control: screen capture, host-HID input injection, accessibility tree, and log streaming.

Boundaries

  • baguette does not build or install apps. Keep the existing flow: make build-ios, then xcrun simctl install <UDID> <app> and xcrun simctl launch <UDID> com.everpcpc.Komga (terminate to stop).
  • The target simulator UDID is persisted in devices.json (ios_simulator). Read it from there; baguette list --json shows boot state.

Device Hub gotcha (read first)

A simulator booted by Xcode (e.g. after make run-ios-sim) has its input surface shadowed by Device Hub: taps/swipes ack {"ok":true} but land nowhere. Fix once per boot:

bash
baguette heal --udid <UDID>   # restarts SpringBoard, ~4s

Booting with baguette boot --udid <UDID> (headless) avoids the problem entirely.

Interaction loop

  1. baguette describe-ui --udid <UDID> — AX tree as JSON. Every node has a frame in device points; compute the center and feed it straight into a tap. Add --x <px> --y <py> to hit-test one point instead.
  2. Act: tap / double-tap / swipe / pinch / pan / press --button home / type --text ... / paste --text ... (paste handles unicode; type is US-ASCII only). To replace existing field text: double-tap the field to select its content, then paste — Cmd+V overwrites the selection.
  3. Verify: baguette screenshot --udid <UDID> -o /tmp/shot.png and read the image. Re-capture after each action; on unexpected results retry once, then stop and report.
bash
baguette tap   --udid <UDID> --x 122 --y 237 --width 402 --height 874
baguette swipe --udid <UDID> --start-x 340 --start-y 437 --end-x 60 --end-y 437 --width 402 --height 874
  • Coordinates are device points, not pixels. The screen size in points is the root node's frame in describe-ui (e.g. 402×874 for iPhone 18 Pro); --width/--height must match it.
  • CLI flags are kebab-case (--start-x, not the README's --startX). When in doubt, <cmd> --help.

Logs

bash
baguette logs --udid <UDID> --predicate 'subsystem == "com.everpcpc.kmreader"' --style compact
  • The app logs to subsystem com.everpcpc.kmreader (see AppLogger.swift), categories API, SSE, ReaderViewModel, etc. --bundle-id com.everpcpc.Komga and --level also work.
  • The stream is live-only (no history); start it before reproducing the issue, stop with ^C/pkill -f "baguette logs".

Extras

  • baguette orientation --udid <UDID> landscape-left — rotate; press --button lock — lock.
  • baguette record --udid <UDID> --duration 10 -o /tmp/clip.mp4 — H.264 recording.
  • baguette serve — web UI at http://localhost:8421/simulators (live stream, farm view, AX inspector). Useful for watching a long session; the CLI is enough for scripted checks.

© kmworks, 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 .agents/skills/simulator of kmworks/kmreader.

Open the folder on GitHubat commit cb2d394

Compare with similar skills

Simulator 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.

Simulator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Simulator this skillkmworks/kmreader111—~797Automated safety check: PassMIT
Hig Components Contentraintree-technology/hig-doctor1435 repos~1.3kAutomated safety check: PassMIT
iOS Accessibilitydpearson2699/swift-ios-skills1.2k—~4.6kAutomated safety check: PassCustom licence
Axe Simulator Controln0an/VivaDicta131—~2.7kAutomated safety check: PassMIT
Mobile AccessibilityCommunity-Access/accessibility-agents422—~1.1kAutomated safety check: PassMIT
Kb Mobile AccessibilityCommunity-Access/accessibility-agents422—~3.8kAutomated safety check: PassMIT

Similar skills

  • Hig Components Content

    raintree-technology/hig-doctor

    Apple Human Interface Guidelines for content display components.

    143 GitHub starsUsed in 5 repos~1.3k tokens
    MobileAuto-check passed
  • iOS Accessibility

    dpearson2699/swift-ios-skills

    Build and audit SwiftUI, UIKit, and AppKit accessibility for VoiceOver, Voice Control, Switch Control, Full Keyboard Access, Dynamic Type, focus restoration, labels/traits/actions, traversal, custom…

    1.2k GitHub stars~4.6k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • Axe Simulator Control

    n0an/VivaDicta

    Automate iOS Simulator interactions using AXe for taps, gestures, text input, hardware buttons, and video recording

    131 GitHub stars~2.7k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Mobile Accessibility

    Community-Access/accessibility-agents

    React Native, Expo, iOS and Android: labels, roles and touch targets.

    422 GitHub stars~1.1k tokensUpdated 15 days ago
    MobileAuto-check passed
  • Kb Mobile Accessibility

    Community-Access/accessibility-agents

    Reference data, not a reviewer. An agent skill from Community-Access/accessibility-agents.

    422 GitHub stars~3.8k tokensUpdated 15 days ago
    MobileAuto-check passed
  • Assistive Access

    gustavscirulis/snapgrid

    Assistive Access implementation for cognitive accessibility including simplified scenes, navigation icons, runtime detection, and design principles.

    117 GitHub starsUsed in 1 repo~2.5k tokens
    MobileAuto-check passed

More from kmworks/kmreader

All 8 skills in this repo
  • Appstore Release

    kmworks/kmreader

    Coordinate the KMReader App Store release workflow. An agent skill from kmworks/kmreader.

    111 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Localization

    kmworks/kmreader

    A skill your agent uses when updating KMReader translations in Localizable.xcstrings after code changes.

    111 GitHub stars~800 tokensUpdated today
    Auto-check passed
  • PR Workflow

    kmworks/kmreader

    Create and merge KMReader GitHub pull requests. An agent skill from kmworks/kmreader.

    111 GitHub stars~899 tokensUpdated today
    Auto-check passed
  • Testflight

    kmworks/kmreader

    Distribute KMReader builds to TestFlight groups via the asc CLI.

    111 GitHub stars~403 tokensUpdated today
    Auto-check passed
  • Changelog

    kmworks/kmreader

    Generate App Store changelog text from commits between the latest tag and HEAD.

    111 GitHub stars~370 tokensUpdated today
    Auto-check passed
  • Repo Conventions

    kmworks/kmreader

    KMReader subsystem conventions and invariants — reader state boundaries, reading-progress sync, offline downloads and caching, local database (GRDB) migrations, SSE dispatch, browse and dashboard…

    111 GitHub stars~18k tokensUpdated today
    Auto-check passed

Works with

Questions about Simulator

What does Simulator do?

A skill your agent uses when observing or driving an iOS simulator for KMReader debugging — screenshots, accessibility tree, tap/swipe/gestures, hardware buttons, orientation, and unified logs via…. Simulator is an agent skill from kmworks/kmreader. Use when observing or driving an iOS simulator for KMReader debugging — screenshots, accessibility tree, tap/swipe/gestures, hardware buttons, orientation, and unified logs via baguette.

When should I use Simulator?

Simulator fits situations like: driving an iOS simulator for KMReader debugging — screenshots; accessibility tree; tap/swipe/gestures; hardware buttons.

How do I install Simulator in Claude Code?

Run `npx skills add kmworks/kmreader --skill simulator -a claude-code`. Or copy the skill folder (.agents/skills/simulator in kmworks/kmreader) into .claude/skills/simulator in your project. Claude Code loads it when a task matches its description.

How do I install Simulator in Codex?

Run `npx skills add kmworks/kmreader --skill simulator -a codex`. Or copy the skill folder (.agents/skills/simulator in kmworks/kmreader) into .agents/skills/simulator in your project. Codex loads it when a task matches its description.

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

What does Simulator need to run?

Going by SKILL.md and its folder, Simulator needs the command-line tools its instructions call (make and xcrun).

Does Simulator 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 Simulator 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 Simulator use?

Simulator 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 Simulator use?

About 797 tokens (SKILL.md is roughly 3.2k 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 Simulator?

Skills that share tags, products or a category with Simulator: Hig Components Content (raintree-technology/hig-doctor, 143 stars), iOS Accessibility (dpearson2699/swift-ios-skills, 1.2k stars), Axe Simulator Control (n0an/VivaDicta, 131 stars) and Mobile Accessibility (Community-Access/accessibility-agents, 422 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Simulator?

kmworks (a GitHub organization) maintains it in kmworks/kmreader, which has 111 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.

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