Manage Apple Reminders via the `remindctl` CLI on macOS (list, add, edit, complete, delete)....
npx skills add nodnarbnitram/claude-code-extensions --skill "grafana-plugin-scaffolding"
Install specific skill from multi-skill repository
# Description
Scaffold and automate Grafana plugin projects using @grafana/create-plugin. Use when creating panel plugins, data source plugins, app plugins, or backend plugins. Handles project scaffolding, Docker dev environment setup, and plugin configuration.
# SKILL.md
name: grafana-plugin-scaffolding
description: Scaffold and automate Grafana plugin projects using @grafana/create-plugin. Use when creating panel plugins, data source plugins, app plugins, or backend plugins. Handles project scaffolding, Docker dev environment setup, and plugin configuration.
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
Grafana Plugin Scaffolding Skill
Automate Grafana plugin project creation using the official @grafana/create-plugin scaffolder. This skill handles project scaffolding, development environment setup, and initial configuration for all plugin types.
Supported Grafana Version: v12.x+ only
Instructions
Step 1: Verify Prerequisites
Before scaffolding, verify these tools are installed:
# Check Node.js (v18+ required)
node --version
# Check npm
npm --version
# Check Docker (optional, for local development)
docker --version
If prerequisites are missing, guide the user to install them:
- Node.js: https://nodejs.org/
- Docker Desktop: https://www.docker.com/products/docker-desktop/
Step 2: Scaffold the Plugin
Use the official @grafana/create-plugin tool:
# Interactive scaffolding (recommended)
npx @grafana/create-plugin@latest
# The tool will prompt for:
# - Plugin type (panel, datasource, app, scenesapp)
# - Organization name (e.g., "myorg")
# - Plugin name (e.g., "my-panel")
# - Include backend? (y/n)
Step 3: Navigate and Install Dependencies
# Navigate to the new plugin directory
cd <orgName>-<pluginName>-<pluginType>
# Install frontend dependencies
npm install
# Install backend dependencies (if backend plugin)
go mod tidy
Step 4: Start Development Environment
Option A: Docker with Hot-Reload (Recommended)
The scaffolder generates a docker-compose.yaml. For enhanced development with file watching, use the template from templates/docker-compose.yaml which includes Docker Compose develop features.
# Start Grafana with file watching (Docker Compose v2.22.0+)
docker compose watch
# Or standard start without watching
docker compose up -d
# Access Grafana at http://localhost:3000
# Login: admin / admin
With docker compose watch:
- Frontend changes in dist/ sync automatically (no restart)
- Backend binary changes (gpx_*) trigger container restart
- No manual rebuild-restart cycle needed
Option B: Manual
# Build and watch frontend
npm run dev
# Build backend (if applicable)
mage -v
# Configure Grafana to load unsigned plugins
# Add to grafana.ini: plugins.allow_loading_unsigned_plugins = <plugin-id>
Step 5: Verify Plugin Installation
- Open http://localhost:3000
- Navigate to Administration > Plugins
- Search for your plugin name
- Verify it appears and can be added to dashboards
Plugin Type Workflows
Panel Plugin
npx @grafana/create-plugin@latest
# Select: panel
# Enter: organization name
# Enter: plugin name
# Backend: No (panels don't need backend)
Post-scaffolding:
1. Edit src/components/SimplePanel.tsx for visualization logic
2. Edit src/types.ts for panel options interface
3. Edit src/module.ts for option configuration
Data Source Plugin (Frontend Only)
npx @grafana/create-plugin@latest
# Select: datasource
# Enter: organization name
# Enter: plugin name
# Backend: No
Post-scaffolding:
1. Edit src/datasource.ts for query logic
2. Edit src/ConfigEditor.tsx for connection settings
3. Edit src/QueryEditor.tsx for query builder UI
Data Source Plugin (With Backend)
npx @grafana/create-plugin@latest
# Select: datasource
# Enter: organization name
# Enter: plugin name
# Backend: Yes
Post-scaffolding:
1. Edit pkg/plugin/datasource.go for Go query logic
2. Implement QueryData and CheckHealth methods
3. Build backend: mage -v
App Plugin
npx @grafana/create-plugin@latest
# Select: app
# Enter: organization name
# Enter: plugin name
# Backend: Optional
Post-scaffolding:
1. Edit src/pages/ for app pages
2. Update plugin.json includes for navigation
3. Add new pages as React components
Development Commands
# Frontend development (watch mode)
npm run dev
# Frontend production build
npm run build
# Backend build (Go plugins)
mage -v
# Run unit tests
npm test
# Run E2E tests (requires Grafana running)
npx playwright test
# Lint code
npm run lint
# Type check
npm run typecheck
E2E Testing
The @grafana/create-plugin scaffolder includes E2E testing setup with @grafana/plugin-e2e and Playwright.
# Install Playwright browsers
npx playwright install --with-deps chromium
# Start Grafana
docker compose up -d
# Run E2E tests
npx playwright test
# Run with UI mode (debugging)
npx playwright test --ui
See references/e2e-testing.md for comprehensive testing patterns, fixtures, and CI/CD setup.
Best Practices
- Start Simple: Begin with minimal functionality, then iterate
- Use Docker: Consistent environment across team members
- Test Early: Run tests frequently during development
- Type Safety: Leverage TypeScript for all frontend code
- SDK Updates: Keep
@grafana/data,@grafana/ui,@grafana/runtimeversions aligned
Common Issues
Plugin Not Appearing
- Check
plugin.jsonhas correctidfield - Verify Docker volume mounts correctly
- Ensure
npm run devcompleted without errors
Backend Plugin Errors
- Run
mage -vto rebuild Go code - Check
plugin_start_linux_*orgpx_*binaries exist indist/ - Verify
plugin.jsonhas"backend": true
Development Server Issues
- Clear browser cache
- Restart Docker:
docker compose down && docker compose up -d - Check Grafana logs:
docker compose logs grafana
Delegation
For complex architectural decisions, plugin design patterns, or troubleshooting, delegate to the grafana-plugin-expert agent which has access to current SDK documentation via Context7.
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.