LSP Not Working
If type-checking is not working in Claude Code, follow these diagnostic steps:Backend Not in PATH
Backend Not in PATH
The most common issue is that the LSP backend executable is not available in your PATH.Check if backend is installed:If the command returns nothing, install the backend:
Plugin Settings Check
Plugin Settings Check
Verify that typemux-cc is enabled and the official pyright plugin is disabled.Check plugin configuration:Your settings should look like this:
Enabling File Logging
By default, typemux-cc logs to stderr. For persistent logging, enable file output:File logging is essential for troubleshooting. Enable it first before investigating issues.
Checking Logs
Once file logging is enabled, you can inspect the logs:Log Levels
Control log verbosity with theRUST_LOG environment variable:
Common Error Messages
Backend process failed to start
Backend process failed to start
Symptom: LSP features not working, log shows backend spawn failure.Causes:
- Backend executable not in PATH
- Backend installed in a virtualenv that’s not active
- Permission issues
venv_path=None in logs
venv_path=None in logs
Symptom: Type-checking not using your project’s dependencies.Cause: The file was opened before
.venv was created, so typemux-cc cached None for that document.Solution: Reopen the file after creating .venv. See .venv Not Switching for details.Cannot find module 'X' (but it's installed in .venv)
Cannot find module 'X' (but it's installed in .venv)
Symptom: Import errors for packages that exist in your
.venv.Possible causes:- Backend is using wrong
.venvor no.venv - File is outside git repository boundary
- Using setuptools editable install
All LSP backends (pyright, ty, pyrefly) cannot resolve imports from setuptools-style editable installs. Switch to hatchling/flit or add source paths to backend config.
Multiple .venv detected, using X
Multiple .venv detected, using X
Symptom: Warning in logs about multiple
.venv directories.Behavior: typemux-cc searches upward from the file and stops at the git repository root. If multiple .venv directories exist at different levels, it uses the closest one.Example:This is expected behavior in monorepos. Each project’s
.venv is isolated and typemux-cc routes requests accordingly.Configuration Reference
All configuration is done via environment variables in~/.config/typemux-cc/config:
| Variable | Description | Default |
|---|---|---|
TYPEMUX_CC_BACKEND | LSP backend to use (pyright, ty, pyrefly) | pyright |
TYPEMUX_CC_LOG_FILE | Log file path (stderr if not set) | Not set |
TYPEMUX_CC_MAX_BACKENDS | Max concurrent backend processes | 8 |
TYPEMUX_CC_BACKEND_TTL | Backend TTL in seconds (0 = disabled) | 1800 |
RUST_LOG | Log level (info, debug, trace) | typemux_cc=debug |
Still Having Issues?
If none of the above solutions work:-
Enable trace logging:
- Restart Claude Code and reproduce the issue
-
Share the logs when reporting the issue: