termio-device
See and drive the sibling agent sessions running alongside you on this machine via the…
Profile native macOS/iOS apps using Time Profiler via CLI (xctrace). Use when asked to identify performance hotspots, profile CPU usage, or diagnose slow code paths without opening Instruments.
$ npx -y skills add termio-sh/termio --skill native-app-profiling --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/native-app-profilingContext preview
The summary Claude sees to decide when to auto-load this skill.
Profile native macOS/iOS apps using Time Profiler via CLI (xctrace). Use when asked to identify performance hotspots, profile CPU usage, or diagnose slow code paths without opening Instruments.
name: native-app-profiling description: Profile native macOS/iOS apps using Time Profiler via CLI (xctrace). Use when asked to identify performance hotspots, profile CPU usage, or diagnose slow code paths without opening Instruments.
Record Time Profiler via `xctrace`, extract samples, symbolicate, and identify hotspots without opening Instruments.
**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/AppList 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.xmlWhile the app is running, get the `__TEXT` segment load address:
vmmap <pid> | grep "__TEXT"
Look for the load address (typically starts with `0x1...`).
Use `atos` to symbolicate addresses:
atos -o /path/to/App.app/Contents/MacOS/App -l 0x100000000 <address>
List all profiling templates:
xcrun xctrace list templates
Common templates:
| 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>` |
1. Export the trace to XML 2. Parse the call tree data 3. Look for frames with high sample counts 4. Focus on your app's code (filter out system frameworks)
Look for:
For iOS apps on simulator:
xcrun xctrace record \
--template 'Time Profiler' \
--device <simulator-udid> \
--time-limit 60s \
--output /tmp/iOS-App.trace \
--launch -- <bundle-id>Get simulator UDID:
xcrun simctl list devices | grep Booted
Basic recording script:
#!/bin/bash
set -e
APP_NAME="$1"
DURATION="${2:-60}"
OUTPUT="${3:-/tmp/$APP_NAME.trace}"
if [ -z "$APP_NAME" ]; then
echo "Usage: $0 <app-name> [duration-seconds] [output-path]"
exit 1
fi
PID=$(pgrep -x "$APP_NAME" || true)
if [ -n "$PID" ]; then
echo "Attaching to running $APP_NAME (PID: $PID)"
xcrun xctrace record \
--template 'Time Profiler' \
--time-limit "${DURATION}s" \
--output "$OUTPUT" \
--attach "$PID"
else
echo "App not running. Please start $APP_NAME first."
exit 1
fi
echo "Trace saved to: $OUTPUT"
echo "To analyze: xcrun xctrace export --input $OUTPUT --toc"A terminal-first agentic development environment for agentic coding. Build for CLI/TUI agent. Runtime for Coding Agent, Tmux alternative
Repo: termio-sh/termio
See and drive the sibling agent sessions running alongside you on this machine via the…
See and drive the sibling agent sessions running alongside you in this Termio project via the…
Reverse-lookup glossary that turns a vague description of a web animation or motion effect…
Drive the running termio app via AppleScript / System Events to reach a UI state (focus the…
Apple's approach to interface design and fluid, physical motion, translated for the web. Use…
Drive App Store Connect from the terminal with the `asc` CLI — TestFlight builds, groups,…