mcpField
A
asc-performance

asc-performance

github.com/tddworksTesting & quality586 installsUpdated 5w ago
Repository

About asc-performance

asc-performance is a command-line skill for examining App Store app performance metrics and diagnostic logs. It helps developers review app- or build-level measurements and trace recurring issues such as hangs, slow launches, and disk writes.

Key features

  1. 01Lists app- and build-level performance metrics
  2. 02Covers launch, hang, memory, disk, and battery data
  3. 03Finds diagnostic signatures for hangs and slow launches
  4. 04Drills into logs and call stack summaries

Use cases

  1. 01Review performance indicators for an app or build
  2. 02Investigate hang hotspots and their call stacks
  3. 03Compare metrics across builds

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tddworks/asc-cli-skills --skill asc-performance

After installing, type/asc-performancein Claude Code to confirm it loaded.

Bundled filesreferences/commands.md

Details

From the project README

Power & Performance with asc

Download performance metrics and diagnostic logs to monitor app performance indicators — launch time, hang rate, disk writes, memory use, battery life, termination, and animation hitches.

Authentication

asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8

How to Navigate (CAEOAS Affordances)

Every JSON response contains an "affordances" field with ready-to-run commands — IDs already filled in. Follow the affordances to drill down from metrics to diagnostics to logs.

App metrics → Diagnostics → Logs flow:

// 1. asc perf-metrics list --app-id app-1 → shows performance overview
{
  "id": "app-1-LAUNCH-launchTime",
  "category": "LAUNCH",
  "latestValue": 1.5,
  "affordances": {
    "listAppMetrics": "asc perf-metrics list --app-id app-1"
  }
}

// 2. asc diagnostics list --build-id build-1 → shows hotspots
{
  "id": "sig-1",
  "diagnosticType": "HANGS",
  "weight": 45.2,
  "affordances": {
    "listLogs": "asc diagnostic-logs list --signature-id sig-1",
    "listSignatures": "asc diagnostics list --build-id build-1"
  }
}

// 3. asc diagnostic-logs list --signature-id sig-1 → shows call stacks
{
  "id": "sig-1-0-0",
  "bundleId": "com.example.app",
  "callStackSummary": "main > UIKit > layoutSubviews",
  "affordances": {
    "listLogs": "asc diagnostic-logs list --signature-id sig-1"
  }
}

Typical Workflows

Check app performance at a glance
asc perf-metrics list --app-id 123456789 --pretty
Investigate a specific metric type
# Launch time only
asc perf-metrics list --app-id 123456789 --metric-type LAUNCH --pretty

# Hang rate only
asc perf-metrics list --app-id 123456789 --metric-type HANG --pretty
Compare build-specific metrics
asc builds list --app-id 123456789 --output table
asc perf-metrics list --build-id build-abc --pretty
Diagnose hangs in a build
# 1. List diagnostic signatures (hang hotspots)
asc diagnostics list --build-id build-abc --diagnostic-type HANGS --pretty

# 2. Drill into the top signature's call stacks
asc diagnostic-logs list --signature-id sig-1 --pretty
Full investigation pipeline
# Start from builds
BUILD_ID=$(asc builds list --app-id APP_ID | jq -r '.data[0].id')

# Check performance metrics
asc perf-metrics list --build-id "$BUILD_ID" --pretty

# Find hang hotspots
asc diagnostics list --build-id "$BUILD_ID" --diagnostic-type HANGS --pretty

# Get call stacks for the heaviest signature
SIG_ID=$(asc diagnostics list --build-id "$BUILD_ID" --diagnostic-type HANGS \
  | jq -r '.data | sort_by(-.weight) | .[0].id')
asc diagnostic-logs list --signature-id "$SIG_ID" --pretty

Performance Metric Categories

Category--metric-type valueWhat it measures
LaunchLAUNCHApp launch time
HangHANGMain thread hang rate
MemoryMEMORYPeak and average memory use
DiskDISKDisk write volume
BatteryBATTERYEnergy impact
TerminationTERMINATIONBackground/foreground terminations
AnimationANIMATIONAnimation hitch rate
StorageSTORAGEStorage use

Diagnostic Types

Type--diagnostic-type valueWhat it captures
HangsHANGSMain thread hang signatures
Disk WritesDISK_WRITESExcessive disk write signatures
LaunchesLAUNCHESSlow launch signatures

Reading Results

PerformanceMetric — one row per metric identifier (e.g. launchTime, peakMemory), flattened from the nested Xcode Metrics API. Key fields:

  • category — which metric group (LAUNCH, HANG, etc.)
  • latestValue + unit — most recent measurement
  • goalValue — Apple's recommended target
  • parentType — "app" or "build" (tells you whether this came from app-level or build-level metrics)

DiagnosticSignatureInfo — a recurring issue pattern ranked by weight (% of occurrences). Higher weight = more impactful. insightDirection of "UP" means the issue is getting worse.

DiagnosticLogEntry — individual log with device metadata and callStackSummary (top 5 frames joined with >).

Full Command Reference

See commands.md for all flags and examples.

Comments

Markdown supported