A catalog of Claude Code skills for Elastic documentation workflows.
Browse the catalog, pick the skills you need, and install them with a single command.
Install all skills with a single command (requires Node.js):
npx --yes skills@latest add elastic/elastic-docs-skills -gThis auto-detects your installed agents (Claude Code, Cursor, Codex, etc.) and prompts you to choose which ones to install to.
Update all installed skills to the latest versions:
npx --yes skills@latest update -gInstall a single skill by name:
npx --yes skills@latest add elastic/elastic-docs-skills --skill docs-check-style -gOther useful commands:
# List installed skills.
npx --yes skills@latest list -g
# Check for available updates.
npx --yes skills@latest check -g
# Remove a skill.
npx --yes skills@latest remove docs-check-style -gIf you prefer an interactive terminal UI (macOS and Linux only, requires Python 3):
curl -fsSL https://ela.st/docs-skills-install | bashOptional flags:
# List available skills.
curl -fsSL https://ela.st/docs-skills-install | bash -s -- --list
# Install all skills.
curl -fsSL https://ela.st/docs-skills-install | bash -s -- --all
# Update installed skills.
curl -fsSL https://ela.st/docs-skills-install | bash -s -- --updateIf you plan to contribute, clone the repository and run locally:
git clone https://github.com/elastic/elastic-docs-skills.git
cd elastic-docs-skills
./install.shIf you have this repo cloned, the easiest way to add a skill is to use the built-in /create-skill command (available only within this repo):
/create-skill my-new-skill
This walks you through the process interactively and can open a PR for you.
- Create a directory under
skills/<category>/<skill-name>/ - Add a
SKILL.mdfile with the required frontmatter - Open a PR
Every skill must have YAML frontmatter with at least these fields:
---
name: docs-my-skill # Required — kebab-case skill invocation name
version: 1.0.0 # Required — SemVer (MAJOR.MINOR.PATCH)
description: What it does # Required — when to use this skill
---Optional fields:
disable-model-invocation: true # Only runs via /my-skill, not auto-triggered
argument-hint: [args] # Hint shown in autocomplete
allowed-tools: Read, Grep # Tools the skill can use without asking
context: fork # Run in isolated subagent
agent: Explore # Subagent type
sources: # Upstream URLs for freshness checks
- https://www.elastic.co/docs/...Skills follow SemVer:
- MAJOR — Breaking changes to the skill's behavior or interface
- MINOR — New functionality, backwards-compatible
- PATCH — Bug fixes, wording improvements
Bump the version field in your SKILL.md frontmatter when making changes.
npx --yes skills@latest update -gOr, if using the TUI installer:
curl -fsSL https://ela.st/docs-skills-install | bash -s -- --updateAll PRs that touch skills/** are validated by GitHub Actions in .github/workflows/validate-skills.yml. The workflow runs the following checks on every skill:
- Every
skills/**/SKILL.mdmust have valid YAML frontmatter - Required fields:
name,description,version namemust be kebab-case and unique across all skillsversionmust be valid SemVerevals/evals.json(if present) must be valid JSON with required structure
elastic-docs-skills/
├── .github/
│ ├── copilot-setup-steps.yml # GitHub Copilot coding agent setup
│ └── workflows/
│ ├── validate-skills.yml # Skill validation via skill-validator
│ └── skill-freshness.lock.yml
├── .claude/skills/ # Skills that work within this repo
├── skills/ # The browsable catalog
│ └── <category>/
│ └── <skill-name>/
│ └── SKILL.md
├── install.sh # Interactive TUI installer
└── README.md
See CONTRIBUTING.md for detailed guidelines on creating skills, writing evals, choosing categories, and frontmatter conventions.
This repository is licensed under the Apache License, Version 2.0. See LICENSE.txt for the full text.