Create and manage Kibana Dashboards and visualizations. Use when you need to define dashboards and visualizations declaratively, version control them, or automate their deployment.
Detected risks:
Kibana Dashboards provides a declarative, Git-friendly workflow for defining Kibana dashboards and visualizations as minimal JSON payloads that are easy to diff, version control, and generate with an LLM. Instead of clicking through the Kibana UI, definitions are expressed as flat request bodies containing a title and a list of panels, then applied through a bundled command-line script (scripts/kibana-dashboards.js) that talks to the Kibana dashboards and visualizations APIs. The format strips out implementation details and derivable properties, keeping payloads small and suitable for GitOps pipelines and one-shot generation, with validation backed by an OpenAPI spec. It targets Kibana 9.4+ (SNAPSHOT).
Reach for it when you need to define dashboards and visualizations as code, commit them to a repository, or automate their deployment across environments. Connection is configured entirely through environment variables, supporting Elastic Cloud (KIBANA_CLOUD_ID plus an API key), a direct Kibana URL with an API key, basic username/password authentication, or a local start-local instance; a test command verifies connectivity before any other work begins. The script exposes get, create, update, delete, and upsert operations for both dashboards and standalone visualizations, plus a list command for visualizations.
Dashboards use a 48-column, infinite-row grid where each panel declares its type, an optional id, a grid position (x, y, w, h), and a config block. The guidance emphasizes designing for density, roughly 8 to 12 panels above the fold on a 16:9 screen, and packing panels without dead space by aligning bottom edges and row heights. Visualization panels are best embedded inline rather than referenced by ref_id, making dashboards self-contained and portable. Supported chart types include metric, xy (line, area, bar), gauge, heatmap, and tag_cloud, many with ES|QL data sources. One key caveat: ES|QL-based visualizations cannot be created through the standalone visualizations API and must be defined as inline dashboard panels.
Kibana 9.4+ (SNAPSHOT). The declarative dashboards and visualizations APIs it relies on are available from that version.
Connection is configured via environment variables: Elastic Cloud (KIBANA_CLOUD_ID plus KIBANA_API_KEY), a direct KIBANA_URL with an API key, basic auth (KIBANA_USERNAME/KIBANA_PASSWORD), or a local start-local instance. Run the script's test command to verify the connection before doing anything else.
No. ES|QL-based visualizations cannot be created via the standalone visualizations API; they must be defined as inline panels within a dashboard using the Dashboard API.
Inline definitions are recommended because they are more reliable and self-contained, producing portable dashboards, whereas ref_id references depend on separately saved objects.
Dashboards use a 48-column, infinite-row grid; each panel sets x, y, w, and h. About 20 to 24 rows are visible on a 16:9 screen, so the guidance is to design for density and eliminate dead space by aligning panel bottom edges and row heights.
Quick Setup:
.claude/skills/Repository
elastic/agent-skills