[BUG] claude --version reports the PATH CLI, not the binary running the current Claude Desktop session

Status Open
Reported on v2.1.247
Maintainer reply None cached
Activity 0 comments · opened Aug 31, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version available to me (2.1.247, bundled with Claude Desktop; latest published is 2.1.251)

What's Wrong?

Inside a Claude Code session running in the Claude Desktop app, claude --version reports the version of the standalone terminal CLI on PATH — not the version of the binary actually executing the session.

Measured 2026-08-31 in a live desktop session:

$ echo $CLAUDE_CODE_ENTRYPOINT
claude-desktop

$ echo $CLAUDE_CODE_EXECPATH
~/Library/Application Support/Claude/claude-code/2.1.247/claude.app/Contents/MacOS/claude

$ claude --version
2.1.235 (Claude Code)

$ command -v claude
~/.local/bin/claude

So three different "current" versions coexist on one machine, all true, none interchangeable:

| Version | What it is |
|---|---|
| 2.1.235 | the standalone terminal CLI on PATH — what claude --version prints |
| 2.1.247 | the binary actually executing this session ($CLAUDE_CODE_EXECPATH) |
| 2.1.251 | latest published release |

The skew direction is the counter-intuitive part: the desktop app runs ahead of the terminal CLI, not behind it. So the reported number isn't merely stale in a predictable direction — it can be newer or older depending on which surface last updated.

What Should Happen?

When run inside a Claude Code session, claude --version should report the version of the process serving that session — or report both, explicitly labelled, e.g.:

2.1.247 (Claude Code, this session)
2.1.235 (Claude Code CLI on PATH)

Why It Matters

This bug report form has a required Version field and a required preflight checkbox asserting "I am using the latest version of Claude Code". A user in a desktop session fills in both from claude --version and gets both wrong — so triage receives a version number that does not correspond to the code that produced the behaviour. That is a bug in the reporting path itself, which makes every other report slightly less reliable.

Beyond triage: any user-side documentation, changelog note, or automation that stamps observed behaviour against claude --version is recording it against the wrong build. I found this after stamping several internal notes with a version that was never running.

Steps to Reproduce

  1. Open a Claude Code session inside the Claude Desktop app on macOS, with a standalone claude CLI also installed on PATH at a different version
  2. Run claude --version
  3. Compare with echo $CLAUDE_CODE_EXECPATH

Observed: step 2 reports the PATH CLI's version; step 3 shows a different version actually executing.

Is this a regression?

Unknown — likely present since the desktop app began bundling its own Claude Code build.

Environment

  • macOS (Darwin 25.5.0), Apple Silicon
  • CLAUDE_CODE_ENTRYPOINT=claude-desktop, session running 2.1.247, PATH CLI at 2.1.235

View original on GitHub ↗