[BUG] Desktop (Windows/WSL): detached window's slash menu lists only bundled skills

Status Open
Reported on v2.1.235
Maintainer reply None cached
Activity 1 comment · opened Aug 21, 2026

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

  1. On Windows, run Claude Desktop with a WSL (Ubuntu) session.
  2. 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.

  1. 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.

  1. Detach the same session into its own window via Open in → New window.
  2. Type the identical /da there.
  3. 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 /da typed: 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/skills not 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/skills skills. 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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗