Claude Desktop (Windows): provide a way to disable the bundled Cowork background service (CoworkVMService) for users who don't use Cowork
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
On Windows, Claude Desktop bundles a packaged Win32 service called CoworkVMService (running app\resources\cowork-svc.exe as localSystem) inside its MSIX package. The service is registered with StartupType="auto" and starts on every system boot — even when the user has never opened Cowork or has decided not to use it.
I'm primarily a Claude Code user. I tried Cowork once early on, decided Claude Code suits my workflow better, and haven't used Cowork since. But cowork-svc.exe still spins up on every boot, takes RAM, and there is no way to turn it off:
- No in-app toggle in Claude Desktop to disable Cowork or its background service.
- Standard Windows methods are blocked because it's an MSIX-packaged service:
sc.exe config CoworkVMService start= disabledreturnsOpenService FAILED 5: Access is denied, even from an elevated Administrator PowerShell.Set-Service -StartupType Disabledhas the same problem.- The package manifest hardcodes
<desktop6:Service Name="CoworkVMService" StartupType="auto" StartAccount="localSystem">, so even a clean reinstall would re-register it identically. Uninstalling Claude Desktop is not an option for me — I use it daily. - The only workarounds are user-hostile: take ownership of
HKLM\SYSTEM\CurrentControlSet\Services\CoworkVMServiceand forceStart=4, or schedule aStop-Servicetask at logon. Both may break on package updates and feel wrong on a system level.
Separate but related issue: the Claude Desktop in-app Run on startup toggle (Settings → General desktop settings) does not persist when toggled off — switching to another tab in Settings and back shows the toggle back ON without the user touching it. (In Windows Settings → Apps → Startup and Task Manager's Startup tab, Claude is correctly Disabled and stays Disabled. The persistence bug is only inside Claude Desktop's own Settings UI.)
Proposed Solution
Any one of these would solve the core problem:
- Change the service to trigger-only in the package manifest — drop
StartupType="auto"so the service only spins up when the user actually invokes Cowork, and stays out of the boot path otherwise. The manifest already declares trigger events (\pipe\cowork-vm-service), so this should be a small change. - Add an in-app toggle in Claude Desktop Settings: Enable Cowork background service (default ON). When OFF, the app stops the service and keeps it from auto-starting on next boot. Because user-side
sc.execan't modify packaged services, this needs to be done by code shipping inside the package (which has the rights). - Make Cowork an optional component at install time, or expose an Uninstall Cowork component action for users who only use Claude Code CLI / Claude Desktop chat.
Also, please fix the in-app Run on startup toggle so the OFF state persists across tab navigation and app restarts.
Alternative Solutions
What I currently do (none of these are real solutions):
- Take ownership of
HKLM\SYSTEM\CurrentControlSet\Services\CoworkVMServiceand forceStart=4— risky and may be reverted on package update; also feels wrong to modify package-protected registry from the user side. - Schedule a
Stop-Service CoworkVMServicetask at user logon — service still spins up on every boot, just gets killed within a couple seconds. Wastes resources. - Manually stop the service in services.msc each boot — won't survive reboot, has to be repeated daily.
There is no acceptable user-side workaround.
Priority
Medium - Would be very helpful
Feature Category
Other
Use Case Example
- I install Claude Desktop on Windows 11.
- Out of curiosity I open Cowork once, decide it's not for my workflow, and stop using it. (Or alternatively: I never open Cowork at all.)
- From that point on, every time my computer boots, Task Manager → Processes shows a "Claude" group containing
cowork-svc.exerunning as a service, consuming ~12 MB. - I look for a way to stop it: no in-app toggle, Windows Settings → Apps → Startup doesn't list it (only the main Claude executable, which I've already disabled), Services.msc shows it but
sc.exerefuses to change StartupType because the service is package-protected. - End state: I either give up and let it run forever, or I become a Windows admin to take ownership of the service registry key — which feels disproportionate for a feature I don't use.
With the proposed change (trigger-only service or in-app toggle), step 3 onwards goes away.
Additional Context
Environment
- Claude Desktop version: 1.6259.1.0
- Claude Desktop package family:
Claude_pzs8sxrjxfjjc - Service:
CoworkVMService→app\resources\cowork-svc.exe, runs aslocalSystem - OS: Windows 11
- Reproducible on: any Claude Desktop install where the user doesn't use Cowork.
Manifest snippet (from AppxManifest.xml)
<desktop6:Extension Category="windows.service"
Executable="app\resources\cowork-svc.exe"
EntryPoint="Windows.FullTrustApplication">
<desktop6:Service
Name="CoworkVMService"
StartupType="auto"
StartAccount="localSystem">
<desktop6:TriggerEvents>
<desktop6:DataItem Value="\pipe\cowork-vm-service" />
...
</desktop6:TriggerEvents>
</desktop6:Service>
</desktop6:Extension>
Trigger events are already declared, so trigger-only start (without StartupType="auto") should be feasible.
Reproduction of the sc.exe lockout (elevated PowerShell):
PS> sc.exe config CoworkVMService start= disabled
[SC] OpenService FAILED 5:
Access is denied.
Get-Service CoworkVMService:
Name : CoworkVMService
DisplayName : Claude
Status : Running
StartType : Automatic
24 Comments
This is absolutely shady. I either have to uninstall Claude, or run my computer with cowork-svc.exe in memory at startup. Nasty
I noticed this today and came here as part of a search on the issue.
Agree with @itutar's analysis and recommendations.
Commenting here to keep issue fresh.
To deactivate Cowork, on Windows, I killed all Claude instances, then modified the `
claude_desktop_config.jsonfile by adding this in the"Preferences"section:"secureVmFeaturesEnabled": false,`. It then disabled the Cowork feature:<img width="419" height="149" alt="Image" src="https://github.com/user-attachments/assets/02d2cf0b-f09e-4357-b60f-9da00dec9321" />
<img width="539" height="291" alt="Image" src="https://github.com/user-attachments/assets/dedc9d47-447b-4697-ba58-e4e739f0e9a4" />
This also allowed me to remove the "vm_bundles" folder that was taking more than 10Gb on the disk.
Hope it helps.
yeah this is pretty bs - if I configure claude not to run in the background, theres no reason this service should keep running
I mean there is the configuration fix which works as technically cowork doesn't work in the background. It just needs a surfaced configuration element in the app.
Another data point in favor of an off switch —
CoworkVMServiceisn't just idle RAM, it actively broke the Claude Code CLI for me for a while.Symptom (Desktop
1.13576.1.0, CLI2.1.179, Win11 + Git Bash): intermittentNo such file or directory/command not foundfromclaude. A burst ofclaude --versionfailed 28/30.Root cause: while running, the service re-runs
npm installagainst the global CLI install on a loop, so...\npm\node_modules\@anthropic-ai\claude-code\bin\claude.execycles: real ~225 MB native binary → ~500-byte placeholder stub → briefly absent. Any CLI invocation landing in one of those windows dies. Caught via a file-watch loop seeing the unlink/relink plus a staging dirnode_modules/@anthropic-ai/.claude-code-<random>/appearing mid-install. Not Defender, not the npm launcher shim, not the auto-updater.Workaround:
Stop-Service CoworkVMService(elevated) → 50/50 pass. Returns on reboot (StartType=Automatic). FWIW elevatedStop-Serviceworks here even thoughsc.exe config ... start= disabledis blocked as you noted.Update — looks fixed in a newer build. Re-tested today on Desktop
1.14271.0.0/ CLI2.1.183: started the service, watchedbin\claude.exefor ~85s (zero swaps, never stubbed), and ran 30×claude --versionwith the service running → 30/30 pass. Can't reproduce the binary-swap anymore.So the acute breakage seems resolved, but it's a good example of why a user-facing way to disable the service (or trigger-only start) matters for Code-only users — when this regressed, the only mitigation was killing the service every boot.
agreed. This look fishy. Also the desktop control features? What actually Claude wants to do? Fishy
Title: Claude Desktop cowork/local-agent leaks Windows kernel non-paged pool (NTFS file-control-blocks, tag
NtFC) without bound during workspace file activity → RAM exhaustion → host hard-freezeSeverity: High — full OS freeze requiring physical power-cycle (host-level, not just an app crash). Risk of data loss from forced resets.
Build: Claude Desktop (MSIX)
Claude_1.14271.0.0_x64__pzs8sxrjxfjjc· Windows 11 · AMD Ryzen, 128 GB RAM · org615dd87f-8efb-45aa-95e5-ccf929803c3c.Summary: With cowork / local-agent mode enabled, Claude Desktop's local-agent performs heavy recursive file-system activity over its workspace folder(s). On the affected host this drove unbounded growth of Windows non-paged kernel pool — NTFS file-control-block (FCB) allocations, pool tag
NtFC(ntfs.sys,Create.c): the agent opens/creates file handles far faster than the kernel releases them, with no cap or back-pressure, until physical RAM is exhausted and the host hard-freezes. The agent never self-limits or backs off. (The precise trigger inside the walker is unconfirmed — an early "self-referential symlink cycle" theory was disproven on investigation; see Evidence — but the unboundedNtFCaccumulation and Claude Desktop being its source are confirmed.)Evidence:
claude.exe(main process) accumulated 345M+ file operations — ~150× any other process on the box.LiveKD !poolused 2: pool tagNtFC= 95.1M outstanding allocations, 14.2 GB,ntfs.sys(Create.c) = 99% of a non-paged pool that grew to 120 GB of 125 GB RAM at ~50 GB/hr, driving Available memory to ~0 and freezing the host. (Also surfaced as collateral0x9F DRIVER_POWER_STATE_FAILUREand0xA5 ACPI_BIOS_ERRORbugchecks — bothSTATUS_INSUFFICIENT_RESOURCES, i.e. downstream of pool starvation, not real driver/firmware faults.)taskkill /F /IM claude.exe /T→ non-paged pool growth stops instantly (flat) — confirms Claude Desktop as the source.…\.claude\knowledge → …\knowledgethat points to a sibling tree, not one of its own ancestors — so it can cause at most a one-time double-walk of a large directory, not an infinite loop. (…\knowledge\.claudeis a real directory, not a link back; no link resolves to an ancestor.) Two conditions were unique to the affected host instead: (a) a large workspace tree — a ~100 MB, many-thousand-file git repo, reachable twice via that junction; (b) the host's cowork VM bundle was wedged (rootfs.vhdxmissing +vmlinuzversion mismatch), so every launch re-attempts a multi-hundred-MB bundle download that never completes — plausibly re-driving workspace scans in a retry loop. Whether (a), (b), or the combination drives the FCB accumulation is unconfirmed; the unboundedNtFCgrowth itself is not in doubt.Three distinct defects:
coworkScheduledTasksEnabled/ccdScheduledTasksEnabled= false inclaude_desktop_config.jsonis overwritten back to true from account/org settings on the next launch — there is no way to disable cowork on a single machine.claude.exerelaunches it (observed 8 procs → 3 respawn), so a user cannot stop the runaway without uninstalling.Repro (observed; not yet minimally isolated): Enable cowork on a Windows host whose workspace contains a large tree (here: a ~100 MB git repo reachable twice via a sibling junction) and whose cowork VM bundle is in a broken / perpetually-re-downloading state (
rootfs.vhdxmissing,vmlinuzmismatch); launch Claude Desktop; watch\Memory\Pool Nonpaged Bytesclimb without bound (poolmon/LiveKD!poolusedshows tagNtFC,ntfs.sys). Killingclaude.exeflatlines it. (A clean minimal repro isolating which factor is sufficient is still TODO.)Requested fixes: (1) bound the local-agent's file activity — cap outstanding NTFS handles / total files / depth with back-pressure and a safety cutoff (the core fix); (2) cycle-safe directory traversal (visited reparse-point / device+file-id tracking) as defense in depth; (3) honor a per-machine local opt-out for cowork/local-agent; (4) do not auto-respawn
claude.exeafter a user force-kill; (5) when the VM-bundle refresh can't complete, fail cleanly instead of re-attempting an unbounded download/scan loop on every launch.---
Update 2026-06-23 — related issue + how to disable
This is a known (less-severe) issue already filed: anthropics/claude-code#57371 — "provide a way to disable the bundled CoworkVMService for users who don't use Cowork" (opened 2026-05-08, Open). That issue covers the service can't be disabled angle (auto-starts,
sc config→Access Denied, package-protected, registryStart=4may break on update — all confirmed on Archie). Our case is far more severe than that issue describes (not "~12 MB idle RAM" — a 120 GB nonpaged-pool leak that hard-freezes the host). Best action: comment on #57371 with this pool-leak evidence + repro rather than filing fresh — it elevates severity on an existing thread.How to disable Cowork (the only account-level lever): Owner/Primary Owner → Organization settings → Capabilities → Cowork → toggle off. Org-wide only — no per-user/per-machine granularity on Team plans (Enterprise can scope via groups/custom roles). So disabling it turns Cowork off on every machine on the org.
+1 — this needs attention.
I'm a paying Max subscriber who does not use Cowork and never will. My machine has virtualization disabled by deliberate choice, and I will not modify BIOS settings for a feature I don't want.
Consequences on my machine:
Worse: enabling virtualization wouldn't even guarantee relief. Issues #45715, #42227, and #45446 document users with virtualization fully enabled in firmware and Windows who still get this notice — the detection itself is broken. I'm being pressured to alter my BIOS for a feature I don't use, with no assurance the nagging would even stop.
I use Claude Desktop daily for a WordPress/WooCommerce business build — chat, projects, memory. None of it needs Cowork. There is no toggle, no dismiss, no opt-out. Please implement any of the proposed solutions — trigger-only service, in-app toggle, or optional install.
Now it bitches if you disable the service too with "Failed to start Claude’s workspace
VM service not running. The service failed to start.
Restarting Claude or your computer sometimes resolves this. If it persists, you can reinstall the workspace or share your debug logs to help us improve."
Guess I'm uninstalling this spyware
+1 Confirming this architectural concern from a fresh Windows inspection.
On this machine,
CoworkVMServiceis registered as a packaged Win32 service with:TYPE : 210 WIN32_PACKAGED_PROCESSSTART_TYPE : 2 AUTO_STARTSERVICE_START_NAME : LocalSystem...\\WindowsApps\\Claude_<version>_x64__pzs8sxrjxfjjc\\app\\resources\\cowork-svc.exe)The package manifest also declares both:
desktop6:Serviceentry withStartupType="auto"andStartAccount="localSystem"\\pipe\\cowork-vm-serviceSo this does not look like malware or a hidden persistence trick; it looks like a standard packaged service chosen by the app. The concern is the product/architecture choice: the service already has an on-demand trigger path, yet it is also placed in the boot path with
LocalSystemprivileges even for users who may never use Cowork.From a Windows least-privilege / user-control perspective, trigger-only start would be a much better default. If boot-time startup is genuinely required for specific Cowork features, those should be documented clearly in-app and users should have an explicit way to disable the service when they do not use Cowork.
This is especially confusing because it does not appear in the ordinary Startup Apps surface, so many users will not realize Claude has installed a boot-time privileged background service unless they inspect Services or the package manifest directly.
I have been noticing for a week or more that Claude is and keeps running in the background on windows in process explorer, even though I disabled 'Run on Startup'. It keeps turning it back on. Off means off, and this has eroded my trust severely. I don't understand how Github #48078 has been closed, since it is very much still alive.
Adding a working user-side workaround in case it helps others while this is open.
The trigger is already registered and intact:
(
sc.exeprints the generic ETW label, but that GUID is the well-knownNAMED_PIPE_EVENT_GUID.)Taking ownership turned out to be unnecessary on my machine, the
HKLM\SYSTEM\CurrentControlSet\Services\CoworkVMServicealready grants Administrators Full Control via inheritance fromMACHINE\SYSTEM. What's blocked issc.exe/Set-Service, by the SCM's packaged-service protection, not the registry ACL. So writing the value directly from an elevated prompt just works:After a reboot,
Get-Service CoworkVMServicereportsStatus: Stopped,StartType: Manual, andcowork-svc.exeis no longer in the boot path.Start=3rather than4on purpose: 4 would disable the trigger as well, so Cowork could never start on demand. With 3 the declared named-pipe trigger stays in place. (I haven't tested on-demand start by actually launching Cowork, but the trigger registration is untouched.)This is still a per-machine registry edit, and I'd expect MSIX re-registration on the next app update to reset
Startback to 2, so it needs re-checking after updates. Which is really the argument for proposal 1 above: the trigger is already declared in the manifest and the service clearly functions withoutStartupType="auto", so dropping auto-start looks like a small, safe change.+1. Chat and Code are all I use — the ~10 GB Cowork VM is pure overhead for my workflow. Please make it an optional component at install time, or add an uninstall/remove action for the VM bundle. A chat/Code-only install path would solve this cleanly.
Time to use chatgpt to make a patcher so this shit can be removed fully
+1 on this request. I'd like to add some context on why I think this deserves higher priority than a typical "add a toggle" feature request.
The core issue is a consent gap, not just a missing convenience feature.
On Windows, users can disable Claude Desktop's startup behavior through two legitimate, OS-sanctioned channels:
Both correctly show the app as Disabled, and both stay Disabled. That's the expected contract: the user made a choice, and the OS respects it.
However, CoworkVMService (running as
cowork-svc.exeunderlocalSystem) sits outside that contract entirely. It's registered as a background Windows service withStartupType="auto", independent of the app-level startup toggle. So a user who has explicitly turned off startup — through the correct, documented UI — still ends up with a SYSTEM-level process launching on every boot.What makes this worse than a typical background-service quirk is that there's currently no user-accessible path to opt out:
services.mscshows the startup type as grayed out / non-editable for this service.Set-Service/sc.exefrom an elevated PowerShell session returns access denied, because the service is registered as part of the MSIX package with permissions that exclude standard admin-level service management.In effect, the only way to stop it is an unsupported registry-level workaround (manually flipping the start type to
4/Disabled outside any sanctioned UI), which is not something a general user should have to resort to, and which may not survive app updates.Why I'd frame this as a consent/trust issue rather than pure UX polish:
A background service running as
localSystemthat (a) starts automatically regardless of a setting the user explicitly turned off, and (b) cannot be disabled through any first-party, documented mechanism, is a meaningful gap for privacy- and security-conscious users — including in managed/enterprise environments where IT admins expect to be able to enforce a "no background services without explicit opt-in" policy. Right now there's no supported way to guarantee that.I'd support any of the fixes already proposed upthread — trigger-only startup via manifest change, an in-app toggle that actually stops+disables the service, or making Cowork an optional/uninstallable component — but I'd like to flag that from a trust standpoint, item 2 (an in-app toggle backed by real permission to stop the service) seems like the minimum bar, since it's the only option that gives users a supported, persistent way to say no without relying on registry hacks.
Also commenting here to keep issue fresh.
This is not okay behavior, regardless of microslop and others having the same bs practices, it isn't right to force a user to run resource hijacking services without consent.
<html>
<body>
<!--StartFragment--><html><head></head><body><h2>Comment for #57371 — Windows Server 2022 confirmation, plus downstream impact on Claude Code CLI</h2>
<p>Adding a data point from <strong>Windows Server 2022 Standard</strong> — this isn't limited to Windows 11 desktop installs.</p>
<h3>Environment</h3>
<ul>
<li><strong>OS</strong>: Windows Server 2022 Standard</li>
<li><strong>Access method</strong>: Remote (RDP)</li>
<li><strong>Claude Code version</strong>: unknown — <code>claude --version</code> itself hangs (see below), so I couldn't retrieve it</li>
<li><strong>Other Claude products installed</strong>: Claude Desktop / Cowork appears installed on this machine (<code>cowork-svc.exe</code> visible in Task Manager, <code>CoworkVMService</code> confirmed via <code>Get-Service</code>)</li>
</ul>
<h3>What's Wrong</h3>
<p>Claude Code sessions repeatedly stop responding with the error:</p>
<blockquote>
<p><strong>Claude Code stopped responding</strong>
Try sending your message again.
<em>The session stopped responding. Send your message again to resume with a fresh process.</em></p>
</blockquote>
<p>Each time this occurs, Task Manager shows the total Claude-related process count climbing rather than old processes being cleaned up:</p>
Observation | Process count
-- | --
1st occurrence | 16
2nd occurrence (after clicking "Try again") | 19
3rd occurrence (after full manual kill + relaunch) | 21
<p>In each snapshot, exactly <strong>3 "Claude Code" processes</strong> are seen consuming ~12.7–12.8% CPU each, alongside a growing number of dormant "Claude" processes consuming between 4–430+ MB of memory each, plus matching orphaned <code>conhost.exe</code> entries.</p>
<p>Total memory footprint reached <strong>~822 MB and 40% system CPU</strong> across the process group by the 3rd occurrence, despite no active user interaction (session was reportedly idle — "have not yet done anything yet and its eating up resources already").</p>
<p>Even a full <code>taskkill /F /IM claude.exe /T</code> followed by a clean relaunch did not prevent the issue from recurring shortly after.</p>
<p>Additionally, <code>/doctor</code> itself hung indefinitely (1m 40s+, no output) during one troubleshooting attempt, suggesting the diagnostic command is also affected rather than just regular chat.</p>
<h3>Steps to Reproduce</h3>
<ol>
<li>Launch Claude Code in a project directory on Windows Server</li>
<li>Begin a normal chat session</li>
<li>Session becomes unresponsive to input, including Ctrl+C</li>
<li>Observe Task Manager: process count for Claude Code/Claude has increased since last check, with 3 active "Claude Code" processes pinned at ~12.8% CPU</li>
<li>Dismiss error, click "Try again" or relaunch — process count increases further rather than resetting</li>
</ol>
<h3>Expected Behavior</h3>
<ul>
<li>A single <code>claude.exe</code> process (or a bounded, known set) should represent one session</li>
<li>Old/crashed processes should be automatically cleaned up rather than accumulating</li>
<li><code>/doctor</code> should complete or fail fast rather than hang indefinitely</li>
<li>Ideally, Claude Code would warn on startup if orphaned processes from previous sessions are still running (similar to the proposal in #11122)</li>
</ul>
<h3>Workaround (current)</h3>
<pre><code class="language-powershell">taskkill /F /IM claude.exe /T
</code></pre>
<p>Then relaunch. This only provides temporary relief — the issue recurs after continued use.</p>
<h3>Confirmation of the access-denied behavior described in this issue</h3>
<p>Same result as reported here, confirmed independently:</p>
<pre><code>PS> sc.exe config CoworkVMService start= disabled
[SC] OpenService FAILED 5:
Access is denied.
</code></pre>
<p>This failed even from a fully elevated "Administrator: Windows PowerShell" session (confirmed via title bar), not just an unelevated one — so this isn't a UAC issue, it's the package-level ACL described in this issue.</p>
<p><code>sc.exe sdshow CoworkVMService</code> output on this machine:</p>
<pre><code>D:(A;;CCLCSWRPWPDTLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-80-1949724575-2387902436-65106593-1201171665-3967308604)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)
</code></pre>
<p><code>Set-Service -StartupType Disabled</code> also failed identically with <code>PermissionDenied: (System.ServiceProcess.ServiceController:ServiceController) [Set-Service], ServiceCommandException</code>.</p>
<h3>Downstream impact: this also breaks Claude Code CLI, not just Cowork/Claude Desktop</h3>
<p>Worth flagging that this isn't only a "Cowork tab won't disable" annoyance — on this server, the inability to control <code>CoworkVMService</code> had a knock-on effect on <strong>Claude Code CLI</strong>, which is presumably a separate product:</p>
<ul>
<li><code>claude --version</code> and <code>/doctor</code> both hang indefinitely (no timeout, requires Ctrl+C) rather than failing fast</li>
<li>Repeatedly killing <code>claude.exe</code> (<code>taskkill /F /IM claude.exe /T</code>) does not help — new <code>claude</code> processes reappear under <strong>different PIDs</strong> almost immediately, consistent with <code>CoworkVMService</code> respawning them</li>
<li>Task Manager showed the Claude-related process count climbing across troubleshooting attempts (16 → 19 → 21 processes), with 3 "Claude Code" processes consistently pinned at ~12.8% CPU each, and total memory footprint reaching ~822 MB / 40% system CPU while the machine was otherwise idle</li>
<li>Network connectivity to <code>api.anthropic.com:443</code> was confirmed working (<code>Test-NetConnection</code> succeeded), ruling out firewall/proxy as the cause</li>
<li><code>.claude.json</code> config file was small (402 bytes) and <code>.claude</code> folder was empty, ruling out config corruption/bloat as the cause</li>
</ul>
<p>So on a machine where the Cowork service can't be disabled, it appears to actively interfere with independent Claude Code CLI sessions rather than just sitting inert in the background. If that's expected (e.g., some shared locking/coordination by design), it'd be good to document; if not, it seems like a second bug worth tracking separately.</p>
<h3>Workaround used</h3>
<pre><code class="language-powershell">Stop-Service -Name CoworkVMService -Force
taskkill /F /IM claude.exe /T
</code></pre>
<p>This works but doesn't persist — the service is set to auto-start, so it needs to be repeated each session/reboot, matching what's already described in this issue.</p>
<p>Happy to provide <code>/heapdump</code> diagnostics or additional Task Manager screenshots if useful for triage.</p>
<h3>Cross-referenced issues</h3>
<ul>
<li>#32792 — multiple claude.exe processes spawn with no process guard (Windows)</li>
<li>#42169 — claude.exe accumulates virtual memory, never releases it, zombie processes from crashed sessions</li>
<li>#55482 — claude-cli exhausts system resources spawning multiple processes</li>
<li>#11122 — feature request for process visibility/management (<code>claude ps</code>, <code>claude kill</code>, idle timeout, startup warning)</li>
</ul></body></html><!--EndFragment-->
</body>
</html>
Ended up here because I noticed that setting the "Run at startup" parameter to Off in the General settings of Claude Desktop app for Windows, does not work: when I re-open the settings panel after switching it off, it is still On...
This was reported in the following ticket, but that's now closed with "Not planned": https://github.com/anthropics/claude-code/issues/48078
Then Claude directed me to this ticket here....
Not a fix and decidedly not sufficient to solve this problem, but you can hijack the service with your own, either nssm or as a scheduled task.
Script that polls every 5s and sets the service to manual, then kills proc if claude isn't open.
Can add as scheduled task, place the above code at: C:\ClaudeCOWORKServiceGuard\cowork-guard.ps1
Then in admin powershell to add the startup task, use AT OWN RISK, this is admin PS after all:
Confirm running:
Confirm active/working:
Commenting to keep this issue fresh. Cowork takes up 10 GB even though I don't use the feature.
will be there SOME answer from anthropics? Its not like its free open source service. We actually paid for this stuff! At least answer something
Sorry for not being advanced in tech terms but thanks to cowork-svc.exe i cant use normal claude desktop app without closing whole windows since somehow cowork is open on the background without claude being open. And because its a process with system access i cant close it via powershell or cmd which makes it so im required to close my pc and leave my work half done since i cant access to claude properly.
<img width="336" height="114" alt="Image" src="https://github.com/user-attachments/assets/8ae38a82-e5c2-49f8-aeec-d8880ff3fedc" />
IU have the same issue as ronovatr. This is really annoying.