Desktop app's git detection fails on macOS 26 CLT layout — false "Git is required" for local sessions

Status Fixed / completed
Reported on v2.1.234
Maintainer reply None cached
Activity 0 comments · opened Aug 18, 2026 · closed Aug 25, 2026

Environment

  • macOS 26.5.1 (Build 25F80)
  • Claude Desktop app version: 1.32885.0
  • Bundled Claude Code CLI (local): 2.1.234
  • Command Line Tools package: com.apple.pkg.CLTools_Executables 26.6.0.0.1781586589
  • Git: fully installed and functional — /usr/bin/gitgit version 2.50.1 (Apple Git-155)

Summary

After updating Claude Desktop, starting a local session shows:

"Install Git — Git is required to run local sessions. Run xcode-select --install in Terminal to install the Command Line Tools, or download Git directly — or switch to a remote environment."

This appears even though git is fully installed and working from Terminal. xcode-select --install does not resolve it, since Command Line Tools are already installed.

Root cause

Traced this in Claude.app/Contents/Resources/app.asar. The git-availability check (function b() in the bundle) does:

  1. Run /usr/bin/xcode-select -p to get the active Developer Directory (succeeds, returns /Library/Developer/CommandLineTools).
  2. Require both <devdir>/usr/bin/xcrun and <devdir>/usr/bin/git to exist as literal files, via:

``js
let n = (await Promise.all([
xcrun,git].map(n => t.ix(path.posix.join(e,usr,bin,n))))).every(Boolean);
``

  1. If either is missing → logs "[git] active developer dir "<path>" lacks a usable xcrun+git; treating git as unavailable" and shows the install-Git screen.

On this OS/CLT combination, Apple's CLT package no longer ships an xcrun binary inside <devdir>/usr/bin/ — confirmed via:

$ pkgutil --files com.apple.pkg.CLTools_Executables | grep -i xcrun
Library/Developer/CommandLineTools/usr/lib/libxcrun.dylib
Library/Developer/CommandLineTools/usr/share/man/man1/xcrun.1

No usr/bin/xcrun entry — it's not part of the package manifest, so it will never be there regardless of reinstalling CLT. The real xcrun lives only at the top-level /usr/bin/xcrun, and it resolves git correctly:

$ xcrun -f git
/Library/Developer/CommandLineTools/usr/bin/git

So the check is stricter than necessary — it should either check for xcrun at /usr/bin/xcrun (or just use xcrun -f git / rely on PATH resolution) rather than requiring a redundant copy inside the active Developer Directory's usr/bin.

Steps to reproduce

  1. On macOS 26.x with CLT package ≥ 26.6.0, run xcode-select -p and confirm it returns a valid path.
  2. Confirm <that path>/usr/bin/git exists but <that path>/usr/bin/xcrun does not.
  3. Open Claude Desktop and start a local session.

Expected behavior

Git is detected as available (it is — git --version works fine).

Actual behavior

App reports git is missing and blocks local sessions.

Workaround

sudo ln -s /usr/bin/xcrun "$(xcode-select -p)/usr/bin/xcrun"

Creates a symlink at the path the check expects; satisfies the existence check without changing any real git/xcrun behavior.

View original on GitHub ↗