[BUG] claude-cli:// deeplink protocol not registered on macOS
Status Open
Reported on v2.1.211
Maintainer reply None cached
Activity 0 comments · opened Jul 16, 2026
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
The claude-cli:// URL scheme is not registered on macOS, causing "one-click CTA" links (e.g. from web pages) to fail with:
$ open "claude-cli://open?q=hello"
No application knows how to open URL claude-cli://open?q=hello
(NSOSStatusErrorDomain Code=-10814 "kLSApplicationNotFoundErr")
Environment
- macOS Darwin 25.3.0 (Sequoia)
- Claude Code version: 2.1.211 (npm, installed via nvm/Node 22)
- App bundle at: ~/Library/Application Support/Claude/claude-code/2.1.205/claude.app
What Should Happen?
Expected Behavior
- claude.app should declare claude-cli in CFBundleURLTypes in its Info.plist
- After installation/update, the app should register itself with LaunchServices (e.g. via lsregister)
- open "claude-cli://open?q=hello" should launch Claude Code
Error Messages/Logs
The Info.plist in the bundled claude.app does not contain a CFBundleURLTypes entry for the claude-cli URL scheme. Without this, macOS LaunchServices
cannot associate the protocol with the app.
Additionally, LaunchServices has stale entries for old versions (2.1.111, 2.1.128, 2.1.138) but the current version (2.1.205) does not appear in the
LaunchServices database, suggesting the app is not being re-registered with the OS after updates.
Steps to Reproduce
- Install Claude Code via npm (npm install -g @anthropic-ai/claude-code)
- Run open "claude-cli://open?q=hello" in terminal
- Observe kLSApplicationNotFoundErr
Claude Model
None
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.211
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
- A colleague on the same version (2.1.197) has this working, so the issue may be environment-specific (possibly related to nvm-based installation or old
stale LaunchServices entries interfering).
- Manually running lsregister on the app bundle does not help since the Info.plist lacks the URL scheme declaration.