cc-switch Skills Import/Sync Issues (Invalid, Unrecognized, Out of Sync)
Quick fix
Most issues stem from Skills directory changes or a DB/filesystem mismatch. Manage Skills through the cc-switch UI, upgrade, and check nested and plugin…
Symptom
Section titled “Symptom”Skill 源目录缺少 SKILL.md,拒绝同步以避免覆盖目标目录: /home/fengyu/.cc-switch/skills/ast-grepThe Skill source directory is missing SKILL.md; sync was refused to avoid overwriting the target directory: /home/fengyu/.cc-switch/skills/ast-grep
This cluster includes several Skills-related issues: (1) plugins/Skills stop working after switching API providers because the configuration is not passed through general configuration; (2) after manually deleting files from .cc-switch/skills, the UI still shows them because it reads the SQLite database rather than scanning the directory; (3) ZIP/.skill imports fail or are not recognized due to periods in temporary directory names, unsupported nested structures, or .skill suffix filtering; (4) the newer Claude Code plugin directory ~/.claude/plugins/marketplaces/ is not scanned; (5) the DB marks sync status as enabled but the symlink is not created, and an idempotency check prevents self-repair; (6) cloud sync skills.zip entries exceed the 10000 limit. Some of these issues were fixed in versions such as v3.12.3, while others remain open or have been merged into other main issues.
If Skills/Agents stop working after switching API providers, use cc-switch's “General Configuration” feature to pass non-provider data between providers.
Do not manually delete files under ~/.cc-switch/skills or %USERPROFILE%\.cc-switch\skills to uninstall a Skill; delete it through the cc-switch UI so its SQLite database record is also removed.
If a ZIP import does not recognize a Skill, upgrade to v3.12.3 or later; this version fixed support for the .skill suffix and failures to recognize directory names containing . during ZIP import.
If a Skill comes from a multi-skill repository or nested directory (for example, skills/<repo>/skills/*/SKILL.md), some versions can recognize only structures with SKILL.md directly inside a first-level directory. As a workaround, place each skill directly under ~/.cc-switch/skills/.
If Skills under the newer Claude Code plugin directory ~/.claude/plugins/marketplaces/ are not scanned, wait for cc-switch to support that directory; the current scan path is still ~/.claude/skills/.
If enabled_claude=1 or enabled_codex=1 in the DB but the corresponding symlink is missing, create the symlink manually or disable and re-enable the Skill; this issue may not currently self-repair.
If cloud sync reports too many skills.zip entries (more than 10000), reduce the number of Skills files in the backup or wait for the official limit to be adjusted or removed.
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”This page is distilled from 11 real issues
- #2238切换 API 供应商后,在plugins中安装的Skills/Agents 失效,复制导入的skills有效
- #4024手动删除 .cc-switch/skills中的skill,cc-switch 上面还显示
- #5579[Bug] Skills 扫描失败:未适配 Claude Code 新版插件目录结构
- #1794CCSwitch 无法完全控制 OpenCode 的 skills
- #1842v3.12.3 回归:导入已有无法发现本地嵌套 skills,而 v3.12.2 可以
- #5499I don't want CC Switch to change my existing Skills location
- #1240Skills ZIP 安装支持 .skill 后缀?
- #2139Bug: Skills Import Count Multiplied When Button Clicked Multiple Times
- #3546cc 云同步遇到下载失败:skills.zip 条目数过多
- #2569「WebDAV 云同步」无法正常使用
- #3623windows下,个性化设置中的skills同步方式选择软连接的时候,没有生效,还是普通文件
- Why does cc-switch still show a Skill after I manually delete its files from .cc-switch/skills?
- The cc-switch UI loads Skills from SQLite database records; it does not scan the .cc-switch/skills directory directly. Delete the Skill through the cc-switch UI to remove both the files and the database record.
- What should I do if plugins/skills disappear after switching API providers?
- Configuration items that are not provider-specific need to be passed between providers using cc-switch's “General Configuration” feature. Some cases have been merged into known issues; follow the related main issue.
- Why can't “Import Existing” recognize a local multi-skill repository directory?
- Some versions recognize only structures with SKILL.md directly inside a first-level directory, such as ~/.cc-switch/skills/<skill-name>/SKILL.md. Nested structures such as skills/<repo>/skills/*/SKILL.md may not be recognized; flatten the directory structure or wait for a fix.
- Why aren't Skills in the newer Claude Code plugin directory being scanned?
- Claude Code's Skills storage directory changed from ~/.claude/skills/ to ~/.claude/plugins/marketplaces/, but cc-switch's scanning logic does not yet fully support the new directory.
- Cloud sync says there are too many skills.zip entries (14359), with a limit of 10000. What should I do?
- Restoring a backup currently limits skills.zip to no more than 10000 files. For now, reduce the number of Skill files or wait for the official limit to be adjusted.
- How can I prevent cc-switch from modifying the location of existing Skills?
- A user suggested not clicking the Import Skills feature in cc-switch, but the specific UI options may vary by version.
Related problems
Section titled “Related problems”This is an unofficial community wiki with no affiliation to the cc-switch authors or the project itself. Its content is compiled from the project's public GitHub issues. This site distributes no software.