Summary
pip install (and pip install -e .) fails on systems that have Command Line Tools installed but not the full Xcode.app. The build backend explicitly rejects Command Line Tools and requires xcodebuild, but the actual build only uses swift build via Swift Package Manager — which works fine with just Command Line Tools.
Environment
- macOS 26.3 (Tahoe), Apple M3 Max
- Swift 6.2.3 (from Command Line Tools)
xcode-select -p → /Library/Developer/CommandLineTools
- Xcode.app not installed
Error
Running pip install -e . produces:
SwiftToolingError: The active developer directory is set to Command Line Tools
(/Library/Developer/CommandLineTools), but a full Xcode installation is required.
Please install Xcode. Then open Xcode at least once to accept the license agreement
and install the Swift SDKs.
Root Cause
In build_backend.py, _build_c_bindings() performs three checks that require Xcode.app:
xcode-select -p path check — rejects if path contains CommandLineTools
xcodebuild existence check — xcodebuild binary exists in PATH but fails with: "tool 'xcodebuild' requires Xcode, but active developer directory is a command line tools instance"
xcodebuild -version parse — requires Xcode version >= 26.0
However, the actual compilation (lines 74-81) only uses:
subprocess.run(["swift", "build", "-c", swift_build_config], ...)
This is a pure Swift Package Manager build — it does not invoke xcodebuild at all. The Swift toolchain from Command Line Tools is sufficient.
Workaround
Removing the Xcode checks from build_backend.py (lines 71-131 in the original) allows the build to succeed:
# Replace the xcode-select + xcodebuild checks with just:
# (swift is already checked above)
After this change, pip install -e . completes successfully and the SDK works correctly (text generation, streaming, guided generation, tool calling all verified).
Suggested Fix
Either:
- Remove the Xcode.app requirement entirely, since
swift build doesn't need it
- Make it a warning instead of an error, so users with Command Line Tools can still proceed
- Check for Swift SDK availability directly (e.g.,
swift sdk list or check for the macOS SDK) rather than using Xcode.app as a proxy
The macOS version check and swift executable check should remain — those are genuine requirements.
Summary
pip install(andpip install -e .) fails on systems that have Command Line Tools installed but not the full Xcode.app. The build backend explicitly rejects Command Line Tools and requiresxcodebuild, but the actual build only usesswift buildvia Swift Package Manager — which works fine with just Command Line Tools.Environment
xcode-select -p→/Library/Developer/CommandLineToolsError
Running
pip install -e .produces:Root Cause
In
build_backend.py,_build_c_bindings()performs three checks that require Xcode.app:xcode-select -ppath check — rejects if path containsCommandLineToolsxcodebuildexistence check —xcodebuildbinary exists in PATH but fails with:"tool 'xcodebuild' requires Xcode, but active developer directory is a command line tools instance"xcodebuild -versionparse — requires Xcode version >= 26.0However, the actual compilation (lines 74-81) only uses:
This is a pure Swift Package Manager build — it does not invoke
xcodebuildat all. The Swift toolchain from Command Line Tools is sufficient.Workaround
Removing the Xcode checks from
build_backend.py(lines 71-131 in the original) allows the build to succeed:After this change,
pip install -e .completes successfully and the SDK works correctly (text generation, streaming, guided generation, tool calling all verified).Suggested Fix
Either:
swift builddoesn't need itswift sdk listor check for the macOS SDK) rather than using Xcode.app as a proxyThe macOS version check and
swiftexecutable check should remain — those are genuine requirements.