Marketplace git clones are created empty (directory exists but no files)
Description
When Claude Code clones a git-sourced marketplace, it creates the destination directory under ~/.claude/plugins/marketplaces/<name>/ but leaves it empty — no files, no .git directory. The marketplace appears registered in known_marketplaces.json but cannot load any plugins because the clone has no content.
Steps to Reproduce
- Open Claude Code and navigate to the plugin customize menu
- Add a git-based marketplace (e.g.
https://github.com/DojoGenesis/plugins.git) - Observe that
~/.claude/plugins/marketplaces/<name>/is created but contains no files - Restart Claude Code — the clone attempt is re-triggered but continues producing an empty directory
Expected Behavior
The destination directory contains a full git clone with all marketplace files present, and plugins from the marketplace are available to install.
Actual Behavior
The directory is created empty. No .git directory, no files. The marketplace entry appears in known_marketplaces.json as registered, but the plugin loader finds nothing to load.
Workaround
Manually running the clone resolves the issue:
git clone https://github.com/DojoGenesis/plugins.git ~/.claude/plugins/marketplaces/<name>
This populates the directory correctly and plugins become available, confirming the remote URL is valid and accessible. The bug is isolated to Claude Code's internal clone execution, not the remote source.
Additional Notes
This may be related to a separate issue where marketplaces cannot be deleted from the customize menu. Both symptoms — empty clones and non-deletable entries — suggest the marketplace state manager has lifecycle issues: it writes registration state before (or without confirming) the underlying filesystem operation succeeds, and provides no recovery path when the operation fails.
Environment: macOS (darwin), Claude Code CLI
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗