Use xcsift for Swift and Xcode build output. Activate when running swift build, swift test, or xcodebuild commands. Pipe output through xcsift for structured TOON format optimized for LLM consumption.
xcsift parses and formats xcodebuild/SPM output into token-efficient TOON format optimized for LLM consumption. It extracts compile errors, warnings, test failures, code coverage, and build timing from verbose Xcode output.
Always pipe through xcsift when running:
xcodebuild build / xcodebuild testswift build / swift testInformational commands print an answer, not a build log. xcsift discards that answer, so run them directly:
xcodebuild -version / -usage / -helpxcodebuild -list / -showsdks / -showdestinations / -showTestPlans / -showBuildSettingsxcodebuild -find-executable / -find-library / -create-xcframeworkswift build --show-bin-path, swift test --list-tests, and any --help or --version commandAlways redirect stderr and use TOON format:
# Build
xcodebuild build 2>&1 | xcsift -f toon
swift build 2>&1 | xcsift -f toon
# Test
swift test 2>&1 | xcsift -f toon
xcodebuild test 2>&1 | xcsift -f toon
# With warnings
xcodebuild build 2>&1 | xcsift -f toon -w
# With code coverage
swift test --enable-code-coverage 2>&1 | xcsift -f toon -c
xcodebuild test -enableCodeCoverage YES 2>&1 | xcsift -f toon -c
# With detailed per-file coverage
swift test --enable-code-coverage 2>&1 | xcsift -f toon -c --coverage-details
# With executable targets
xcodebuild build 2>&1 | xcsift -f toon -e
# Strict CI mode (fail on warnings or errors)
xcodebuild build 2>&1 | xcsift -f toon -W -E
# Slow test detection
swift test 2>&1 | xcsift -f toon --slow-threshold 1.0
# Build info (per-target phases, timing, dependencies)
xcodebuild build 2>&1 | xcsift -f toon --build-info
| Flag | Description |
|------|-------------|
| -f toon | TOON format (30-60% fewer tokens than JSON) |
| -w | Show detailed warnings list |
| -W | Treat warnings as errors (Werror) |
| -q | Quiet mode (no output on clean success) |
| -c | Include code coverage summary |
| --coverage-details | Per-file coverage breakdown (use with -c) |
| -e | Include executable targets |
| -E | Exit with non-zero code on build failure |
| --build-info | Per-target phases, timing, and dependencies |
| --slow-threshold N | Flag tests slower than N seconds |
| --config PATH | Use custom config file (default: .xcsift.toml) |
| --init | Generate .xcsift.toml template in current directory |
TOON uses indentation-based structure with tabular arrays:
status: failed
summary:
errors: 1
warnings: 3
failed_tests: 2
passed_tests: 10
build_time: 12.4s
test_time: 5.2s
errors[1]{file,line,message}:
main.swift,15,"use of undeclared identifier 'foo'"
warnings[3]{file,line,message,type}:
Parser.swift,20,"unused variable 'result'",compile
View.swift,42,"Publishing changes from background threads",swiftui
Util.swift,10,"Custom warning message",runtime
failed_tests[2]{suite,test,file,line,message,duration}:
MyTests,testExample,MyTests.swift,25,"XCTAssertEqual failed",0.123
MyTests,testOther,MyTests.swift,30,"XCTAssertTrue failed",0.456
Key patterns:
status: succeeded or failederrors[N]{columns}: — tabular array with N items, column names in braceswarnings have type: compile, runtime, or swiftuifailed_tests include file/line for navigation and durationnull values mean the data wasn't available| Problem | Solution |
|---------|----------|
| No errors shown but build failed | Add 2>&1 to capture stderr |
| Coverage shows null | Add --enable-code-coverage (SPM) or -enableCodeCoverage YES (xcodebuild) |
| "xcsift not found" | Install: brew install xcsift or swift build -c release && cp .build/release/xcsift /usr/local/bin/ |
| Coverage for wrong target | xcsift auto-filters to tested target; use --coverage-path to override |
| Config not loading | Check .xcsift.toml in CWD or ~/.config/xcsift/config.toml |
2>&1 to capture stderr (compiler errors and warnings go to stderr)| xcsift -f toon to the end下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer