Contents

ldomaradzki/xcsift

A Swift command-line tool to parse and format xcodebuild/SPM output for coding agents, optimized for token efficiency.

Overview

xcsift transforms verbose Xcode build output into concise, structured formats that coding agents and LLMs can efficiently parse and act upon. Unlike xcbeautify and xcpretty which focus on human-readable output, xcsift prioritizes information density and machine readability.

Features

  • Multiple output formats — JSON (default), TOON (30-60% fewer tokens), GitHub Actions
  • Structured error reporting — errors, warnings, linker errors, test failures with file/line locations
  • Automatic code coverage — converts .profraw (SPM) and .xcresult (xcodebuild) to JSON
  • Build info — per-target phases, timing, dependencies, and slowest targets
  • Test analysis — slow test detection, flaky test detection, duration tracking
  • GitHub Actions integration — auto-detected workflow annotations with inline PR comments
  • Configuration files.xcsift.toml for project or user-wide defaults
  • Quiet/Werror/exit-on-failure modes — for CI pipelines
  • xcbeautify/Tuist input — parse pre-formatted output with --xcbeautify

See the full documentation for details.

Installation

Homebrew (Recommended)

brew install xcsift

Build from Source

git clone https://github.com/ldomaradzki/xcsift.git
cd xcsift
swift build -c release
cp .build/release/xcsift /usr/local/bin/

Also available via mise and Mint.

Plugin Installation

Integrate with coding assistants via built-in installers:

| Assistant | Install | Uninstall | |-----------|---------|-----------| | Claude Code | xcsift install-claude-code | xcsift uninstall-claude-code | | Codex | xcsift install-codex | xcsift uninstall-codex | | Cursor | xcsift install-cursor | xcsift uninstall-cursor |

See Plugin Installation for options and verification steps.

Quick Start

Pipe any xcodebuild or SPM command through xcsift. Always use 2>&1 to capture stderr.

# Build
xcodebuild build 2>&1 | xcsift
swift build 2>&1 | xcsift

# Test with coverage
swift test --enable-code-coverage 2>&1 | xcsift --coverage
xcodebuild test -enableCodeCoverage YES 2>&1 | xcsift -c --coverage-details

# TOON format (30-60% fewer tokens)
xcodebuild build 2>&1 | xcsift -f toon -w

# Warnings as errors + exit on failure (CI)
xcodebuild build 2>&1 | xcsift --Werror --exit-on-failure

# Configuration file
xcsift --init                    # Generate .xcsift.toml template

See Usage for the full CLI reference, Output Formats for JSON/TOON/GitHub Actions details, and Configuration for config file options.

Comparison with xcbeautify/xcpretty

| Feature | xcsift | xcbeautify | xcpretty | |---------|---------|------------|----------| | Target audience | Coding agents / LLMs / CI | Humans / CI | Humans | | Output format | JSON + TOON + GH Actions | Colorized text + GH Actions | Formatted text | | Token efficiency | Very High (TOON) | Medium | Low | | LLM optimization | Yes (TOON format) | No | No | | Machine readable | Yes | No | Limited | | GitHub Actions | Yes (auto-detected) | Yes | No | | Error extraction | Structured | Visual | Visual | | Linker errors | Yes (structured) | No | No | | Code coverage | Auto-converts | No | No | | Build time | Fast | Fast | Slower |

Platform Support

  • macOS 15+: Full support including code coverage
  • Linux (Swift 6.0+): Build/test parsing supported; coverage features unavailable

Development

swift build                            # Build
swift test                             # Run tests
swift format --recursive --in-place .  # Format (required before committing)

Documentation source is in Sources/xcsift.docc/. Preview locally:

swift package --disable-sandbox preview-documentation --target xcsift

Hosted docs: ldomaradzki.github.io/xcsift

License

MIT License

Package Metadata

Repository: ldomaradzki/xcsift

Default branch: master

README: README.md