native-app-profiling

native-app-profiling is a skill for Claude Code, Codex from termio-sh/termio. It costs 45 tokens per session (1,229 once invoked), scanned A, original, MIT.

A command-line workflow for measuring CPU use in native macOS and iOS apps. It records Time Profiler data with Apple’s xctrace tool and helps identify which code paths take the most time.

In plain words
What is it for?
Use it to record a running or newly launched app, export timing samples, translate stack frames into readable function names, and locate CPU hotspots.
Why use it?
It helps find performance bottlenecks without opening Instruments, Apple’s graphical profiling app. This makes slow code paths easier to inspect from a terminal or automated workflow.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: positional $N argument.

Good fit Use it to record a running or newly launched app, export timing samples, translate stack frames into readable function names, and locate CPU hotspots.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/termio-sh/termio/native-app-profiling
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add termio-sh/termio --skill native-app-profiling
Clone the repo
git clone --depth 1 https://github.com/termio-sh/termio

Made for: Claude Code, Codex.

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 native-app-profiling

README.md
[![agentmods](https://agentmods.dev/badge/skills/termio-sh/termio/native-app-profiling/github.svg)](https://agentmods.dev/skills/termio-sh/termio/native-app-profiling)
Your own site
<a href="https://agentmods.dev/skills/termio-sh/termio/native-app-profiling"><img src="https://agentmods.dev/badge/skills/termio-sh/termio/native-app-profiling/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 native-app-profiling

Your own site · 80×15
<a href="https://agentmods.dev/skills/termio-sh/termio/native-app-profiling"><img src="https://agentmods.dev/badge/skills/termio-sh/termio/native-app-profiling.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 45 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,229 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
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.00045 $0.01229
Opus 5.5 $0.00018 $0.00492
Sonnet 5.5 $0.00009 $0.00246
Haiku 4.5 $0.00005 $0.00123

Measured 1mo ago against content hash 35e52c4f40a7, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

native-app-profiling scanned grade A with 0 findings 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 1mo ago.

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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/native-app-profiling/SKILL.md · 184 lines

How it starts

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

Native App Performance Profiling (CLI)

Overview

Record Time Profiler via xctrace, extract samples, symbolicate, and identify hotspots without opening Instruments.

Quick Start

1) Record Time Profiler

Attach to running process:

# Get the PID first
pgrep -x "AppName"

# Record for 90 seconds
xcrun xctrace record \
    --template 'Time Profiler' \
    --time-limit 90s \
    --output /tmp/App.trace \
    --attach <pid>

Launch and record:

xcrun xctrace record \
    --template 'Time Profiler' \
    --time-limit 90s \
    --output /tmp/App.trace \
    --launch -- /path/to/App.app/Contents/MacOS/App

2) Export Time Samples

List available schemas in the trace:

xcrun xctrace export --input /tmp/App.trace --toc

Export time profile data:

xcrun xctrace export \
    --input /tmp/App.trace \
    --xpath '/trace-toc/run/data/table[@schema="time-profile"]' \
    --output /tmp/time-profile.xml

3) Get Load Address for Symbolication

While the app is running, get the __TEXT segment load address:

vmmap <pid> | grep "__TEXT"

Look for the load address (typically starts with 0x1...).

4) Symbolicate Stack Frames

Use atos to symbolicate addresses:

atos -o /path/to/App.app/Contents/MacOS/App -l 0x100000000 <address>

Workflow Notes

  • Correct binary: Confirm you're profiling the right build (local vs /Applications)
  • Trigger the slow path: During capture, perform the action that's slow
  • Capture duration: If stacks are empty, capture longer or avoid idle time
  • Symbol matching: Binary symbols must match the trace (same build)

Available Templates

List all profiling templates:

xcrun xctrace list templates

Common templates:

  • Time Profiler - CPU sampling
  • Allocations - Memory allocations
  • Leaks - Memory leak detection
  • System Trace - System-level activity
  • Animation Hitches - UI performance

Common Commands

Task Command
List templates xcrun xctrace list templates
List devices xcrun xctrace list devices
Record help xcrun xctrace help record
Export help xcrun xctrace help export
Get PID pgrep -x "AppName"
Get load address vmmap <pid> | grep __TEXT
Symbolicate atos -o <binary> -l <load-addr> <address>

Read the full file on GitHub · 184 lines

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. 1mo ago First seen · 184 lines · 45 tokens per session scan A 35e52c4f40a7

Subscribe to this mod's changes

native-app-profiling is a skill published in the GitHub repository termio-sh/termio (548 stars, last pushed today), licensed MIT. It adds 45 tokens to every session and 1,229 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

codegraph

Analyze indexed codebases via graph database (neug) and vector index (zvec). Covers call graphs, dependencies, dead code, hotspots, module coupling, architecture reports, semantic search, impact analysis, bug root cause from GitHub issues, class diagrams (UML), and PR review (risk scoring, conflict detection…

QwenLM/qwen-code · 0 tokens

stuck

Diagnose frozen, stuck, or slow Qwen Code sessions on this machine. Scans for problematic processes, high CPU/memory usage, hung subprocesses, and debug logs. Use /stuck or /stuck to focus on a specific process.

QwenLM/qwen-code · 57 tokens

structured-debugging

Hypothesis-driven debugging methodology for hard bugs. Use this skill whenever you're investigating non-trivial bugs, unexpected behavior, flaky tests, or tracing issues through complex systems. Activate proactively when debugging requires more than a quick glance — especially when the first attempt at a fix didn't…

QwenLM/qwen-code · 85 tokens

memory-leak-debug

Diagnose memory leaks in the Qwen Code CLI using heap snapshots and the chrome-devtools CLI. Use when investigating high memory usage, unbounded growth, or suspected object retention issues.

QwenLM/qwen-code · 42 tokens

bugfix

Fix a bug from a GitHub issue, following the reproduce-first workflow. Use when the user asks to fix a bug, investigate a GitHub issue, or debug a user-reported problem. Takes a GitHub issue URL or number as input.

QwenLM/qwen-code · 53 tokens

test-failure-explorer

Import and query an existing Vitest 3.2 JSON report to explore test failures, file-level errors and original diagnostic evidence.

QwenLM/qwen-code · 32 tokens