Tools

QuietLSP

Filters language-server diagnostics so Claude Code sessions do not receive unrelated workspace warnings.

The problem it solves

Several agent sessions or worktrees can share one language-server environment. Unrelated diagnostics then distract the wrong session. QuietLSP sits between Claude Code and the real server, retaining diagnostics for the session’s directory and validated workspace roots while filtering unrelated local files.

Ways to use it

  • Keep two worktrees from distracting each other

    Start one new Claude Code session from each worktree root. A local-file diagnostic in B is filtered from A unless B is deliberately included in A’s validated workspace roots.

  • Keep real errors in your active project

    An obvious TypeScript error inside your workspace should still reach the agent. QuietLSP scopes diagnostics; it does not lower severity, fix code or silence every warning.

Before you start

  • Claude Code with its language-server feature and a working typescript-language-server or rust-analyzer.
  • Node.js 22+ for the runtime generation used in the project’s CI, plus Git to clone the repository.
  • A stable installation folder and permission to adjust the PATH inherited by new client sessions. No Bash or WSL is needed for the Windows Node installer.

Install and set up

  1. Check the real server first

    For TypeScript, verify that the real language server is installed and can find TypeScript. For Rust, use rust-analyzer --version instead; a rustup proxy path alone does not prove the server works.

    typescript-language-server --version
  2. Install the owned shims

    Clone into a folder you will keep. The installer records paths to this clone and the real server; it refuses to overwrite foreign shims and does not modify plugin-cache files.

    git clone https://github.com/alexcodeplace/quietlsp.git
    cd quietlsp
    node install-quietlsp.mjs
    node install-quietlsp.mjs --status
  3. Check the client’s PATH order

    The default directory is ~/.claude/bin on Unix or %USERPROFILE%\.claudein on Windows. It must precede the real server on the PATH seen by new Claude Code sessions. Use command -v on Unix or where.exe on Windows; do not restart active sessions.

Use it in your project

  1. Start a new session from the right root

    Launch Claude Code from the project or worktree you want to work on. Continue editing normally; the shim filters the LSP stream without a separate daily command.

  2. Verify scope, not silence

    Use disposable TypeScript files to check that an in-scope type error remains visible and an unrelated local file is filtered. Explicitly included workspace folders remain in scope. Consult the README for diagnostic-log paths.

  3. Remove only QuietLSP when needed

    Run from the kept clone. The uninstaller removes owned shims, not the real language server. Undo any PATH change you added and use a new client session.

    node install-quietlsp.mjs --uninstall

What success looks like

Installer status shows owned shims, the client resolves them first, and in-scope TypeScript diagnostics still work. Rust’s full induced-diagnostic integration is a separate documented gap; do not assume the TypeScript result proves it.

Ask your agent to set it up

Copy this into a coding agent that can access your environment. The prompt asks it to check the current instructions and verify the setup before calling it done.

You can also select and copy the text directly.

What to know first

It depends on Claude Code’s launch behavior. The documented real integration coverage is strongest for TypeScript.

Current project README