Plugins extend Kwirth with new UI channels and backend capabilities — all hot-reloadable without restarting the pod. Build once, install anywhere.
A Kwirth plugin is a self-contained bundle that adds a new channel tab to the Kwirth front-end and, optionally, a backend component that runs alongside Kwirth's core. Plugins follow the same lifecycle as built-in channels: the user selects a cluster, opens a tab, and the plugin takes over rendering and data fetching.
Plugins are packaged as a .tgz file containing a CJS backend bundle (back.js), an IIFE frontend bundle (front.js), and a package.json manifest. Once installed, Kwirth hot-reloads them — no pod restart required.
Day-to-day cluster operations from the browser: interactive shell sessions (XTERM), pod and namespace restarts, one-shot command execution, and object inspection — no kubectl needed.
Container image vulnerability scanning via Trivy operator integration. CVE details, SBOM, audit checks, and exposed secrets in a unified view.
AvailableAutonomous AI agent for cluster analysis. Watches Kubernetes events and business data, runs configurable LLM triggers, and streams findings with severity levels in real time.
AvailableLLM-based log noise filter. Batches log lines, sends them to an LLM to learn regex patterns, then applies those patterns in-process — so only meaningful lines reach the screen.
AvailableInteractive 3D graph of your live Kubernetes cluster. Nodes represent workloads, services, ingresses, and PVCs; edges show ownership and routing. Updates in real time via Kubernetes events.
AvailableRSS feed reader for Kubernetes and AI news. Polls external feeds on a timer, deduplicates items, and streams new articles to the tab. Also serves as a reference for plugins that pull from external HTTP sources.
Dev / ReferenceReference plugin and development scaffold. A minimal working plugin with both frontend and backend components — use it as a starting point for your own plugin.
Dev / ReferenceVisual filesystem explorer for all Kubernetes containers. Navigate, copy, move, rename, delete, download, and upload files across any container — including cross-container copy/move operations.
AvailableStructured audit trail for all Kwirth user actions — API key usage, config changes, plugin installs — exportable as JSON or forwarded via senders.
PlannedAny new observability mode, management tool, or integration you can imagine. The plugin API gives you full access to cluster state, WebSocket sessions, and the sender subsystem.
Build your ownEvery backend plugin must implement the IPlugin interface exported from @kwirthmagnify/kwirth-common-back:
"trivy", "pinocchio")Plugins follow a simple project structure. The backend compiles to CJS (dist/back.js), the frontend to an IIFE (dist/front.js) that registers on window.__kwirth_plugins__. Both are bundled with esbuild.
senders/my-plugin/
src/
back/index.ts ← implements IPlugin
front/index.tsx ← registers on window.__kwirth_plugins__['my-plugin']
build.mjs ← esbuild script
package.json ← includes id, displayName, version, descriptionThe frontend bundle receives backendUrl and accessString as props so it can make authenticated API calls without importing from Kwirth core:
// src/front/index.tsx
import MyPluginPanel from './MyPluginPanel'
window.__kwirth_plugins__ = window.__kwirth_plugins__ ?? {}
window.__kwirth_plugins__['my-plugin'] = MyPluginPanel
// Props your component receives:
// { backendUrl: string, accessString: string, clusterName: string }See the echo plugin in plugins/echo/ for a complete working example, and the full API reference in the developer docs.
The full plugin API reference, lifecycle documentation, and development guide are in the Kwirth docs.
Developer docs → Echo plugin source