[Bug] Update command shows false positive "Local installation not accessible" warning

Resolved 💬 3 comments Opened Dec 4, 2025 by joshpearce Closed Dec 8, 2025

Bug Description

if claude is in my path at /Users/josh/.claude/local/claude, then why is claude also telling me to make an alias to that

path?

⏺ If claude is already in your PATH and working (i.e., you can run claude from any directory), you can simply ignore the alias
suggestion. The suggestion is likely a generic post-install message that doesn't check whether the binary is already
accessible.

You can verify it's working by running:

which claude

If that returns /Users/josh/.claude/local/claude and you can run claude successfully, you're all set - no alias needed.

But look:

⏺ I'm ready - please share what you're seeing.

claude update

Current version: 2.0.58
Checking for updates...

Warning: Local installation not accessible
Fix: Create alias: alias claude="~/.claude/local/claude"
Claude Code is up to date (2.0.58)

⏺ Ah, I see the issue - claude update is running fine but still showing that warning. This seems like a bug in the update
check logic - it's warning about accessibility even though the command clearly works.

Let me help you investigate what might be triggering this:

⏺ Bash(which claude && type claude && ls -la ~/.claude/local/claude 2>/dev/null || echo "File not found at
~/.claude/local/claude")
⎿  /Users/josh/.claude/local/claude
claude is /Users/josh/.claude/local/claude
-rwxr-xr-x 1 josh staff 74 Aug 13 12:10 /Users/josh/.claude/local/claude*

⏺ Interesting - the file is only 74 bytes, so it's a wrapper script. Let me see what's inside:

⏺ Read(.claude/local/claude)
⎿  Read 2 lines

⏺ That explains it. The wrapper script at ~/.claude/local/claude delegates to the actual binary at
~/.claude/local/node_modules/.bin/claude.

The warning is a false positive - the update command's check for "local installation accessibility" likely isn't accounting
for this wrapper script pattern, even though everything works fine.

You can safely ignore the warning. The update completed successfully (confirmed "up to date"), and your installation is
working correctly. It's just an overly cautious check that doesn't recognize the wrapper script as a valid local
installation.

If it bothers you, you could file an issue at https://github.com/anthropics/claude-code/issues - it's a minor bug in the
update command's validation logic.

should i add ~/.claude/local/node_modules/.bin to my path instead?

⏺ You could, but I wouldn't recommend it:

  1. Your current setup is the intended design - the wrapper script exists precisely so you don't need to expose internal

paths like node_modules/.bin

  1. It might not fix the warning anyway - the check could be looking for something else entirely
  2. Adds clutter - node_modules/.bin directories can contain multiple binaries you may not want globally exposed

Your current PATH setup is correct. The warning is just a bug in the update command's validation logic - everything actually
works fine. I'd leave it as-is and optionally file an issue to get the false positive fixed upstream.

Environment Info

  • Platform: darwin
  • Terminal: Apple_Terminal
  • Version: 2.0.58
  • Feedback ID: 7303ca1b-1612-411c-92e6-8cc22d4ca6f9

Errors

[{"error":"AggregateError\n    at J2A.from (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:11:14602)\n    at hz.<anonymous> (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:29:10022)\n    at hz.emit (node:events:520:35)\n    at hz.emit (node:domain:489:12)\n    at UF1.<computed> (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:28:1117)\n    at ClientRequest.emit (node:events:520:35)\n    at ClientRequest.emit (node:domain:489:12)\n    at emitErrorEvent (node:_http_client:108:11)\n    at TLSSocket.socketErrorListener (node:_http_client:575:5)\n    at TLSSocket.emit (node:events:508:28)\n    at xVA.request (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:31:2130)\n    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n    at async $K0 (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:4275:8674)","timestamp":"2025-12-04T10:58:19.564Z"},{"error":"AggregateError\n    at J2A.from (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:11:14602)\n    at hz.<anonymous> (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:29:10022)\n    at hz.emit (node:events:520:35)\n    at hz.emit (node:domain:489:12)\n    at UF1.<computed> (file:///Users/josh/.claude/local/node_modules/@anthropic-ai/claude-code/cli.js:28:1117)\n    at ClientRequest.emit (node:events:520:35)\n    at Cli

Note: Error logs were truncated.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗