Claude Code's official pyright plugin spawns a single LSP backend at startup and holds onto it. If .venv doesn't exist yet — or you create a new one later — it never picks it up. You have to restart Claude Code.
This is especially painful with git worktrees, now common in AI-assisted development: you spin up a fresh worktree, create .venv, and then must restart Claude Code just to get type-checking.
typemux-cc is a Python LSP proxy that fixes this — .venv changes are reflected within your running session, no restarts required.
Quickstart
# 1. Install a backend (pyright recommended)
npm install -g pyright
# 2. Disable the official pyright plugin
/plugin disable pyright-lsp@claude-plugins-official
# 3. Add marketplace and install
/plugin marketplace add K-dash/typemux-cc
/plugin install typemux-cc@typemux-cc-marketplace
# 4. Restart Claude Code (initial installation only)
For ty/pyrefly, set TYPEMUX_CC_BACKEND in your config.
Problems Solved
- ⚡ Late
.venv creation (worktrees, hooks) — Spin up a git worktree, create .venv later, and typemux-cc picks it up on the next file open. No Claude Code restart needed.
- 🔄 Multi-project venv switching (monorepos) — typemux-cc keeps a per-
.venv backend pool and routes requests to the correct one. Switching between projects is instant.
- 🔀 Multi-backend support — Not locked into pyright. Choose between pyright, ty, or pyrefly — switch via a single env var.
Why LSP over text search? In monorepos, grep returns false positives from same-named types across projects. LSP resolves references at the type-system level. See real-world benchmarks.
Supported Backends
| Backend | Command | Status |
|---|
| pyright | pyright-langserver --stdio | ✅ Stable (default if TYPEMUX_CC_BACKEND is not set) |
| ty | ty server | ✅ Stable |
| pyrefly | pyrefly lsp | ✅ Stable |
Requirements
Supported OS
| Platform | Architecture |
|---|
| macOS | arm64 only |
| Linux | x86_64 / arm64 |
[!Note]
Windows is currently unsupported (due to path handling differences).
Intel macOS users must build from source (prebuilt binaries are arm64 only).
Prerequisites