kibana-plugin-dev

kibana-plugin-dev is a skill for Claude Code from ch-bas/kibana-plugin-helper. It costs 63 tokens per session (25,456 once invoked), scanned A, original, MIT.

A reference guide for developing Kibana plugins, which are extensions that add server features, user interfaces, data storage, and integrations to Kibana.

In plain words
What is it for?
Use it when building or maintaining a plugin, choosing between server and browser code, registering features during startup, sharing types, storing data, or connecting to other Kibana plugins.
Why use it?
It explains how Kibana plugin parts fit together and provides guidance for common areas such as routes, Saved Objects, embeddables, expressions, logging, and communication between plugins.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is import { ROUTES } from '../../common';.

Part of the kibana-plugin-helper plugin — 1 skill, 8 commands shipped together

Install

Getting it into your agent

It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.

Clone the repo
git clone --depth 1 https://github.com/ch-bas/kibana-plugin-helper
agentmods
npx agentmods add skills/ch-bas/kibana-plugin-helper/kibana-plugin-dev

Made for: Claude Code.

Or install kibana-plugin-helper, the plugin that ships this one along with the rest of its 1 skill, 8 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for kibana-plugin-dev

README.md
[![agentmods](https://agentmods.dev/badge/skills/ch-bas/kibana-plugin-helper/kibana-plugin-dev.svg)](https://agentmods.dev/skills/ch-bas/kibana-plugin-helper/kibana-plugin-dev)
Your own site
<a href="https://agentmods.dev/skills/ch-bas/kibana-plugin-helper/kibana-plugin-dev"><img src="https://agentmods.dev/badge/skills/ch-bas/kibana-plugin-helper/kibana-plugin-dev.svg" alt="Measured on agentmods" height="20"></a>
Per session 63 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 25,456 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00063 $0.25456
Opus 5 $0.00032 $0.12728
Sonnet 5 $0.00013 $0.05091
Haiku 4.5 $0.00006 $0.02546

Measured 6d ago against content hash dcd4d2668323, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

kibana-plugin-dev scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl http://localhost:3000/api/my_plugin/items
skills/kibana-plugin-dev/SKILL.md · 3,634 lines

How it starts

The opening of the file, as written. The whole thing — 3,634 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Kibana Plugin Development

This skill provides comprehensive knowledge for developing Kibana plugins across all major subsystems.

Plugin Architecture Overview

Kibana plugins consist of:

  • Server-side (server/): Routes, saved objects, background tasks
  • Client-side (public/): React UI, embeddables, applications
  • Common (common/): Shared types and constants

Plugin Lifecycle

// server/plugin.ts
export class MyPlugin implements Plugin {
  setup(core: CoreSetup) {
    // Register routes, saved objects, capabilities
    // Called once at startup
  }
  
  start(core: CoreStart) {
    // Access other plugins' start contracts
    // Called after all plugins are set up
  }
  
  stop() {
    // Cleanup
  }
}

Key Principles

  1. Register everything in setup(), not start()
  2. Use await context.core in route handlers (async since 8.1)
  3. Export types for other plugins to consume
  4. Use common/ for shared code between server and browser

Saved Objects

Saved Objects are Kibana's primary persistence layer for plugin data that needs to be managed, imported/exported, migrated across versions, and scoped to Kibana Spaces. Use Saved Objects when your data belongs to the Kibana application layer (configurations, user-created resources, plugin settings) rather than raw Elasticsearch data.

When to use Saved Objects vs plain ES indices:

  • Use Saved Objects when: data needs space-scoping, import/export, version migrations, references to other Kibana objects, or management UI integration
  • Use plain ES indices when: data is high-volume, time-series, search-heavy, or doesn't need Kibana management features

Type Registration

Register custom saved object types in the server plugin's setup() method:

// server/saved_objects/my_custom_type.ts
import { SavedObjectsType } from '@kbn/core/server';

export const MY_CUSTOM_TYPE = 'my-plugin-config';

export const myCustomType: SavedObjectsType = {
  name: MY_CUSTOM_TYPE,
  hidden: false,
  namespaceType: 'single', // 'single' | 'multiple' | 'agnostic'
  mappings: {
    dynamic: false,
    properties: {
      title: { type: 'text' },
      name: { type: 'keyword' },
      description: { type: 'text' },
      enabled: { type: 'boolean' },
      priority: { type: 'integer' },
      config: { type: 'object', dynamic: false },
      tags: { type: 'keyword' },
      created_at: { type: 'date' },
      updated_at: { type: 'date' },
      created_by: { type: 'keyword' },
    },
  },
  management: {
    importableAndExportable: true,
    icon: 'gear',
    defaultSearchField: 'title',
    getTitle(obj) {
      return obj.attributes.title || obj.attributes.name;
    },
    getInAppUrl(obj) {
      return {
        path: `/app/myPlugin#/config/${obj.id}`,
        uiCapabilitiesPath: 'myPlugin.show',
      };
    },
  },
  migrations: {
    // Version-keyed migration functions
    '1.1.0': migrateV1_1_0,
    '2.0.0': migrateV2_0_0,
  },
};

Read the full file on GitHub · 3,634 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 3,634 lines · 63 tokens per session scan A dcd4d2668323

Subscribe to this mod's changes

kibana-plugin-dev is a skill published in the GitHub repository ch-bas/kibana-plugin-helper (3 stars, last pushed 6mo ago), licensed MIT. It adds 63 tokens to every session and 25,456 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

mobile-flows-maestro

This skill should be used when Maestro is explicitly requested or already present and the task is to author, run, or debug iOS/Android Maestro flows; use Maestro MCP; or handle Maestro selectors, system UI, permissions, Keychain, JavaScript, waits, device state, flakiness, or CI. Evidence includes a .maestro directory…

johnkozaris/jko-claude-plugins · 102 tokens

create-site

Creates a new Power Pages code site (SPA) using React, Angular, Vue, or Astro. Guides through the full process from initial concept to deployed site: requirements discovery, scaffolding, component planning, design, implementation, validation, and deployment. Use when the user wants to create, build, or scaffold a new…

microsoft/power-platform-skills · 73 tokens

genpage

Creates, updates, and deploys Power Apps generative pages for model-driven apps using React v17, TypeScript, and Fluent UI V9. Orchestrates specialist agents for planning, entity creation, and code generation. Use it when user asks to build, retrieve, or update a page in an existing Microsoft Power Apps model-driven…

microsoft/power-platform-skills · 140 tokens

canvas-app

Creates or edits a Power Apps Canvas App through the Canvas Authoring MCP coauthoring session. Handles new app generation, direct targeted edits, complex multi-screen changes, responsive layout, per-screen self-QA, and compile-error convergence. Trigger on requests to create, build, generate, modify, update, change…

microsoft/power-platform-skills · 79 tokens

create-code-app

Creates Power Apps code apps using React and Vite. Use when building code apps, scaffolding projects, or deploying to Power Platform.

microsoft/power-platform-skills · 31 tokens

liveview-patterns

Build LiveView: async data (assignasync), PubSub (check connected?), phx-change events, form components/modals/uploads, streams for lists, livepatch. Use when handling interactions, debugging events, or tracking Presence.

oliver-kriska/claude-elixir-phoenix · 51 tokens