i created local plugin and put it into ~/.cursor/plugins/local/my-plugin as described in guide
i reloaded window but i do not see it in loaded plugins and skills from plugin are not available in chat
Cursor Plugin debug output does not show any errors
Steps to Reproduce
put plugin in ~/.cursor/plugins/local/my-plugin
reload window.
see no plugin
Hey, thanks for the report. Most of the time a local plugin isn’t picked up because of the folder structure or the path, so let’s check it step by step.
Make sure the path is exactly ~/.cursor/plugins/local/ and not ~/.cursor/plugins/cache/local/.
The manifest must be at the plugin root: ~/.cursor/plugins/local/my-plugin/.cursor-plugin/plugin.json. If the plugin is nested one level deeper like local/my-plugin/my-plugin/... it won’t load.
Check the setting Include third-party Plugins, Skills, and other configs. It needs to be enabled.
If the structure and path are correct but the plugin still doesn’t show up, please share the exact folder tree for your plugin via ls -R ~/.cursor/plugins/local/my-plugin and the contents of plugin.json. Then we can dig deeper.
i also see this in debug output. does it mean my local plugins disabled or something? how do i turn it on?
2026-07-03 12:22:28.215 [info] [2026-07-03T16:22:28.215Z] [info] loadAllPlugins completed in 147.2ms (claude=true, userLocal=false, userSettings=false, marketplace=2 sources, total=0 plugins, failures=0)
Thanks for sending the folder tree and screenshots. The structure, path, and toggle all look correct, so this isn’t a setup issue.
The key part is the last line in the log:
... userLocal=false ... total=0 plugins
userLocal=false means loading user-local plugins is currently disabled on the client. With your setup, it should not be disabled, so this looks unexpected and explains why the plugin never shows up. The plugin itself is not the issue.
To dig deeper, can you help with a couple of things:
Open the Command Palette Cmd+Shift+P > Preferences: Open User Settings (JSON) and check if there are any lines with the words plugin, local, or thirdParty. If yes, paste them here. Please do the same for workspace settings (.cursor/settings.json in the project, if it exists).
Is there any managed or MDM config for Cursor on this machine, like a company profile or a file like .cursor/mdm.json? If yes, it may have set this gate.
As a quick test, turn off the toggle “Include third-party Plugins, Skills, and other configs”, run Developer: Reload Window, then turn it back on and reload again. Check if userLocal changes in the log.
Based on what you find, I’ll pass this along for a deeper look. Let me know what the log shows after step 3.
Yeah, exactly. On Team or Enterprise, loading local third-party plugins is controlled by an org-admin setting. When it’s disabled, you’ll see userLocal=false, total=0 plugins in the log. The plugin is fully ignored no matter how correct the folder structure is. So it’s not a plugin issue, it’s an org policy.
This is controlled in two ways:
A setting in the team dashboard that allows user-local or third-party plugin imports. A team admin has to change it.
An MDM managed config on the machine, like mdm.json, which can enforce the restriction even locally.
What you can do:
Message your org admin and ask them to enable user-local or third-party plugin loading for the team.
Check if your machine has a Cursor managed profile or a .cursor/mdm.json file. If it does, the restriction comes from there, and only whoever manages MDM can remove it.
After they enable it, run Developer: Reload Window and confirm the log shows userLocal=true.
Let me know what the admin says. If it still shows userLocal=false after enabling it, we can dig deeper.