Loading

External plugin development

Important

The Kibana plugin interfaces are in a state of constant development. We cannot provide backwards compatibility for plugins due to the high rate of change. Kibana enforces that the installed plugins match the version of Kibana itself. Plugin developers will have to release a new version of their plugin for each new Kibana release as a result.

Most developers who contribute code directly to the Kibana repo are writing code inside plugins, so our Contributing docs are the best place to start. However, there are a few differences when developing plugins outside the Kibana repo. These differences are covered here.

If you are coming from the in-repo plugin docs, note the following:

  • Location. External plugins live in a plugins/ directory at the root of your Kibana checkout. This directory is gitignored — your plugin is not tracked alongside the Kibana sources.
  • Manifest. External plugins use a flat kibana.json manifest (a different schema than the in-repo kibana.jsonc). Use node scripts/generate_plugin to scaffold one with the correct format.
  • Build. Browser bundles for external plugins are not built by the Kibana optimizer. Run yarn dev --watch from inside the plugin directory in a dedicated terminal while yarn start runs in another — see Plugin tooling.