[BUG] [BUG] Claude Desktop (Windows) window stays always on top of other apps Environment
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?
[BUG] Claude Desktop (Windows) window stays always on top of other apps
Environment
OS: Windows (win32, x64)
Claude Desktop app version: 1.32885.1
Electron version: 42.9.2
Description The main Claude Desktop window stays pinned above all other application windows on Windows — it doesn't behave like a normal window and won't drop behind other apps when they're focused. This started after a recent app update; I did not have this issue on the previous version I was running.
There's a related closed/existing report for the same symptom on macOS (#66516), but this is happening on Windows, and I don't see a Windows-specific report filed yet.
Expected behavior The Claude Desktop window should behave like a standard Windows window — i.e., not float above other applications once another app is focused.
Steps to reproduce
Open Claude Desktop on Windows.
Switch focus to any other application window.
Observe that the Claude Desktop window remains visible on top of the other window instead of moving behind it.
Workaround found Minimizing the Claude Desktop window is the only workaround; there's no in-app setting to disable "always on top" behavior.
Additional notes
Fully quitting the app via the system tray icon and relaunching does not resolve it.
Already on the latest available app version (1.32885.1), so this is not fixed by updating.
What Should Happen?
[BUG] Claude Desktop (Windows) window stays always on top of other apps
Environment
OS: Windows (win32, x64)
Claude Desktop app version: 1.32885.1
Electron version: 42.9.2
Description The main Claude Desktop window stays pinned above all other application windows on Windows — it doesn't behave like a normal window and won't drop behind other apps when they're focused. This started after a recent app update; I did not have this issue on the previous version I was running.
There's a related closed/existing report for the same symptom on macOS (#66516), but this is happening on Windows, and I don't see a Windows-specific report filed yet.
Expected behavior The Claude Desktop window should behave like a standard Windows window — i.e., not float above other applications once another app is focused.
Steps to reproduce
Open Claude Desktop on Windows.
Switch focus to any other application window.
Observe that the Claude Desktop window remains visible on top of the other window instead of moving behind it.
Workaround found Minimizing the Claude Desktop window is the only workaround; there's no in-app setting to disable "always on top" behavior.
Additional notes
Fully quitting the app via the system tray icon and relaunching does not resolve it.
Already on the latest available app version (1.32885.1), so this is not fixed by updating.
Error Messages/Logs
Steps to Reproduce
[BUG] Claude Desktop (Windows) window stays always on top of other apps
Environment
OS: Windows (win32, x64)
Claude Desktop app version: 1.32885.1
Electron version: 42.9.2
Description The main Claude Desktop window stays pinned above all other application windows on Windows — it doesn't behave like a normal window and won't drop behind other apps when they're focused. This started after a recent app update; I did not have this issue on the previous version I was running.
There's a related closed/existing report for the same symptom on macOS (#66516), but this is happening on Windows, and I don't see a Windows-specific report filed yet.
Expected behavior The Claude Desktop window should behave like a standard Windows window — i.e., not float above other applications once another app is focused.
Steps to reproduce
Open Claude Desktop on Windows.
Switch focus to any other application window.
Observe that the Claude Desktop window remains visible on top of the other window instead of moving behind it.
Workaround found Minimizing the Claude Desktop window is the only workaround; there's no in-app setting to disable "always on top" behavior.
Additional notes
Fully quitting the app via the system tray icon and relaunching does not resolve it.
Already on the latest available app version (1.32885.1), so this is not fixed by updating.
Claude Model
None
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
last one
Platform
Anthropic API
Operating System
Windows
Terminal/Shell
Terminal.app (macOS)
Additional Information
[BUG] Claude Desktop (Windows) window stays always on top of other apps
Environment
OS: Windows (win32, x64)
Claude Desktop app version: 1.32885.1
Electron version: 42.9.2
Description The main Claude Desktop window stays pinned above all other application windows on Windows — it doesn't behave like a normal window and won't drop behind other apps when they're focused. This started after a recent app update; I did not have this issue on the previous version I was running.
There's a related closed/existing report for the same symptom on macOS (#66516), but this is happening on Windows, and I don't see a Windows-specific report filed yet.
Expected behavior The Claude Desktop window should behave like a standard Windows window — i.e., not float above other applications once another app is focused.
Steps to reproduce
Open Claude Desktop on Windows.
Switch focus to any other application window.
Observe that the Claude Desktop window remains visible on top of the other window instead of moving behind it.
Workaround found Minimizing the Claude Desktop window is the only workaround; there's no in-app setting to disable "always on top" behavior.
Additional notes
Fully quitting the app via the system tray icon and relaunching does not resolve it.
Already on the latest available app version (1.32885.1), so this is not fixed by updating.
21 Comments
[BUG] Claude Desktop (Windows) window stays always on top of other apps
Environment
OS: Windows (win32, x64)
Claude Desktop app version: 1.32885.1
Electron version: 42.9.2
Description The main Claude Desktop window stays pinned above all other application windows on Windows — it doesn't behave like a normal window and won't drop behind other apps when they're focused. This started after a recent app update; I did not have this issue on the previous version I was running.
There's a related closed/existing report for the same symptom on macOS (#66516), but this is happening on Windows, and I don't see a Windows-specific report filed yet.
Expected behavior The Claude Desktop window should behave like a standard Windows window — i.e., not float above other applications once another app is focused.
Steps to reproduce
Open Claude Desktop on Windows.
Switch focus to any other application window.
Observe that the Claude Desktop window remains visible on top of the other window instead of moving behind it.
Workaround found Minimizing the Claude Desktop window is the only workaround; there's no in-app setting to disable "always on top" behavior.
Additional notes
Fully quitting the app via the system tray icon and relaunching does not resolve it.
Already on the latest available app version (1.32885.1), so this is not fixed by updating.
This bug was reported under Claude code and closed....
https://github.com/anthropics/claude-code/issues/66516
I'm also experiencing the bug... Their suggested workaround also worked for me.
Update — still present on a newer build.
Confirming this is not fixed by updating. I'm now on:
Behavior is unchanged: the main window keeps
WS_EX_TOPMOSTand stays above other applications on focus change, with no in-app setting to disable it. TheSetWindowPos/HWND_NOTOPMOSTsnippet above does clear the flag, but it has to be re-run — I haven't confirmed whether the app re-applies it on show/focus or whether it's only lost across restarts.Really annoying issue, shoudl be easy to fix, just get claude to fix it !
happening to me too - very annoying
Confirming this — Claude Desktop stays on top and won't yield focus to another (already-running) app when maximized via the taskbar. Same symptom as described above. Quite annoying.
Same issue here, confirming on another machine and a newer build.
OS: Windows 11 Pro (10.0.26200)
Claude Desktop app version: 1.37937.3.0 (Microsoft Store install)
Embedded Claude Code: 2.1.220
Exact symptom as the original report: the window stays topmost after focus moves to another app — Alt+Tab does switch focus but Claude keeps covering the target window, so it feels like you can't leave it. Minimising is the only thing that releases it. Started after a recent update; fully quitting and relaunching doesn't clear it.
Same issue here!
Me too.
Hi guys,
Full re-install worked for me like a charm and fixed the issue.
Platform: Windows 11
App version: 1.40609.0.0
Personal device
FYI this means re-downloading of the Cowork VM bundle ~8.4GB -- you can try saving it before nuking by backing up
LocalCache\Roaming\Claude\vm_bundlesAfter I restart the system, it automatically recovers.
Platform: Windows 11 Enterprise
App version: 1.40609.0
Still reproducing on 1.40609.0.0 (Microsoft Store install), so the latest build does not fix it.
Environment
Measured, not just observed
I enumerated top-level windows and read the extended window style directly rather than judging by eye. The main Claude window really does have the topmost bit set:
The only other legitimately topmost windows on the desktop were the taskbar (explorer) and the Windows 11 "Click to Do" overlay. So this is genuinely
WS_EX_TOPMOSTon the main window, not a focus or z-order quirk.This also explains why clicking a taskbar button "does nothing": the target window is restored and does receive focus (keystrokes reach it), it is simply drawn underneath the topmost Claude window, which was maximized to full screen.
Clearing it in place worked
Same approach @Starfield3 posted in #85891:
SetWindowPoswithHWND_NOTOPMOSTandSWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE. After the call the style bit reads clear and the window behaves normally again. No restart, no window moved, no focus stolen. This also independently confirms their observation that nothing persists the flag — I checkedconfig.json,window-state.jsonandclaude_desktop_config.jsonand none of them contain an always-on-top key.Trigger data point: I have never used the Office add-in
I am on a personal account and cannot use it. So whatever sets the flag is not confined to that code path.
Please be careful with the "end all claude.exe tasks" advice in this thread
On my machine there are 12 processes named
claude.exe, and they are not stray instances:AppData\Roaming\Claude\claude-code\<version>\claude.exe, running with--resume=<session-id>. Killing it drops a live session..local\bin.So "a dozen or more background instances still running" is, at least here, just Electron's normal multi-process architecture. Advising people to end every
claude.exeis more destructive than it sounds.Possible root cause (hypothesis, for whoever picks this up)
There are several call sites that set always-on-top in the app bundle, and at least two of them touch the main window:
focus_desktophandler, on win32, effectively does:``
``setAlwaysOnTop(true) -> focus() -> setTimeout(() => setAlwaysOnTop(false), 100)
That is a focus-stealing workaround guarded only by a 100 ms timer. Anything that interrupts those 100 ms leaves the flag set permanently. (On my machine this specific path cannot be the trigger, since I never use the add-in — but the same fragile pattern may exist on other paths.)
isAlwaysOnTop()for every window, enables content protection, and in afinallyblock re-applies always-on-top to each window that was topmost. If that snapshot is taken during another mechanism's temporary topmost interval, it will re-apply topmost afterwards — and that re-application is not on a timer, so it sticks.A race between those two would explain both why the flag survives and why it appears unrelated to anything the user did.
Suggested fixes, in increasing order of effort
SetForegroundWindow+AttachThreadInputinstead of borrowing topmost to steal focus.@GeekShopAdmin you asked whether the flag gets re-applied on show/focus or is
only lost across restarts. Data point from my machine, it is neither, it stayed
clear:
Caveat: @ReasonDuan reports a reboot alone restored normal behaviour, so the
reboot is not proof that the clearing itself is permanent. What it does show is
that nothing re-applies WS_EX_TOPMOST at startup, which fits the race hypothesis
above rather than a persisted setting.
Also worth adding for non-technical readers: the same fix is available without
running any code. Install Microsoft PowerToys, focus the Claude window and press
Win+Ctrl+T twice (pin, then unpin). The Always on Top utility ends up making the
same HWND_NOTOPMOST call as the PowerShell snippet above. No restart, no
reinstall, no 8.4 GB Cowork bundle re-download.
Environment:
Same app build that @mckeygilham618-hub still reproduces on, and the same
26200 branch, so this is a way out on the current version rather than a fix
that arrived with an update.
Same issue here. As a workaround, I'm using Microsoft PowerToys to disable 'Always On Top' for Claude every time I launch it.
Surprisingly, after two weeks, Anthropic have not yet fixed this problem, even though it should be a fairly easy fix. The usability of their desktop app doesn't seem to be a priority.
Having the same issue where the Claude Desktop windows app is always on top and it is seriously annoying!
Same issue on 1.44121.2
me parece incomprensible que una app como claude tenga ese "bug". Me da la impresión de que es a proposito, el sistema de ventanas lleva decadas, no se me ocurre ninguna forma de que los ingenieros de claude "no sepan" como corregirlo
I dug into this on Windows and think I have the root cause. It isn't an always-on-top setting at all — the window gets promoted into the topmost band by the stealth auto-update relaunch, via a
SetWindowPosside effect.Mechanism
To avoid visibly stealing focus during a background update, the app records the window sitting directly above ours before quitting:
and on relaunch re-inserts itself at that position:
moveWindowBehindis aSetWindowPos(hwnd, anchor, ..., SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE)inclaude-native-binding.node. Per the documented Win32 contract forhWndInsertAfter:So whenever the saved anchor happens to be a topmost window, the restore silently promotes the main window to
WS_EX_TOPMOST— permanently, and invisibly to the app's own state.That explains why there's no way to turn it off: the app never calls
setAlwaysOnTop, so Electron's internalalwaysOnTopstaysfalse, no pin or menu item reflects it, and nothing is persisted inconfig.json/window-state.json.This is not a rare race.
getWindowAbovereturns the next window up the z-order, and shell surfaces like the taskbar are themselves topmost, so they sit above every ordinary window.Evidence
Six stealth updates from my
%LOCALAPPDATA%\Claude\logs\main.log, with each saved anchor handle resolved back to a window. The anchor's topmost state predicts the outcome exactly:| Date | Version change | Anchor window | Anchor topmost? |
Restored z-orderlogged | Pinned ||---|---|---|---|---|---|
| 08-20 | 1.34493.0 → 1.34493.1 | explorer
Shell_TrayWnd(taskbar) | yes | yes | yes || 08-26 | 1.34493.1 → 1.37937.1 | (handle no longer valid) | ? | no | no |
| 08-26 | 1.37937.1 → 1.37937.3 | ClickToDo
IslandWindow| yes | yes | yes || 09-01 | 1.40609.0 → 1.40609.1 | a
TeamsWebViewwindow | no | no | no || 09-02 | 1.40609.1 → 1.44121.2 | ClickToDo
IslandWindow| yes | yes | yes || 09-02 | 1.44121.2 → 1.44121.4 | explorer
ApplicationManager_ImmersiveShellWindow| yes | yes | yes |Four distinct anchor windows across three processes, all topmost, all producing the pin. The one anchor confirmed not topmost did not. Four occurrences in fourteen days — roughly every other forced update.
Most recent, still reproducing on 1.44121.4:
Window
0xd0b7eafterwards:ex=0x280108=WS_EX_TOPMOST | WS_EX_LAYERED | WS_EX_WINDOWEDGE | WS_EX_NOREDIRECTIONBITMAP.Note the runs that logged
Loaded z-order anchorbut neverRestored z-orderdid not pin, which localizes the promotion specifically to themoveWindowBehindcall.Ruled out: no third-party always-on-top utility running (no PowerToys, AutoHotkey, DeskPins, WindowTop);
[cu-side-panel]only ever loggedinitialized, neverdocked, so the side-panel dock path is not involved.Suggested fix
Check whether the anchor is topmost before calling
moveWindowBehindand skip the anchor restore if it is, falling back to the existingfocusWindow(previousForeground)path. Alternatively, skip past topmost windows when capturing the anchor, or follow the insert with an explicitSetWindowPos(hwnd, HWND_NOTOPMOST, ...)when the window was not topmost before the relaunch.Workaround
Clearing the style externally holds — I have watched it stay cleared across normal use, and nothing in the app re-asserts it until the next stealth relaunch:
One open question: this report says quitting from the tray and relaunching does not resolve it. On my reading of the code it should, because the relaunch marker is
unlinked after it is read, so an ordinary launch has no anchor to restore and creates a fresh non-topmost window. I have not verified a clean tray-quit myself. If others can confirm a full restart really doesn't clear it, there may be a second path that re-applies the anchor — worth checking whether the tray quit is fully terminating the process.Triage note
Since the mechanism is in the desktop app's stealth-relaunch path rather than in Claude Code, this may need routing to the desktop app team. #85891 describes the same bug and is currently labelled
invalidas "not related to Claude Code"; #87895 looks like the same issue, and #66516 is the macOS analogue, closed as invalid.Still reproducing on a much newer build. Adding a concrete measurement of the
window flag, which I don't think has been posted on any of the related issues yet.
Environment
Claude_pzs8sxrjxfjjc), installed from the officialWindows installer — not from the Microsoft Store
Root cause is
WS_EX_TOPMOSTon the main windowThe extended window style of the Claude main window is
0x00280108:| Bit | Flag |
|-----|------|
|
0x00000008|WS_EX_TOPMOST||
0x00000100|WS_EX_WINDOWEDGE||
0x00080000|WS_EX_LAYERED||
0x00200000|WS_EX_NOREDIRECTIONBITMAP|Reproduced with:
It is not persisted state
I checked the app's own config under
%LOCALAPPDATA%\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\:window-state.jsononly stores{width, height, x, y, isMaximized, isFullScreen, displayBounds}—no
alwaysOnTopkey at allconfig.jsoncontains no always-on-top / topmost key eitherSo the flag is being applied by the app at runtime, not restored from a saved
setting. That also explains why a restart doesn't clear it, as other reporters
have noted.
Workaround
Clearing the flag externally works and survives until the next app launch:
Since a single call is enough per launch, the app appears to set
TOPMOSTonceat window creation rather than re-applying it periodically.
Why this matters
During long-running tasks the window covers the editor / browser the whole time,
and minimising it or moving it to a separate virtual desktop are the only
in-product options. An explicit "always on top" toggle in Settings would be fine
too — the problem is that it is on with no way to turn it off.
Still Happening
It's very annoying, can this get prioritized.
Very annoying bug. Please fix this one. :(