HomeClaw: Skill for Claude Code

.claude/skills/ios-ettrace-performance/SKILL.md

ios-ettrace-performance is a skill for Claude Code, Codex from omarshahine/HomeClaw. It costs 73 tokens per session (2,230 once invoked), scanned C, original, MIT.

A procedure for recording and interpreting ETTrace performance profiles for iOS simulator apps. A performance profile records where an app spends processor time, while symbolication connects that activity to readable functions in the code.

In plain words
What is it for?
Use it to build and run a simulator app, capture one launch or runtime flow, preserve its processed profile data, and report hotspots and limitations.
Why use it?
It turns a focused app flow, such as launch or scrolling, into evidence about CPU-heavy work. Matching the profile with the correct debug information makes the resulting flamegraph, a visual summary of call time, trustworthy.

Skill for Claude CodeCodex

Written for Claude Code and Codex: installed under .claude/, but also agents/openai.yaml present. Also seen: mentions Codex.

This is omarshahine/HomeClaw's own configuration. It tells Claude Code and Codex how to work on HomeClaw itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything HomeClaw configures →

Part of the homeclaw plugin — 17 skills, 4 commands shipped together

Reuse

Borrowing it

Nothing to install: this file belongs to omarshahine/HomeClaw. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/omarshahine/HomeClaw/main/.claude/skills/ios-ettrace-performance/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/omarshahine/HomeClaw

Made for: Claude Code, Codex.

Or install homeclaw, the plugin that ships this one along with the rest of its 17 skills, 4 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ios-ettrace-performance

README.md
[![agentmods](https://agentmods.dev/badge/skills/omarshahine/homeclaw/ios-ettrace-performance/github.svg)](https://agentmods.dev/skills/omarshahine/homeclaw/ios-ettrace-performance)
Your own site
<a href="https://agentmods.dev/skills/omarshahine/homeclaw/ios-ettrace-performance"><img src="https://agentmods.dev/badge/skills/omarshahine/homeclaw/ios-ettrace-performance/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ios-ettrace-performance

Your own site · 80×15
<a href="https://agentmods.dev/skills/omarshahine/homeclaw/ios-ettrace-performance"><img src="https://agentmods.dev/badge/skills/omarshahine/homeclaw/ios-ettrace-performance.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 73 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,230 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00073 $0.02230
Opus 5 $0.00036 $0.01115
Sonnet 5 $0.00015 $0.00446
Haiku 4.5 $0.00007 $0.00223

Measured 9d ago against content hash a5ed95b19c3f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade C, and why

ios-ettrace-performance scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

The scan reads SKILL.md. This mod also ships 2 executable files (scripts/analyze_flamegraph_json.py, scripts/collect_ios_dsyms.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

rm -rf "$RUN_DIR/ETTrace-iphonesimulator.xcarchive" "$RUN_DIR/ETTrace.xcframework"
Origin

Copies of this mod

3 near-identical copies found in the catalogue:

.claude/skills/ios-ettrace-performance/SKILL.md · 198 lines

How it starts

The opening of the file, as written. The whole thing — 198 lines — stays where its author put it; the contents beside it link to each section on GitHub.

iOS ETTrace Performance

Use this skill to capture a focused, symbolicated ETTrace profile from an iOS simulator app. Pair it with ../ios-debugger-agent/SKILL.md when the task also needs simulator build, install, launch, UI driving, logs, or screenshots.

Core Workflow

  1. Pick one focused flow and write down the expected start and stop points.
  2. Build the exact simulator app that will be installed and profiled.
  3. Temporarily link ETTrace into that app target for simulator/debug profiling.
  4. Collect UUID-matched dSYMs for the app executable and embedded dynamic frameworks.
  5. Capture one launch or runtime trace.
  6. Preserve the processed flamegraph JSON immediately after the run.
  7. Analyze only the processed JSON and report the flow, artifacts, hotspots, and caveats.

Avoid broad "use the app for a while" captures. One trace should correspond to one user-visible flow.

Setup

Use a writable run folder for each profiling session:

if [ -z "${RUN_DIR:-}" ]; then
  RUN_DIR="$(mktemp -d "${TMPDIR:-/tmp}/codex-ios-ettrace.XXXXXX")"
fi
mkdir -p "$RUN_DIR"

Install the ETTrace runner CLI if it is not already available:

brew install emergetools/homebrew-tap/ettrace

ettrace is the host-side macOS runner. The app must also link an ETTrace.xcframework for the iOS Simulator architecture. This workflow is validated for ETTrace v1.1.0 processed output_<thread>.json files with top-level nodes.

Wire ETTrace into the exact app target being profiled. Keep the integration in a clearly temporary patch and remove it when the profiling task is done unless the user explicitly asks to keep it.

Preferred options:

  • Reuse an existing simulator-compatible ETTrace.xcframework if the repo already vendors one.
  • If none exists, build a simulator-only copy into RUN_DIR from the upstream ETTrace package.
  • Link the framework directly into the app target, not only into tests, resources, data files, or a nested launcher target.
  • Confirm launch logs print Starting ETTrace.
  • Profile only one ETTrace-instrumented simulator app at a time because simulator mode listens on a fixed localhost port.

Read the full file on GitHub · 198 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 198 lines · 73 tokens per session scan C a5ed95b19c3f

Subscribe to this mod's changes

ios-ettrace-performance is a skill published in the GitHub repository omarshahine/HomeClaw (165 stars, last pushed 2d ago), licensed MIT. It adds 73 tokens to every session and 2,230 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.