Skip to content

Repository files navigation

Local Plugin Viewer

icon.svg

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.

Development setup

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 build

The 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 watch

After 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.

Verification

Run the complete local checks:

npm test
npm run lint

npm 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.

Project layout

  • 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.

References

License

MIT

About

Local add-on that adds a Plugin Viewer tool to a site's information panel.

Topics

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages