Skip to content

Add Claude Desktop support to nlm setup - #275

Merged
jacob-bd merged 1 commit into
jacob-bd:mainfrom
sanjarcode:add-claude-desktop-support
Aug 3, 2026
Merged

Add Claude Desktop support to nlm setup#275
jacob-bd merged 1 commit into
jacob-bd:mainfrom
sanjarcode:add-claude-desktop-support

Conversation

@sanjarcode

Copy link
Copy Markdown
Contributor

Summary

The README documents nlm setup add claude-desktop and lists Claude Desktop's config path, but the CLI's CLIENT_REGISTRY never actually defined a claude-desktop client:

$ nlm setup add claude-desktop
Error: Unknown client 'claude-desktop'
Available clients: claude-code, gemini, cursor, github-copilot, windsurf, cline, antigravity, codex, opencode, json, all

It was also silently absent from nlm setup list and the nlm doctor client check.

  • Adds a claude-desktop client to CLIENT_REGISTRY with a platform-aware config path resolver (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%/Claude/claude_desktop_config.json on Windows, ~/.config/Claude/claude_desktop_config.json elsewhere)
  • _setup_claude_desktop() writes the full resolved path to the notebooklm-mcp binary rather than the bare command name, since Claude Desktop doesn't inherit the shell PATH (same caveat already called out in the README's manual setup section)
  • Wires it into detection (_detect_tool), _is_already_configured, setup add/setup remove/setup list, setup add all, nlm doctor, and the --ai docs
  • Checked nlm skill install — no change needed there, since its claude-code entry already covers "Claude Code CLI and Desktop" via the shared ~/.claude/ directory

Test plan

  • uv run pytest -q -m "not e2e" — 1264 passed, 38 skipped (no regressions)
  • Added tests/cli/test_setup_claude_desktop.py covering registry, config path (macOS/Windows/Linux), setup (fresh/full-path-fallback/preserve-existing/idempotent), detection, _is_already_configured, and removal
  • uv run ruff check — clean
  • uv run mypy — confirmed the pre-existing 17 errors in setup.py are unchanged by this diff (same count/lines on main)
  • Manually verified nlm setup list now shows "Claude Desktop" as a row

The README documented `nlm setup add claude-desktop` and listed Claude
Desktop's config path, but the CLI's CLIENT_REGISTRY never actually
defined a `claude-desktop` client — running the documented command
failed with "Unknown client 'claude-desktop'", and it was silently
absent from `nlm setup list` and `nlm doctor`.

Adds a claude-desktop entry across setup.py (config path resolution,
registry, setup/detect/remove/list wiring) using the full resolved
binary path since Claude Desktop does not inherit the shell PATH, plus
matching coverage in doctor.py's client check and the --ai docs.
@jacob-bd
jacob-bd merged commit 054f871 into jacob-bd:main Aug 3, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants