From peekie
Parses Xcode .xcresult bundles via peekie CLI subcommands (tests, warnings, errors, coverage) emitting structured JSON/list/sonar. Use when the user provides an .xcresult path or asks about test failures, build warnings, errors, or coverage.
How this skill is triggered — by the user, by Claude, or both
Slash command
/peekie:peekieThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`peekie` is a CLI for Xcode `.xcresult` bundles. Four data-axis subcommands, each emitting JSON (or list / sonar). Reach for it before composing `xcrun xcresulttool` calls — Peekie is faster, terser, and runs only the `xcresulttool` invocations its subcommand needs.
peekie is a CLI for Xcode .xcresult bundles. Four data-axis subcommands, each emitting JSON (or list / sonar). Reach for it before composing xcrun xcresulttool calls — Peekie is faster, terser, and runs only the xcresulttool invocations its subcommand needs.
peekie tests <xcresult> [--format json|list|sonar] default: list
peekie warnings <xcresult> [--format json|list] default: json
peekie errors <xcresult> [--format json|list] default: json
peekie coverage <xcresult> [--format json|list] default: json
Each subcommand is single-purpose. To get both warnings and coverage, run two commands and pipe / merge their outputs.
| User goal | Subcommand |
|---|---|
| "Did the tests pass?" / "What failed?" | peekie tests |
| "What warnings are in this build?" | peekie warnings |
| "Why is the build broken?" / "Show me errors" | peekie errors |
| "What's the coverage?" / "Coverage per module" | peekie coverage |
| "Generate SonarQube test report" | peekie tests --format sonar --tests-path … |
peekie tests --format json{
"coverage": null,
"modules": [
{
"name": "Calculator",
"suites": [
{"name": "CalculatorTests", "tests": [{"name": "testAdd()", "status": "success", "durationMs": 12.5, "message": null}]}
],
"files": []
}
]
}
files and top-level coverage are empty/null because peekie tests doesn't fetch coverage data. Use peekie coverage for that.
peekie warnings (default JSON)[
{"file": "Foo.swift", "line": 42, "column": 8, "type": "DeprecatedDeclaration", "message": "'oldFoo()' is deprecated: use bar"},
{"file": "Foo.swift", "line": 51, "column": 8, "type": "DeprecatedDeclaration", "message": "'oldFoo()' is deprecated: use bar"}
]
Flat sorted array. line / column are null when xcresult didn't emit them. Type values are the raw Apple issueType strings (Swift Compiler Warning, Swift Compiler Error, DeprecatedDeclaration, No-usage, plus anything new Apple adds).
peekie errors (default JSON)Same shape as peekie warnings.
peekie coverage (default JSON){
"coverage": 0.6234,
"modules": [
{
"name": "Calculator",
"coverage": 0.71,
"coveredLines": 167,
"totalLines": 233,
"files": [
{"name": "Calculator.swift", "path": "/…/Calculator.swift", "coverage": 0.71, "coveredLines": 167, "totalLines": 233}
]
}
]
}
errors=$(peekie errors Build.xcresult | jq 'length')
if [ "$errors" -gt 0 ]; then
peekie errors Build.xcresult --format list
exit 1
fi
peekie coverage Tests.xcresult | jq '.coverage * 100 | floor'
peekie warnings Build.xcresult | jq 'group_by(.type) | map({type: .[0].type, count: length})'
peekie tests Tests.xcresult --include failure,mixed --format json | …
peekie tests --include … — comma-separated statuses (success,failure,skipped,expectedFailure,mixed,unknown). Default: all.peekie warnings / peekie errors have no --include flag. Filter the JSON output with jq or grep the list output.If peekie is not on $PATH, suggest the user run:
mise use github:dodobrands/peekie
Or download a binary from Releases. Do not suggest swift run peekie … — that's the contributor flow, not the user flow.
--include-coverage / --include-warnings / --include-tests flags on the CLI. They exist on the SDK; on the CLI the subcommand itself determines what gets fetched.xcrun xcresulttool directly when one of the four subcommands gives you the same data. peekie warnings runs one xcresulttool call; the equivalent hand-rolled pipeline runs three.peekie tests to print coverage or peekie coverage to print suites — each subcommand is single-purpose by design.npx claudepluginhub dodobrands/peekie --plugin peekieFormats Swift/Xcode build and test outputs via xcsift into token-efficient TOON with errors, warnings, failures, coverage, timings, and slow tests.
Guides Xcode build workflows for iOS projects using execute_xcode_command tool. Covers builds, tests, cleans, schemes, xcodebuild output interpretation, and error troubleshooting.
Parses JUnit XML, Jest JSON, pytest results, and coverage data to generate Markdown/HTML test reports with metrics, failures, slowest tests, and CI annotations.