Skip to content

Symlink creation failed: cc-switch skill sync error or target app cannot see skill

Quick fix

On Windows, symlink creation requires administrator privileges or Developer Mode; run cc-switch as administrator. Hermes/Pi have separate path and scanning…

Error output
创建符号链接失败: C:\Users\<user>\.cc-switch\skills\find-skills -> C:\Users\<user>\.claude\skills\find-skills
English translation

Symlink creation failed: C:\Users\<user>\.cc-switch\skills\find-skills -> C:\Users\<user>\.claude\skills\find-skills

This issue cluster covers three mechanisms that make skills unavailable or show an incorrect status after sync. First (#4241), Windows symlink_dir requires administrator privileges by default or Developer Mode. When cc-switch runs as a standard user, symlink creation fails without a clear message; one user also reported that it still failed when running as administrator in WSL. Second (#4896, fixed), Hermes Desktop (Electron) on Windows reads %LOCALAPPDATA%\hermes\skills\, while the CLI/TUI use ~/.hermes/skills/. Older cc-switch versions projected skills only to the latter, so the UI showed them as enabled but Desktop showed 0 skills. Third (#8000, unfixed), in addition to ~/.pi/agent/skills/, Pi scans the skills array in settings.json and ~/.agents/skills/. cc-switch is unaware of these channels. As a result, Pi may load skills even when they are unchecked, making the status inaccurate; when checked, redundant projections cause duplicate skills to load and trigger warnings.

  1. (For “symlink creation failed”) Close cc-switch, relaunch it by right-clicking and selecting Run as administrator, then re-enable skill sync for Claude Code. The reporter for Issue #4241 confirmed this worked.

  2. Alternatively, enable Windows Developer Mode (Settings → Privacy & security → For developers) so standard users can create symlinks, then run cc-switch with standard privileges.

  3. (For skills missing from Hermes Desktop) Upgrade to v3.17.0 or later, then toggle the corresponding Hermes skill off and on once in cc-switch to refresh the stale projection left by the older version.

  4. (For inaccurate Pi status or redundant projections) Check whether the skills array in ~/.pi/agent/settings.json and the ~/.agents/skills/ directory already make Pi load the same skills indirectly. If so, you can temporarily leave Pi unchecked in cc-switch while waiting for official support (#8000 remains open). In SSOT Unified mode, Pi can see all managed skills with no configuration.

Toolcc-switch 技能同步功能(影响 Claude Code / Hermes Desktop / Pi)
Version3.16.3 - 4.0.5(Hermes 路径问题在 v3.16.5 起经 PR #4680 修复,v3.17.0 需重新切换刷新;symlink 权限与 Pi 扫描问题截至 4.0.5 未修复)
PlatformsWindows
What should I do if “symlink creation failed” persists when running as administrator?
A user reported that it still failed when running as administrator in WSL. Issue #4241 is still open, with no official fix available. You can try enabling Developer Mode or using copy mode, but note that #2762 mentions that falling back to copy may overwrite user data.
What if skills are still missing from Hermes Desktop after upgrading to v3.17.0?
The maintainer requires toggling the corresponding skill once after upgrading to refresh the old projection. If the %LOCALAPPDATA% path is still not synced, reopen the issue and provide the Hermes version, actual directory, and logs.
Why does Pi load these skills when I haven't checked Pi in cc-switch?
Pi natively scans ~/.agents/skills/ and the directories listed in the skills array in ~/.pi/agent/settings.json (such as ~/.claude/skills); it does not need a cc-switch projection. cc-switch is currently unaware of these channels, so the UI may show “not enabled” while Pi has actually loaded the skills (#8000, unfixed).
Why are skills loaded twice with duplicate-name warnings after I check Pi?
The skill directory is already referenced by Pi through the skills array in settings.json or ~/.agents/skills/, and cc-switch also projects it to ~/.pi/agent/skills/, creating a duplicate. Pi keeps the first skill it discovers and issues a warning for the duplicate. Official support for skipping redundant projections has not been implemented (#8000).

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.