Local add-on that adds a Plugin Viewer tool to a site's information panel. View, refresh, sort, retain scans, and optionally check for plugin updates.
It reads plugin metadata and active status through Local's built-in wpCli.getPlugins() service.
Current features:
- View plugin name, version, and active/inactive status.
- Refresh scans for running sites.
- Sort by plugin name, version, status, or update state.
- Opt in to a read-only update check from the Check for updates button.
- Show available update versions and update status in the plugin table.
- Keep the last successful scan visible when a site is stopped.
- Persist scans across Local restarts.
- Show accessible loading, error, empty, and cached-scan states.
Plugin actions such as updating, activating, deactivating, and deleting are not available yet. The update check only reads available-version information; it does not change the site.
Clone or link this repository into Local's add-ons directory:
- macOS:
~/Library/Application Support/Local/addons - Windows:
%APPDATA%/Local/addons - Linux:
~/.config/Local/addons
Then install dependencies and build the add-on:
npm install
npm run buildThe repository can also be developed directly from the macOS add-ons directory:
cd "$HOME/Library/Application Support/Local/addons/local-plugin-viewer"
npm install
npm run watchAfter a build, reload the add-on in Local. If Local does not pick up the generated files, restart Local and enable Plugin Viewer under Add-ons.
Run the complete local checks:
npm test
npm run lintnpm test type-checks and builds the add-on, then runs the plugin metadata, scan persistence, sorting, renderer contract, and build smoke tests. npm run lint checks the source tree with the flat ESLint 10 configuration. React remains on the latest 18.x line because the current Local Components dependency graph has React 18-or-earlier peer constraints.
src/main.ts: Local main-process entrypoint and IPC handler.src/plugin-info.ts: typed adapter from Local's WordPress plugin metadata to the renderer contract.src/renderer.tsx: registers the Plugin Viewer tool, stylesheet, and site-info content hooks.src/PluginViewer.tsx: React UI for loading, refreshing, sorting, update checks, and displaying plugins.src/PluginViewerHeader.tsx: header actions for refresh and the opt-in update check.src/PluginTable.tsx: sortable plugin table, status badges, and update state.src/plugin-table.ts: sorting and timestamp formatting helpers.src/plugin-updates.ts: parser for the fixed read-only WP-CLI update response.style.css: minimal responsive and state styling.lib/: generated output. Do not edit directly.
The main process uses Local's wpCli.getPlugins(site) API, so active status comes from WordPress rather than a repository file or an unimplemented database fallback.
MIT