[BUG] Desktop (Windows/WSL): detached window's slash menu lists only bundled skills
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version available to me (see the version note below — the desktop app bundles its own CLI)
What's Wrong?
<img width="1600" height="900" alt="Image" src="https://github.com/user-attachments/assets/1cb1b4d8-b938-40af-badc-b57eaaec7a14" />
On Windows + WSL, a session opened in a detached window (Open in → New window) shows a
different slash-command list than the same session in the main window. The detached window's/ menu offers only bundled skills. Everything discovered from ~/.claude/skills/,~/.claude/commands/*.md, and installed plugins is missing from the menu.
The CLI side looks fine. The detached session's own transcript shows a skill_listing
attachment with skillCount: 32, and that list includes all the user, command, and plugin
skills. So they were discovered and sent to the model — only the window's slash-menu candidate
pool lacks them. That points at a window↔CLI wiring gap in the desktop app rather than a skill
discovery problem.
Typing /da in each window:
| Skill | Source | Main window | Detached window |
|---|---|---|---|
| dataviz | bundled | listed | listed |
| update-config | bundled | listed | listed |
| artifact-design | bundled | not among the 10 visible entries (the list is scrollable, so it may be further down) | listed |
| daily-report | ~/.claude/skills/ | listed | missing |
| data-platform-cdk-rules | ~/.claude/skills/ | listed | missing |
| data-platform-coding-rules | ~/.claude/skills/ | listed | missing |
| warehouse-terraform-rules | ~/.claude/skills/ | listed | missing |
| worktree, remove-worktree | ~/.claude/commands/*.md | listed | missing |
| myplugin:skill-a, myplugin:skill-b | plugin | listed | missing |
Every candidate surviving in the detached window is a bundled skill. No filesystem- or
plugin-backed skill appears.
Some skill names above are placeholders where the real name contained an internal project
name. Sources, counts, and the listed/missing split are verbatim.
The matcher appears to behave the same in both windows — update-config matches da via
"update-config" in both — so the difference looks like the candidate pool rather than the
filtering logic.
Supporting detail: find over ~/.claude/skills, ~/.claude/plugins and /etc/claude-code
for dataviz, update-config and artifact-design returns zero hits, confirming all three
survivors are app-bundled rather than filesystem-discovered.
Three of the 14 directories in ~/.claude/skills/ set disable-model-invocation: true, which
is why the model-facing skill_listing shows 11 of them rather than 14. Those three should
still appear in the slash menu, and in the main window daily-report does. For such skills the
slash menu is the only entry point, so in the detached window they become completely
undiscoverable.
What Should Happen?
Both windows show the same slash-menu candidates, since it is the same session.
Error Messages/Logs
# No error is surfaced anywhere. The menu is just shorter, which reads as
# "these are all your skills".
# --- Detached session's own transcript: ~/.claude/projects/<project>/<session-id>.jsonl
# (cwd /home/<user>, version 2.1.235, entrypoint claude-desktop)
attachment.type = "skill_listing"
attachment.skillCount = 32 (isInitial: true)
11 names resolve to dirs in ~/.claude/skills/ (14 dirs minus 3 with disable-model-invocation: true)
4 names resolve to files in ~/.claude/commands/*.md
7 namespaced plugin skills from 2 installed plugins
10 bundled skills
# -> user, command and plugin skills all reached the model in this very session.
# --- getSkills source categories, from a debug log on the same machine.
# NOTE: this is a *different* session (its plugin set was smaller at the time,
# hence "4 plugin skills" instead of 7). Quoted only to show the source
# categories the loader distinguishes.
[DEBUG] Loading skills from: managed=/etc/claude-code/.claude/skills, user=/home/<user>/.claude/skills, project=[]
[DEBUG] Loaded 18 unique skills (18 unconditional, 0 conditional, managed: 0, user: 14, project: 0, additional: 0, legacy commands: 4)
[DEBUG] Total plugin skills loaded: 4 (0 duplicate/user-owned entries skipped)
[DEBUG] getSkills returning: 18 skill dir commands, 4 plugin skills, 42 bundled skills, 0 builtin plugin skills
# "user: 14" matches the 14 dirs in ~/.claude/skills/; "legacy commands: 4"
# matches the 4 files in ~/.claude/commands/.
# --- Versions, from %LOCALAPPDATA%\Claude\Logs\main.log
appVersion: '1.34493.0'
[updater] Version changed since last launch: 1.32885.1 -> 1.34493.0
[CCD] Initialized with version 2.1.235
[CCD] Falling back to installed version: 2.1.234
The detached window's menu looks as though it were built from the bundled skills alone,
with the skill-dir commands and plugin skills never reaching the menu — even though the same
session's transcript shows they reached the model.
Steps to Reproduce
- On Windows, run Claude Desktop with a WSL (Ubuntu) session.
- Inside WSL, have at least one user skill at
~/.claude/skills/<name>/SKILL.md, one command
at ~/.claude/commands/<name>.md, and one enabled plugin that ships skills.
- Open a session in the main window. Type
/plus a prefix that matches both a bundled skill
and a user skill (here /da matches bundled dataviz and user daily-report). Note the
candidates.
- Detach the same session into its own window via
Open in → New window. - Type the identical
/dathere. - Observe: only bundled skills are offered.
Is this a regression?
I don't know. The desktop app self-updated 1.32885.1 → 1.34493.0 at the launch during which I
observed this, so I have no pre-update comparison.
Claude Code Version
2.1.235 — this is the version the detached session reports in its transcript, and it matches[CCD] Initialized with version 2.1.235 in the desktop app log. The app also logs[CCD] Falling back to installed version: 2.1.234.
Desktop app version: 1.34493.0.
Note: the CLI I have installed inside WSL is 2.1.238, but that binary was not used for
this session — the desktop app bundles and launches its own CLI, which I can't upgrade
independently of the app.
Platform
AWS Bedrock
Operating System
Windows
Terminal/Shell
WSL (Windows Subsystem for Linux)
Additional Information
Environment
- WSL2, Ubuntu 24.04.4 LTS, kernel
6.6.87.2-microsoft-standard-WSL2 - 14 skill dirs in
~/.claude/skills/, 4 commands in~/.claude/commands/, 2 installed
plugins contributing 7 skills
Timeline (may matter for the timing hypothesis below)
- Session created:
2026-08-21T02:38:45Z - Window detached and
/datyped: roughly 20–30 seconds later
Caveats — please read before triaging
- Observed once. I have one clean side-by-side observation. I have **not ruled out a
load-timing race**: bundled skills are in-process and instant, whereas skill-dir and plugin
skills have to reach the window from the CLI. If the menu is populated before that arrives
and is never refreshed, the symptom would look identical — and the detached window was only
~20–30s old. If you cannot reproduce, that timing path is the first thing I would check.
- **I have not verified whether typing the full skill name in the detached window still
works.** A same-machine session with the same cwd did successfully run /daily-report, so
the impact may be limited to discoverability rather than invocability. Worth confirming.
Impact
- User skills are silently undiscoverable in detached windows — no error, no empty state, just
a shorter menu. Users on multi-monitor setups who work mostly in detached windows lose the
slash menu for their entire personal skill library.
- Worse for skills with
disable-model-invocation: true, where the slash menu is the only
entry point, so the model won't offer them either.
Related
- #80407 —
~/.claude/skillsnot available in Desktop Home/Cowork sessions. May share a root
cause, but the broken layer differs: there the skills are never loaded, whereas here the CLI
loaded them and sent them to the model, and only the window's menu lacks them. Filing
separately because the surface and reproduction differ; happy to have it merged if triage
disagrees.
- #77503 — Desktop Customize → Skills panel doesn't list
~/.claude/skillsskills. Possibly
related (getSkills sources not merged consistently across surfaces), though the surface
differs.
- #86010 — a detached window's image click is handled by the main window instead. Closest
pattern: a detached window whose UI state is only partially wired. #84403 and #63016 are
further examples of detached windows carrying their own incomplete state, though none of them
involve skills.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗