# Send Instruments Profiling to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "instruments-profiling",
    "name": "Instruments Profiling",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/steipete/instruments-profiling",
    "canonicalUrl": "https://clawhub.ai/steipete/instruments-profiling",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/instruments-profiling",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=instruments-profiling",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "instruments-profiling",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-04T09:23:40.703Z",
      "expiresAt": "2026-05-11T09:23:40.703Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=instruments-profiling",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=instruments-profiling",
        "contentDisposition": "attachment; filename=\"instruments-profiling-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "instruments-profiling"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/instruments-profiling"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/instruments-profiling",
    "downloadUrl": "https://openagent3.xyz/downloads/instruments-profiling",
    "agentUrl": "https://openagent3.xyz/skills/instruments-profiling/agent",
    "manifestUrl": "https://openagent3.xyz/skills/instruments-profiling/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/instruments-profiling/agent.md"
  }
}
```
## Documentation

### Instruments Profiling (macOS/iOS)

Use this skill when the user wants performance profiling or stack analysis for native apps.
Focus: Time Profiler, xctrace CLI, and picking the correct binary/app instance.

### Quick Start (CLI)

List templates: xcrun xctrace list templates
Record Time Profiler (launch):

xcrun xctrace record --template 'Time Profiler' --time-limit 60s --output /tmp/App.trace --launch -- /path/To/App.app


Record Time Profiler (attach):

Launch app yourself, get PID, then:
xcrun xctrace record --template 'Time Profiler' --time-limit 60s --output /tmp/App.trace --attach <pid>


Open trace in Instruments:

open -a Instruments /tmp/App.trace

Note: xcrun xctrace --help is not a valid subcommand. Use xcrun xctrace help record.

### Picking the Correct Binary (Critical)

Gotcha: Instruments may profile the wrong app (e.g., one in /Applications) if LaunchServices resolves a different bundle.
Use these rules:

Prefer direct binary path for deterministic launch:

xcrun xctrace record ... --launch -- /path/App.app/Contents/MacOS/App


If launching .app, ensure it’s the intended bundle:

open -n /path/App.app
Verify with ps -p <pid> -o comm= -o command=


If both /Applications/App.app and a local build exist, explicitly target the local build path.
After launch, confirm the process path before trusting the trace.

### Command Arguments (xctrace)

--template 'Time Profiler': template name from xctrace list templates.
--launch -- <cmd>: everything after -- is the target command (binary or app bundle).
--attach <pid|name>: attach to running process.
--output <path>: .trace output. If omitted, file saved in CWD.
--time-limit 60s|5m: set capture duration.
--device <name|UDID>: required for iOS device runs.
--target-stdout -: stream launched process stdout to terminal (useful for CLI tools).

### Exporting Stacks (CLI)

Inspect trace tables:

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


Export raw time-profile samples:

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


Post-process in a script (Python/Rust) to aggregate stacks.

### Instruments UI Workflow

Template: Time Profiler
Use “Record” and capture the slow path (startup vs steady-state)
Call Tree tips:

Hide System Libraries
Invert Call Tree
Separate by Thread
Focus on hot frames and call counts

### Gotchas & Fixes

Wrong app profiled: LaunchServices resolves installed app instead of local build.

Fix: use direct binary path or --attach with known PID.


No samples / empty trace: App exits quickly or never hits work.

Fix: longer capture, trigger workload during recording.


Privacy prompts: xctrace may need Developer Tools permission.

Fix: System Settings → Privacy & Security → Developer Tools → allow Terminal/Xcode.


Large XML exports: time-profile exports are huge.

Fix: filter with XPath and aggregate offline; don’t print to terminal.

### iOS Specific Notes

Device: use xcrun xctrace list devices and --device <UDID>.
Launch via Xcode if needed; attach with xctrace --attach.
Ensure debug symbols for meaningful stacks.

### Verification Checklist

Confirm trace process path matches target build.
Confirm stacks show expected app frames.
Capture covers the slow operation (startup/refresh).
Export stacks for automated diffing if optimizing.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: steipete
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-04T09:23:40.703Z
- Expires at: 2026-05-11T09:23:40.703Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/instruments-profiling)
- [Send to Agent page](https://openagent3.xyz/skills/instruments-profiling/agent)
- [JSON manifest](https://openagent3.xyz/skills/instruments-profiling/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/instruments-profiling/agent.md)
- [Download page](https://openagent3.xyz/downloads/instruments-profiling)