xctrace-profiler

xctrace-profiler is a skill for Codex from jamesrochabrun/XcodeTraceMCP. It costs 108 tokens per session (2,280 once invoked), scanned A, original, MIT.

A tool for examining performance recordings from Xcode and Instruments, Apple’s tools for measuring how apps use CPU, memory, networks, and energy.

In plain words
What is it for?
Use it to profile an iPhone, iPad, or Mac app, record startup behavior, inspect an existing .trace file, and compare performance between two recordings.
Why use it?
It helps locate slow code, freezes, memory leaks, excess allocations, startup delays, and network problems without requiring you to inspect trace data by hand.

Skill for Codex

Written for Codex: agents/openai.yaml present.

Good fit Use it to profile an iPhone, iPad, or Mac app, record startup behavior, inspect an existing .trace file, and compare performance between two recordings.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jamesrochabrun/xcodetracemcp/xctrace-profiler
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 jamesrochabrun/XcodeTraceMCP --skill xctrace-profiler
Clone the repo
git clone --depth 1 https://github.com/jamesrochabrun/XcodeTraceMCP

Made for: 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 xctrace-profiler

README.md
[![agentmods](https://agentmods.dev/badge/skills/jamesrochabrun/xcodetracemcp/xctrace-profiler/github.svg)](https://agentmods.dev/skills/jamesrochabrun/xcodetracemcp/xctrace-profiler)
Your own site
<a href="https://agentmods.dev/skills/jamesrochabrun/xcodetracemcp/xctrace-profiler"><img src="https://agentmods.dev/badge/skills/jamesrochabrun/xcodetracemcp/xctrace-profiler/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 xctrace-profiler

Your own site · 80×15
<a href="https://agentmods.dev/skills/jamesrochabrun/xcodetracemcp/xctrace-profiler"><img src="https://agentmods.dev/badge/skills/jamesrochabrun/xcodetracemcp/xctrace-profiler.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 108 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,280 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.
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.00108 $0.02280
Opus 5 $0.00054 $0.01140
Sonnet 5 $0.00022 $0.00456
Haiku 4.5 $0.00011 $0.00228

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

Security

Grade A, and why

xctrace-profiler 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 10d 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/xctrace-profiler/SKILL.md · 103 lines

How it starts

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

Xcode Trace Profiler

Goal

Be the user-facing profiler for xctrace-analyzer. Users should ask in plain language; do not ask them to know MCP tool names or JSON. Choose the workflow, call the MCP execution tools, and report what xctrace could and could not export.

Simple Prompts

  • "Profile this app."
  • "Profile this app for hangs."
  • "Find why this app is slow."
  • "Check this build for leaks and allocation churn."
  • "Analyze network activity."
  • "Launch the app and profile startup."
  • "Record my app on launch."
  • "I will launch MyApp; record it for 60 seconds when it appears."
  • "Analyze this trace."
  • "Compare these two traces."

What It Can Track

  • CPU and Time Profiler bottlenecks
  • Hangs, freezes, stutters, microhangs, and severe hangs
  • Top User-Code Frames that attribute samples to app binaries
  • Leaks and allocation churn when Xcode exports usable rows
  • Network requests, failures, transfer volume, and top hosts when HAR or CFNetwork data is exportable
  • Energy / Power Profiler data where Xcode supports it, mainly iOS/iPadOS
  • Existing .trace files, optional dSYM symbolication, scoped timeRangeMs analysis, and Time Profiler regressions
  • Safe cleanup of generated .trace bundles after the user is done inspecting them

Workflow

  1. Classify the request.

    • Cleanup / delete traces: call cleanup_traces.
    • Existing .trace: call analyze_trace.
    • Baseline/current or regression: call compare_traces.
    • Explicit single template such as Leaks, Allocations, Network, or Time Profiler: call track_running_app.
    • Broad, vague, hangs, CPU, leaks, memory, allocations, network, energy, startup, or "profile this app": call profile_running_app.
  2. Establish the target.

    • Inspect the project for obvious Xcode targets, schemes, bundle names, app products, or trace paths before asking.
    • If shell access is available and the app may already be running, discover candidate PIDs and prefer the exact PID.
    • For already-running apps, use attach-by-PID immediately, especially when several processes share a name. Do not ask launch-prep questions for active app profiling.
    • Use launch mode only for explicit startup/cold-launch profiling.
    • For launch or startup prompts such as "get ready, I will launch my app", "record my app on launch", "profile when I launch it", or "cold launch profile", first establish what process should be watched.
    • If exactly one likely app target is discoverable, announce it and start manual-launch observation immediately: "I found MyApp. I'm watching for its PID now; launch it when ready."
    • If the app identity is missing or ambiguous, ask one concise question for the app name, bundle id, app path, or scheme, and offer observation as the easy fallback: "I can also start observing now and you can launch it after I say I'm watching."
    • Once manual launch observation starts, poll every 200-500 ms for up to 60 seconds while the user launches the app. As soon as one valid PID is visible, call the recording tool with target: "attach", processName set to that exact PID, and durationSeconds set from the user's requested duration so recording starts as close to launch as possible.
    • While observing, a short status such as "I'm watching for MyApp now; launch it when ready." is enough. Keep polling after sending that status.
    • If multiple matching PIDs appear during observation, prefer the newest app executable PID over helper processes. If ambiguity remains, keep observing briefly for a stable main-app PID; ask only if the candidates are still ambiguous.
    • If no PID appears before the observation timeout, tell the user no launch was detected and ask them to relaunch or provide the exact app name, bundle id, or PID.
    • If no target can be discovered, ask one concise question for the app path, scheme, bundle id, process name, or PID.
    • Infer userBinaryHints from the app, scheme, executable, module, or bundle name.

Read the full file on GitHub · 103 lines

Files

What ships with it

2 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. 10d ago First seen · 103 lines · 108 tokens per session scan A 5a24fe3af71b

Subscribe to this mod's changes

xctrace-profiler is a skill published in the GitHub repository jamesrochabrun/XcodeTraceMCP (44 stars, last pushed 3mo ago), licensed MIT. It adds 108 tokens to every session and 2,280 once invoked, about $0.0005 per session on Opus 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

ios-fix

Autonomous iOS bug fixer. (gstack).

garrytan/gstack · 15 tokens

google-mobile-ads-validate

Validates a project's Google Mobile Ads (GMA) SDK integration for iOS, Android, or Unity projects. Use when conducting a full pre-launch audit of an app that integrates GMA SDK or when validating any individual GMA SDK integration checks, such as when validating ad unit IDs and ad formats, SKAdNetwork IDs, mediation…

google/skills · 84 tokens

competition-ios-runtime

Internal downstream skill for ctf-sandbox-orchestrator. CTF-sandbox workflow for IPA runtime analysis, Frida hooks, Objective-C or Swift method tracing, Keychain inspection, SSL pinning bypass, URL scheme handling, and iOS request-signing recovery. Use when the user asks to hook an IPA, trace Objective-C or Swift…

zhaoxuya520/reverse-skill · 123 tokens

swiftui-performance-audit

SwiftUI performance: render, scroll, CPU/memory, updates, layout, Instruments.

steipete/agent-scripts · 24 tokens

android-tombstone-symbolication

Symbolicate the .NET runtime frames in an Android tombstone file. Extracts BuildIds and PC offsets from the native backtrace, downloads debug symbols from the Microsoft symbol server, and runs llvm-symbolizer to produce function names with source file and line numbers. USE FOR triaging a .NET MAUI or Mono Android app…

dotnet/skills · 176 tokens

node-connect

Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing required, unauthorized, bootstrap token invalid or expired, gateway.bind, gateway.remote.url, Tailscale…

the-open-agent/openagent · 81 tokens