Skip to content

fix: discover Claude Code Cowork/DXT session skills via glob expansion#201

Open
michael-bey wants to merge 1 commit intosnyk:mainfrom
michael-bey:fix/claude-code-cowork-skills-discovery
Open

fix: discover Claude Code Cowork/DXT session skills via glob expansion#201
michael-bey wants to merge 1 commit intosnyk:mainfrom
michael-bey:fix/claude-code-cowork-skills-discovery

Conversation

@michael-bey
Copy link

Summary

  • inspect.py: replace the os.path.exists() check in the skills_dir_paths loop with glob.glob() expansion, so wildcard patterns resolve at scan time. Plain paths behave identically to before.
  • well_known_clients.py: add the DXT/Cowork session path (~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/*/*/skills, macOS only) and the plugin cache path (~/.claude/plugins/cache/*/*/*, all platforms) to the claude code entries in all three platform lists.
  • tests/unit/test_skills_glob.py: four new unit tests covering UUID-nested discovery, non-matching patterns, plain paths, and multiple glob matches.

Motivation

Claude Code installs skills in two additional locations that were previously invisible to agent-scan:

  1. DXT/Cowork session skills (macOS): ~/Library/Application Support/Claude/local-agent-mode-sessions/skills-plugin/{dxt-uuid}/{session-uuid}/skills/
  2. Plugin cache skills: ~/.claude/plugins/cache/{marketplace}/{plugin-name}/{version}/

Both paths contain UUID or version components that can't be hardcoded as static strings, so they require glob expansion to discover.

Test plan

  • uv run --extra test python -m pytest tests/unit/test_skills_glob.py -v — all 4 new tests pass
  • uv run --extra test python -m pytest tests/unit/ -v — all 135 tests pass (no regressions)

🤖 Generated with Claude Code

Adds glob pattern expansion to skills_dir_paths so that skill directories
with UUID-based path components (DXT/Cowork sessions and installed plugins)
are discovered automatically.

- inspect.py: replace os.path.exists() check with glob.glob() expansion so
  wildcard patterns in skills_dir_paths are resolved at scan time
- well_known_clients.py: add DXT session path (macOS) and plugin cache path
  (all platforms) to the claude code CandidateClient entries
- tests/unit/test_skills_glob.py: four new unit tests covering UUID-nested
  discovery, non-matching patterns, plain paths, and multiple glob matches

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@michael-bey michael-bey requested a review from a team as a code owner March 4, 2026 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant