--install-extension with VSIX doesn't register in active profile

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

when using a non-default cursor profile, installing a vsix extension via cli (cursor --install-extension my-ext.vsix) adds it to the global registry (~/.cursor/extensions/extensions.json) but not the active profile’s extensions list at ~/Library/Application Support/Cursor/User/profiles/{profileId}/extensions.json. the extension host never loads it. no errors, completely silent.

cursor --list-extensions also reads from the global registry, so it shows the extension as installed even though the runtime can’t see it. this gives false confidence that the extension is working.

Steps to Reproduce

  1. switch to a non-default profile (settings > profiles)
  2. run cursor --install-extension my-extension.vsix
  3. restart cursor
  4. cursor --list-extensions shows the extension
  5. extension never activates. zero mention in extension host logs (Output > Extension Host)
  6. manually adding the extension entry to the profile’s extensions.json and restarting fixes it

Expected Behavior

--install-extension should detect the active profile and write to both the global and profile-specific registries, same as marketplace installs through the UI.

Operating System

MacOS

Version Information

IDE:
Version: 2.6.22
OS: macOS Sequoia (darwin-arm64)

Additional Information

this likely affects VS Code upstream too (similar reports: microsoft/vscode#170932, anthropics/claude-code#1592).

workaround: manually copy the extension entry from ~/.cursor/extensions/extensions.json into ~/Library/Application Support/Cursor/User/profiles/{profileId}/extensions.json and restart cursor. the --profile flag may also work: cursor --profile "ProfileName" --install-extension file.vsix

Does this stop you from using Cursor

No - Cursor works, but with this issue

1 Like

Hey, awesome bug report. Everything’s clearly described, including the root cause.

Confirmed, this is a real bug. The CLI --install-extension doesn’t respect the active profile and only writes to the global registry. This also affects --list-extensions, which shows the extension as installed even though the runtime can’t see it.

For anyone who hits this, the workaround is to pass --profile explicitly:

cursor --profile "ProfileName" --install-extension file.vsix

This works when Cursor isn’t running if you use the direct CLI path. If Cursor is running, the IPC path doesn’t pass the profile at all, so even --profile won’t help.

I’ve shared this with the team. No ETA on a fix yet, but your report helps with prioritization. Let me know if the --profile workaround works for you.

thanks for confirming. the --profile flag didn’t work for me since Cursor was running (IPC path issue you mentioned). ended up manually adding the extension entry to ~/Library/Application Support/Cursor/User/profiles/{profileId}/extensions.json and restarting, that worked immediately.

good to know the team is aware. the silent failure is the worst part, zero errors anywhere makes it really hard to debug.

1 Like