Skip to content

NikolaiRadke/Extension-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Extension Manager

Extension Manager

Manage installed extensions in Arduino IDE 2.x - enable, disable, install, and uninstall extensions directly from the IDE.

Features

  • 📦 View all installed extensions with status (enabled/disabled)
  • Enable/Disable extensions - moves extensions between active and disabled state
  • 🗑️ Uninstall extensions completely (removes .vsix files and all data)
  • 📥 Install extensions from .vsix files with automatic upgrade detection
  • 🔒 Security scanning - analyzes extensions before installation for suspicious code patterns
  • ℹ️ Extension details - view version, publisher, size, and location in a dedicated panel
  • 🌍 Automatic language detection based on IDE settings. Support are: en, es, de, fr, it.
  • 🎯 Clean interface - integrated into Explorer sidebar, no cluttered Activity Bar

Screenshot

Extension Manager

Installation

You need the VSIX file extension-manager-X.X.X.vsix in the same folder with the installer. The installer will install the plugin in your home folder.

Windows

Run install_arduinoplus_windows.bat as administrator

Linux

chmod +x install_arduinoplus_linux.sh
./install_arduinoplus_install_linux.sh

macOS

chmod +x install_arduinoplus_macos.sh
./install_arduinoplus_Install_macos.sh

Usage

  1. Open the Explorer view (Files icon in left sidebar, or Ctrl+Shift+E)
  2. Find Extension Manager section below your sketch files
  3. View all installed extensions with their status (✓ enabled / ⊘ disabled)
  4. Click on any extension to:
    • Enable/Disable (moves .vsix files accordingly)
    • View detailed information
    • Uninstall completely
  5. Use the toolbar buttons:
    • 🔄 Refresh extension list
    • 📥 Install new extensions from .vsix files
    • ℹ️ About Extension Manager

Installing Extensions

  • When installing a .vsix file, Extension Manager scans it for security issues (eval usage, file access, network requests, etc.)
  • The security scan shows severity levels (🚨 Critical | ⚠️ High | ⚡ Medium | ℹ️ Low) and details about permissions the extension requires
  • If you install a .vsix file that already exists, you'll be asked if you want to replace it
  • The extension is installed to ~/.arduinoIDE/extensions/
  • Restart the IDE to activate newly installed extensions

Enabling/Disabling Extensions

  • Disable: Moves the extension from deployedPlugins/ to .extensionmanager/disabled/
  • Enable: Moves it back to make it active again
  • The .vsix file is also moved to prevent automatic re-deployment
  • Requires IDE restart to take effect

Known Limitations

  • Changes require an IDE restart to take effect
  • On first run, Extension Manager automatically opens the Explorer view to make itself visible

Advanced: uninstall.json Support

Extension Manager supports declarative uninstall configurations. Extensions can include an uninstall.json file to define what should be deleted during uninstallation:

  • Configuration directories (e.g., ~/.myextension)
  • Settings files
  • VS Code configuration keys
  • Global state entries

When an extension includes uninstall.json, Extension Manager shows "Uninstaller: ✓ Available" in the extension details and performs a complete cleanup on uninstall.

For extension developers: See UNINSTALLER.md for the full specification.

Uninstall

Use the About panel (ℹ️ button in toolbar) and click the "Uninstall" button in the Danger Zone. This will:

  • Remove Extension Manager itself
  • Delete all settings and data in ~/.extensionmanager/
  • Clean up all related files
  • Restart the IDE to complete uninstallation

Related Projects

  • Arduino+ - Essential IDE helpers for Arduino development.

Contributing

Bug reports and feature requests are welcome! Please use the GitHub Issues page.

💙 Support Extension Manager

Extension Manager is free and open source. If it saved your day, consider buying me a coffee! ☕

GitHub Sponsors Ko-fi

Every contribution helps keep this project alive! 🚀