Local Plugins Symlink on Windows Doesn't Work

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

I am working on building plugins and releasing to our team marketplace. In order to test locally, I used a symlink as recommended by the docs from my ~/.cursor/plugins/local directory to my repository plugin. I also removed the plugin from my marketplace install and my cache. Cursor would not load the plugin. I tried a junction, which also did not work. The only way to load a local plugin was to manually copy + paste a physical dir for the plugin."

This is contrary to recommendations on the docs (yes I did the symlink in windows command line as well as the junction), and makes developing plugins a bit cumbersome.

Please let me know if you need additional information.

Steps to Reproduce

On Windows 11…

Create a plugin in a chosen directory

Create a symlink from cursor’s user plugin directory to your chosen directory… like:

mklink /D "C:\Users\kaise\.cursor\plugins\local\my-tool" "C:\Code\Serverless\ai-plugin-marketplace\my-tool"

Restart Cursor. Plugin will not be loaded.

Optionally try

cmd.exe /c "mklink /J C:\Users\kaise\.cursor\plugins\local\my-tool C:\Code\Serverless\ai-plugin-marketplace\my-tool"

Reload Cursor. Plugin will not be installed

Expected Behavior

Plugin will be listed under Installed plugins

Operating System

Windows 10/11

Version Information

Version: 3.2.16 (user setup)
VSCode Version: 1.105.1
Commit: 3e548838cf824b70851dd3ef27d0c6aae371b3f0
Date: 2026-04-28T21:07:47.682Z
Layout: editor
Build Type: Stable
Release Track: Early Access
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Windows_NT x64 10.0.22631

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey there,
This is a known bug. The local plugin loader currently skips symlinked directories, which contradicts the recommendation in our plugin docs. Both mklink /D (directory symlinks) and mklink /J (junctions) are affected.

Our team is actively working on a fix. For now, the workaround is what you found: copying the plugin directory directly into ~/.cursor/plugins/local/ instead of symlinking.

We’ll update the docs or ship the fix (whichever comes first) so symlinks work as documented. Sorry for the inconvenience, and thanks for reporting this.

hey @mohitjain, any updates on the symlink fix? Being able to use symlinked directories is essential for our team’s workflow—we’re developing private internal plugins and need the flexibility to manage them via version control without duplicating code every time we pull new changes from the plugin repo.

The fix for this has shipped in Cursor 3.5 (released May 20). Symlinked local plugin directories in ~/.cursor/plugins/local/ should now be recognized, including Windows mklink /D and mklink /J.

Update to Cursor 3.5 or later and restart - your symlinked plugins should load. If the issue persists after updating, let us know your Cursor version and we can dig in further.

Hey @mohitjain , thanks for the quick answer. I should have explained it from the beginning, but we use macOS and cursor 3.5.38

I follow same steps as explained here to create a symlink on linux. Which in my case
ln -s ~/code/ai-toolkit ~/.cursor/plugins/local/ai-toolkit

but I get into same issue of plugin isn’t loaded unless I copy it to the local plugins folder. That’s why I thought (mistakenly) it’s a general issue.

Is the symlink issue for macOS is on your team radar?

steps to Reproduce:

This doesn’t work

$ ln -s ~/code/ai-toolkit-plugin ~/.cursor/plugins/local/ai-toolkit-plugin
$ ls -la ~/.cursor/plugins/local                                          
total 0
drwxr-xr-x@ 3 ak  staff  96 May 28 13:39 .
drwxr-xr-x@ 3 ak  staff  96 Mar  4 11:39 ..
lrwxr-xr-x@ 1 ak  staff  41 May 28 13:39 ai-toolkit-plugin -> /Users/ak/code/ai-toolkit-plugin

$ ls -la ~/code/ai-toolkit-plugin                     
total 0
drwxr-xr-x@ 4 ak  staff  128 May 28 13:38 .
drwxr-xr-x  5 ak  staff  160 May 28 13:39 ..
drwxr-xr-x@ 4 ak  staff  128 May 28 13:38 .cursor-plugin
drwxr-xr-x@ 8 ak  staff  256 May 28 13:38 skills

This works:

$ cp -r ~/code/ai-toolkit-plugin ~/.cursor/plugins/local/

Version info:

Version: 3.5.38
VSCode Version: 1.105.1
Commit: 009bb5a3600dd98fe1c1f25798f767f686e14750
Date: 2026-05-26T21:32:06.537Z (1 day ago)
Layout: editor
Build Type: Stable
Release Track: Default
Electron: 39.8.1
Chromium: 142.0.7444.265
Node.js: 22.22.1
V8: 14.2.231.22-electron.0
OS: Darwin arm64 25.3.0

Thanks for the detailed repro steps and sorry for the confusion in my earlier reply. After digging deeper, this isn’t macOS-specific - it’s a limitation in how the symlink fix was implemented.

The fix that shipped in 3.5 allows symlinked directories to be recognized, but only if the symlink target resolves to a path within ~/.cursor/plugins/local/. Symlinks pointing to an external directory (like ~/code/ai-toolkit-plugin) are currently rejected by a security validation. This affects all platforms equally. I’ve flagged this with the team as a gap that needs to be addressed.

For now, the workaround remains copying the plugin directory. If you’re iterating frequently, a file watcher script that syncs changes could help bridge the gap until the restriction is relaxed.