[BUG] Claude Code VSCode extension is 2x-4x slower in code-server (VSCode in the browser) vs local VSCode or CLI
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
Claude Code VSCode extension is 2x-4x slower in code-server (VSCode in the browser) vs local VSCode or CLI.
For instance, on one test with Sonnet 4.5, non-thinking:
- Claude Code VSCode extension in code-server took around 2 minutes
- Claude Code CLI running on the same machine took around 25 seconds
Another test to simply reply with ack using Sonnet 4.5, thinking:
- Claude Code VSCode extension in code-server took around 12 seconds
- Claude Code VSCode extension in local VSCode took around 3 seconds
Repro instructions clarify a test where time taken is ~1m50s (VSCode extension in code-server) vs ~30s (CLI)
What Should Happen?
Claude Code VSCode extension in code-server should have reasonably similar performance to using it in local VSCode (at least not 2x-4x slower).
Error Messages/Logs
Steps to Reproduce
Provide a prompt requiring multiple steps of LLM processing to a given model in a given mode of thinking. The idea is to ensure the response will take say over 20s in the best case. In this test, I used Sonnet 4.5, non-thinking, via API, with no explicitly provided files attached. Here is the prompt submitted via Claude Code VSCode extension in code-server. Time how much time passes from submission of the prompt below until Claude Code completes its response to this prompt.
User Prompt: `check-sync remote`
You MUST process the above user prompt with the following in mind.
You MUST create a 4-item checklist corresponding to the steps below to track progress:
1. Determine the synchronization source:
- Check if the user wants to verify the 'workspace' state or the 'repository' state.
- Default: workspace.
- Keywords for workspace: "here", "local", "workspace".
- Keywords for repository: "remote", "branch", "upstream".
2. Determine the target module.
- Use provided name or current directory.
- Exclude protected paths.
3. Clarify if needed.
4. Final Output Generation:
- Do NOT run any commands.
- Simply output the following final status message, replacing the bracketed placeholders with your determined values:
"SYNC CHECK COMPLETE: Source=[<SOURCE>], Target=[<MODULE>], Status=Ready"
Time taken (Claude Code VSCode extension in code-server): ~1m50s.
Repeat the test where Claude Code is interfaced with outside the code-server environment, but with everything else equal. In this case, I used claude CLI on same machine, same working directory, same model (Sonnet 4.5), non-thinking mode, using API.
Time taken (Claude Code CLI): ~30s
Claude Model
None
Is this a regression?
I don't know
Last Working Version
No response
Claude Code Version
2.0.75
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
VS Code integrated terminal
Additional Information
No response