-
Notifications
You must be signed in to change notification settings - Fork 21
Description
Nice start! I'm running under native windows 2.x. Everything came up for the CC scan, but the Claude Desktop only MCP Servers were populated. Project History is blank.
here's a first pass at the problem solving with CC:
supposedly this will work correctly when run from wsl. Can you find any details on how things changed between wsl and native windows installer?
I'll search for any documentation or code that explains the difference between WSL and native [snipped da tooling]
Now I understand the issue! Let me explain what's happening:
The Key Difference
When you run the script: On Native Windows:
platform.system() returns 'Windows'
Looks for Claude Desktop at: %APPDATA%\Claude\claude_desktop_config.json
This file only contains MCP configs, NO project history
From WSL:
platform.system() returns 'Linux'
Looks for:
Claude Code: ~/.claude.json (in WSL home directory)
Claude Desktop: ~/.config/Claude/claude_desktop_config.json (Linux path)
Why WSL "Works"
When running from WSL, you're likely detecting Claude Code installed in WSL, not Claude Desktop. Here's what's probably happening:
server.py lines 23-30
Claude Code config
claude_code_path = Path.home() / '.claude.json' # In WSL: /home/username/.claude.json
if claude_code_path.exists():
configs['code'] = {
'path': claude_code_path,
'name': 'Claude Code (CLI)',
'type': 'code' # ← This HAS projects!
}
The Reality
Claude Desktop config files NEVER contain project history on ANY platform. They only store:
mcpServers: MCP server configurations
That's it!
Claude Code config files (.claude.json) DO contain:
mcpServers: MCP server configurations
projects: Full conversation history
numStartups: Startup count
To verify this
Run this from WSL to see which configs it detects:
python3 -c "import platform; print('Platform:', platform.system()); from pathlib import Path; print('Claude Code:', (Path.home() / '.claude.json').exists()); print('Claude Desktop:', (Path.home() / '.config/Claude/claude_desktop_config.json').exists())"
If you want the script to detect Windows Claude Desktop from WSL, you'd need to access it via the Windows filesystem mount:
Add WSL-aware Windows detection
if platform.system() == 'Linux' and Path('/mnt/c').exists(): # Running in WSL
win_username = os.environ.get('USER') # or parse from /mnt/c/Users
claude_desktop_path = Path(f'/mnt/c/Users/{win_username}/AppData/Roaming/Claude/claude_desktop_config.json')
But again, that file won't have projects anyway - only MCP configs!